Message ID | 20190219165114.2366-1-alexandre.belloni@bootlin.com (mailing list archive) |
---|---|
State | Accepted, archived |
Headers | show |
Series | clk: at91: fix at91sam9x5 peripheral clock number | expand |
On 19/02/2019 at 17:51, Alexandre Belloni wrote: > nck() looks at the last id in an array and unfortunately, > at91sam9x35_periphck has a sentinel, hence the id is 0 and the calculated Well, the logic for all other SoC clk files is to not have such a sentinel and deal differently with this type of array: why not modify this file to match with others? > number of peripheral clocks is 1 instead of a maximum of 31. > > Fixes: 1eabdc2f9dd8 ("clk: at91: add at91sam9x5 PMCs driver") > Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> > --- > drivers/clk/at91/at91sam9x5.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/drivers/clk/at91/at91sam9x5.c b/drivers/clk/at91/at91sam9x5.c > index 2fe225a697df..d37e7ed9eb90 100644 > --- a/drivers/clk/at91/at91sam9x5.c > +++ b/drivers/clk/at91/at91sam9x5.c > @@ -144,8 +144,7 @@ static void __init at91sam9x5_pmc_setup(struct device_node *np, > return; > > at91sam9x5_pmc = pmc_data_allocate(PMC_MAIN + 1, > - nck(at91sam9x5_systemck), > - nck(at91sam9x35_periphck), 0); > + nck(at91sam9x5_systemck), 31, 0); I would prefer like it's done on other SoC clk files. > if (!at91sam9x5_pmc) > return; > >
On 20/02/2019 10:20:28+0000, Nicolas Ferre wrote: > On 19/02/2019 at 17:51, Alexandre Belloni wrote: > > nck() looks at the last id in an array and unfortunately, > > at91sam9x35_periphck has a sentinel, hence the id is 0 and the calculated > > Well, the logic for all other SoC clk files is to not have such a > sentinel and deal differently with this type of array: why not modify > this file to match with others? > > > > number of peripheral clocks is 1 instead of a maximum of 31. > > > > Fixes: 1eabdc2f9dd8 ("clk: at91: add at91sam9x5 PMCs driver") > > Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> > > --- > > drivers/clk/at91/at91sam9x5.c | 3 +-- > > 1 file changed, 1 insertion(+), 2 deletions(-) > > > > diff --git a/drivers/clk/at91/at91sam9x5.c b/drivers/clk/at91/at91sam9x5.c > > index 2fe225a697df..d37e7ed9eb90 100644 > > --- a/drivers/clk/at91/at91sam9x5.c > > +++ b/drivers/clk/at91/at91sam9x5.c > > @@ -144,8 +144,7 @@ static void __init at91sam9x5_pmc_setup(struct device_node *np, > > return; > > > > at91sam9x5_pmc = pmc_data_allocate(PMC_MAIN + 1, > > - nck(at91sam9x5_systemck), > > - nck(at91sam9x35_periphck), 0); > > + nck(at91sam9x5_systemck), 31, 0); > > I would prefer like it's done on other SoC clk files. > Well, that is not possible, what do you suggest? > > if (!at91sam9x5_pmc) > > return; > > > > > > > -- > Nicolas Ferre
On 20/02/2019 at 11:29, Alexandre Belloni wrote: > On 20/02/2019 10:20:28+0000, Nicolas Ferre wrote: >> On 19/02/2019 at 17:51, Alexandre Belloni wrote: >>> nck() looks at the last id in an array and unfortunately, >>> at91sam9x35_periphck has a sentinel, hence the id is 0 and the calculated >> >> Well, the logic for all other SoC clk files is to not have such a >> sentinel and deal differently with this type of array: why not modify >> this file to match with others? >> >> >>> number of peripheral clocks is 1 instead of a maximum of 31. >>> >>> Fixes: 1eabdc2f9dd8 ("clk: at91: add at91sam9x5 PMCs driver") >>> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> >>> --- >>> drivers/clk/at91/at91sam9x5.c | 3 +-- >>> 1 file changed, 1 insertion(+), 2 deletions(-) >>> >>> diff --git a/drivers/clk/at91/at91sam9x5.c b/drivers/clk/at91/at91sam9x5.c >>> index 2fe225a697df..d37e7ed9eb90 100644 >>> --- a/drivers/clk/at91/at91sam9x5.c >>> +++ b/drivers/clk/at91/at91sam9x5.c >>> @@ -144,8 +144,7 @@ static void __init at91sam9x5_pmc_setup(struct device_node *np, >>> return; >>> >>> at91sam9x5_pmc = pmc_data_allocate(PMC_MAIN + 1, >>> - nck(at91sam9x5_systemck), >>> - nck(at91sam9x35_periphck), 0); >>> + nck(at91sam9x5_systemck), 31, 0); >> >> I would prefer like it's done on other SoC clk files. >> > > Well, that is not possible, what do you suggest? Okay: seen: let's keep it like this. > >>> if (!at91sam9x5_pmc) >>> return; >>> >>> >> >> >> -- >> Nicolas Ferre >
On 19/02/2019 at 17:51, Alexandre Belloni wrote: > nck() looks at the last id in an array and unfortunately, > at91sam9x35_periphck has a sentinel, hence the id is 0 and the calculated > number of peripheral clocks is 1 instead of a maximum of 31. > > Fixes: 1eabdc2f9dd8 ("clk: at91: add at91sam9x5 PMCs driver") > Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com> Cc: <stable@vger.kernel.org> # v4.20+ It would be nice to queue it as a fix the soonest, as it impacts 5.0 but not 4.20 due to a switch from one DT binding to another (read: a real regression)... But I know it's a bit late in the cycle... Regards, Nicolas > --- > drivers/clk/at91/at91sam9x5.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/drivers/clk/at91/at91sam9x5.c b/drivers/clk/at91/at91sam9x5.c > index 2fe225a697df..d37e7ed9eb90 100644 > --- a/drivers/clk/at91/at91sam9x5.c > +++ b/drivers/clk/at91/at91sam9x5.c > @@ -144,8 +144,7 @@ static void __init at91sam9x5_pmc_setup(struct device_node *np, > return; > > at91sam9x5_pmc = pmc_data_allocate(PMC_MAIN + 1, > - nck(at91sam9x5_systemck), > - nck(at91sam9x35_periphck), 0); > + nck(at91sam9x5_systemck), 31, 0); > if (!at91sam9x5_pmc) > return; > >
Quoting Nicolas.Ferre@microchip.com (2019-02-20 03:18:40) > On 19/02/2019 at 17:51, Alexandre Belloni wrote: > > nck() looks at the last id in an array and unfortunately, > > at91sam9x35_periphck has a sentinel, hence the id is 0 and the calculated > > number of peripheral clocks is 1 instead of a maximum of 31. > > > > Fixes: 1eabdc2f9dd8 ("clk: at91: add at91sam9x5 PMCs driver") > > Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> > > Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com> > Cc: <stable@vger.kernel.org> # v4.20+ > > It would be nice to queue it as a fix the soonest, as it impacts 5.0 but > not 4.20 due to a switch from one DT binding to another (read: a real > regression)... But I know it's a bit late in the cycle... > Ok. Let's send it off tomorrow.
Quoting Alexandre Belloni (2019-02-19 08:51:14) > nck() looks at the last id in an array and unfortunately, > at91sam9x35_periphck has a sentinel, hence the id is 0 and the calculated > number of peripheral clocks is 1 instead of a maximum of 31. > > Fixes: 1eabdc2f9dd8 ("clk: at91: add at91sam9x5 PMCs driver") > Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> > --- Applied to clk-fixes
diff --git a/drivers/clk/at91/at91sam9x5.c b/drivers/clk/at91/at91sam9x5.c index 2fe225a697df..d37e7ed9eb90 100644 --- a/drivers/clk/at91/at91sam9x5.c +++ b/drivers/clk/at91/at91sam9x5.c @@ -144,8 +144,7 @@ static void __init at91sam9x5_pmc_setup(struct device_node *np, return; at91sam9x5_pmc = pmc_data_allocate(PMC_MAIN + 1, - nck(at91sam9x5_systemck), - nck(at91sam9x35_periphck), 0); + nck(at91sam9x5_systemck), 31, 0); if (!at91sam9x5_pmc) return;
nck() looks at the last id in an array and unfortunately, at91sam9x35_periphck has a sentinel, hence the id is 0 and the calculated number of peripheral clocks is 1 instead of a maximum of 31. Fixes: 1eabdc2f9dd8 ("clk: at91: add at91sam9x5 PMCs driver") Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> --- drivers/clk/at91/at91sam9x5.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)