Message ID | 1392199607-27452-2-git-send-email-jjhiblot@traphandler.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Jean-Jacques, Thanks for this new series, I have one little comment: On 12/02/2014 11:06, Jean-Jacques Hiblot wrote: > Signed-off-by: Jean-Jacques Hiblot <jjhiblot@traphandler.com> > --- > arch/arm/mach-at91/setup.c | 23 +++++++++++++++++++++++ > 1 file changed, 23 insertions(+) > > diff --git a/arch/arm/mach-at91/setup.c b/arch/arm/mach-at91/setup.c > index f7ca97b..b8d0b66 100644 > --- a/arch/arm/mach-at91/setup.c > +++ b/arch/arm/mach-at91/setup.c > @@ -487,6 +487,28 @@ end: > of_node_put(np); > } > > +static struct of_device_id matrix_ids[] = { > + { .compatible = "atmel,at91sam9261-bus-matrix", }, > + { /*sentinel*/ } > +}; > + > +static void at91_dt_matrix(void) > +{ > + struct device_node *np; > + > + np = of_find_matching_node(NULL, matrix_ids); > + if (!np) { > + pr_debug("AT91: unable to find compatible bus matrix controller node in dtb\n"); I think that a panic here should be more consistent with the next check. Indeed if it fails here then at91_matrix_base will be uninitialized too, and it will make the kernel crash when at91_matrix_base will be accessed. Thanks, Gregory > + return; > + } > + > + at91_matrix_base = of_iomap(np, 0); > + if (!at91_matrix_base) > + panic("Impossible to ioremap at91_matrix_base\n"); > + > + of_node_put(np); > +} > + > void __init at91rm9200_dt_initialize(void) > { > at91_dt_ramc(); > @@ -506,6 +528,7 @@ void __init at91_dt_initialize(void) > at91_dt_rstc(); > at91_dt_ramc(); > at91_dt_shdwc(); > + at91_dt_matrix(); > > /* Init clock subsystem */ > at91_dt_clock_init(); >
On 12/02/2014 11:45, Gregory CLEMENT : > Hi Jean-Jacques, > > Thanks for this new series, I have one little comment: > > On 12/02/2014 11:06, Jean-Jacques Hiblot wrote: >> Signed-off-by: Jean-Jacques Hiblot <jjhiblot@traphandler.com> >> --- >> arch/arm/mach-at91/setup.c | 23 +++++++++++++++++++++++ >> 1 file changed, 23 insertions(+) >> >> diff --git a/arch/arm/mach-at91/setup.c b/arch/arm/mach-at91/setup.c >> index f7ca97b..b8d0b66 100644 >> --- a/arch/arm/mach-at91/setup.c >> +++ b/arch/arm/mach-at91/setup.c >> @@ -487,6 +487,28 @@ end: >> of_node_put(np); >> } >> >> +static struct of_device_id matrix_ids[] = { >> + { .compatible = "atmel,at91sam9261-bus-matrix", }, >> + { /*sentinel*/ } I think that we can introduce this compatible string with sam9260 product: "atmel,at91sam9260-bus-matrix". In addition, can you add this new binding in the documentation file: Documentation/devicetree/bindings/arm/atmel-at91.txt (in another patch with the "dt: bindings: " subject prefix + add the DT mailing-list: devicetree@vger.kernel.org). >> +}; >> + >> +static void at91_dt_matrix(void) >> +{ >> + struct device_node *np; >> + >> + np = of_find_matching_node(NULL, matrix_ids); >> + if (!np) { >> + pr_debug("AT91: unable to find compatible bus matrix controller node in dtb\n"); > > I think that a panic here should be more consistent with the next check. > Indeed if it fails here then at91_matrix_base will be uninitialized too, > and it will make the kernel crash when at91_matrix_base will be accessed. Yes. > Thanks, > > Gregory > > >> + return; >> + } >> + >> + at91_matrix_base = of_iomap(np, 0); >> + if (!at91_matrix_base) >> + panic("Impossible to ioremap at91_matrix_base\n"); >> + >> + of_node_put(np); >> +} >> + >> void __init at91rm9200_dt_initialize(void) >> { >> at91_dt_ramc(); >> @@ -506,6 +528,7 @@ void __init at91_dt_initialize(void) >> at91_dt_rstc(); >> at91_dt_ramc(); >> at91_dt_shdwc(); >> + at91_dt_matrix(); >> >> /* Init clock subsystem */ >> at91_dt_clock_init(); >> > >
diff --git a/arch/arm/mach-at91/setup.c b/arch/arm/mach-at91/setup.c index f7ca97b..b8d0b66 100644 --- a/arch/arm/mach-at91/setup.c +++ b/arch/arm/mach-at91/setup.c @@ -487,6 +487,28 @@ end: of_node_put(np); } +static struct of_device_id matrix_ids[] = { + { .compatible = "atmel,at91sam9261-bus-matrix", }, + { /*sentinel*/ } +}; + +static void at91_dt_matrix(void) +{ + struct device_node *np; + + np = of_find_matching_node(NULL, matrix_ids); + if (!np) { + pr_debug("AT91: unable to find compatible bus matrix controller node in dtb\n"); + return; + } + + at91_matrix_base = of_iomap(np, 0); + if (!at91_matrix_base) + panic("Impossible to ioremap at91_matrix_base\n"); + + of_node_put(np); +} + void __init at91rm9200_dt_initialize(void) { at91_dt_ramc(); @@ -506,6 +528,7 @@ void __init at91_dt_initialize(void) at91_dt_rstc(); at91_dt_ramc(); at91_dt_shdwc(); + at91_dt_matrix(); /* Init clock subsystem */ at91_dt_clock_init();
Signed-off-by: Jean-Jacques Hiblot <jjhiblot@traphandler.com> --- arch/arm/mach-at91/setup.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+)