#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0 0x31400000 0x400000>;
- fsl,first-jr-index = <1>;
+ fsl,first-jr-index = <2>;
sec_jr1: jr1@0x20000 {
compatible = "fsl,sec-v4.0-job-ring";
reg = <0x20000 0x1000>;
interrupts = <GIC_SPI 452 IRQ_TYPE_LEVEL_HIGH>;
- status = "okay";
+ status = "disabled";
};
sec_jr2: jr2@30000 {
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0 0x31400000 0x400000>;
- fsl,first-jr-index = <1>;
+ fsl,first-jr-index = <2>;
sec_jr1: jr1@0x20000 {
compatible = "fsl,sec-v4.0-job-ring";
reg = <0x20000 0x1000>;
interrupts = <GIC_SPI 452 IRQ_TYPE_LEVEL_HIGH>;
- status = "okay";
+ status = "disabled";
};
sec_jr2: jr2@30000 {
static int enable_jobrings(struct caam_drv_private *ctrlpriv, int block_offset)
{
- int ring;
+ int ring, index;
int rspec = 0;
struct device_node *nprop, *np;
ring);
continue;
}
- ctrlpriv->jr[ring] = (struct caam_job_ring __force *)
+
+ if (of_property_read_u32_index(np, "reg", 0, &index)) {
+ pr_warn("%s read reg property error %d.",
+ np->full_name, index);
+ continue;
+ }
+ /* Get actual job ring index from its offset
+ * ex: CAAM JR2 offset 0x30000 index = 2
+ */
+ while (index > 16)
+ index = index >> 4;
+ index -= 1;
+ ctrlpriv->jr[index] = (struct caam_job_ring __force *)
((uint8_t *)ctrlpriv->ctrl +
- (ring + JR_BLOCK_NUMBER) *
+ (index + JR_BLOCK_NUMBER) *
block_offset);
ctrlpriv->total_jobrs++;
ring++;