Message ID | 20220428183010.1635248-1-stefan.wahren@i2se.com (mailing list archive) |
---|---|
State | Accepted, archived |
Headers | show |
Series | clk: bcm2835: fix bcm2835_clock_choose_div | expand |
Hi, On Thu, Apr 28, 2022 at 08:30:10PM +0200, Stefan Wahren wrote: > The commit 09e3b18ca5de ("clk: bcm2835: Remove unused variable") > accidentially breaks the behavior of bcm2835_clock_choose_div() and > booting of Raspberry Pi. The removed do_div macro call had side effects, > so we need to restore it. > > Fixes: 09e3b18ca5de ("clk: bcm2835: Remove unused variable") > Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com> I only found this patch after debugging why the HDMI driver was returning -EINVAL at probe on -rc5. Acked-by: Maxime Ripard <maxime@cerno.tech> Tested-by: Maxime Ripard <maxime@cerno.tech> Thanks! Maxime
Am 03.05.22 um 16:58 schrieb Maxime Ripard: > Hi, > > On Thu, Apr 28, 2022 at 08:30:10PM +0200, Stefan Wahren wrote: >> The commit 09e3b18ca5de ("clk: bcm2835: Remove unused variable") >> accidentially breaks the behavior of bcm2835_clock_choose_div() and >> booting of Raspberry Pi. The removed do_div macro call had side effects, >> so we need to restore it. >> >> Fixes: 09e3b18ca5de ("clk: bcm2835: Remove unused variable") >> Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com> > I only found this patch after debugging why the HDMI driver was > returning -EINVAL at probe on -rc5. > > Acked-by: Maxime Ripard <maxime@cerno.tech> > Tested-by: Maxime Ripard <maxime@cerno.tech> Thanks, does this go via clk-fixes? > > Thanks! > Maxime
On Sat, May 07, 2022 at 11:26:28AM +0200, Stefan Wahren wrote: > Am 03.05.22 um 16:58 schrieb Maxime Ripard: > > Hi, > > > > On Thu, Apr 28, 2022 at 08:30:10PM +0200, Stefan Wahren wrote: > > > The commit 09e3b18ca5de ("clk: bcm2835: Remove unused variable") > > > accidentially breaks the behavior of bcm2835_clock_choose_div() and > > > booting of Raspberry Pi. The removed do_div macro call had side effects, > > > so we need to restore it. > > > > > > Fixes: 09e3b18ca5de ("clk: bcm2835: Remove unused variable") > > > Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com> > > I only found this patch after debugging why the HDMI driver was > > returning -EINVAL at probe on -rc5. > > > > Acked-by: Maxime Ripard <maxime@cerno.tech> > > Tested-by: Maxime Ripard <maxime@cerno.tech> > > Thanks, > > does this go via clk-fixes? Yep, it should. Stephen, could we merge this? Maxime
Hi, Am 10.05.22 um 15:27 schrieb Maxime Ripard: > On Sat, May 07, 2022 at 11:26:28AM +0200, Stefan Wahren wrote: >> Am 03.05.22 um 16:58 schrieb Maxime Ripard: >>> Hi, >>> >>> On Thu, Apr 28, 2022 at 08:30:10PM +0200, Stefan Wahren wrote: >>>> The commit 09e3b18ca5de ("clk: bcm2835: Remove unused variable") >>>> accidentially breaks the behavior of bcm2835_clock_choose_div() and >>>> booting of Raspberry Pi. The removed do_div macro call had side effects, >>>> so we need to restore it. >>>> >>>> Fixes: 09e3b18ca5de ("clk: bcm2835: Remove unused variable") >>>> Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com> >>> I only found this patch after debugging why the HDMI driver was >>> returning -EINVAL at probe on -rc5. >>> >>> Acked-by: Maxime Ripard <maxime@cerno.tech> >>> Tested-by: Maxime Ripard <maxime@cerno.tech> >> Thanks, >> >> does this go via clk-fixes? > Yep, it should. > > Stephen, could we merge this? Is there any chance to get this regression fix into mainline before 5.18 is released? > > Maxime
[TLDR: I'm adding this regression report to the list of tracked regressions; all text from me you find below is based on a few templates paragraphs you might have encountered already already in similar form.] Hi, this is your Linux kernel regression tracker. Thx for CCing the regression list in a later mail. On 28.04.22 20:30, Stefan Wahren wrote: > The commit 09e3b18ca5de ("clk: bcm2835: Remove unused variable") > accidentially breaks the behavior of bcm2835_clock_choose_div() and > booting of Raspberry Pi. The removed do_div macro call had side effects, > so we need to restore it. > > Fixes: 09e3b18ca5de ("clk: bcm2835: Remove unused variable") > Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com> To be sure the issue doesn't fall through the cracks unnoticed as it mentioned in the weekly reports, I'm adding it to regzbot, my Linux kernel regression tracking bot: #regzbot ^introduced 09e3b18ca5de #regzbot title clk: bcm2835: 09e3b18ca5de broke the behavior of bcm2835_clock_choose_div() and booting of Raspberry Pi booting of Raspberry Pi #regzbot ignore-activity > --- > drivers/clk/bcm/clk-bcm2835.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/clk/bcm/clk-bcm2835.c b/drivers/clk/bcm/clk-bcm2835.c > index 3ad20e75fd23..48a1eb9f2d55 100644 > --- a/drivers/clk/bcm/clk-bcm2835.c > +++ b/drivers/clk/bcm/clk-bcm2835.c > @@ -941,6 +941,7 @@ static u32 bcm2835_clock_choose_div(struct clk_hw *hw, > u64 temp = (u64)parent_rate << CM_DIV_FRAC_BITS; > u32 div, mindiv, maxdiv; > > + do_div(temp, rate); > div = temp; > div &= ~unused_frac_mask; > Ciao, Thorsten (wearing his 'the Linux kernel's regression tracker' hat) P.S.: As the Linux kernel's regression tracker I deal with a lot of reports and sometimes miss something important when writing mails like this. If that's the case here, don't hesitate to tell me in a public reply, it's in everyone's interest to set the public record straight.
Quoting Stefan Wahren (2022-04-28 11:30:10) > The commit 09e3b18ca5de ("clk: bcm2835: Remove unused variable") > accidentially breaks the behavior of bcm2835_clock_choose_div() and > booting of Raspberry Pi. The removed do_div macro call had side effects, > so we need to restore it. > > Fixes: 09e3b18ca5de ("clk: bcm2835: Remove unused variable") > Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com> > --- Applied to clk-fixes
diff --git a/drivers/clk/bcm/clk-bcm2835.c b/drivers/clk/bcm/clk-bcm2835.c index 3ad20e75fd23..48a1eb9f2d55 100644 --- a/drivers/clk/bcm/clk-bcm2835.c +++ b/drivers/clk/bcm/clk-bcm2835.c @@ -941,6 +941,7 @@ static u32 bcm2835_clock_choose_div(struct clk_hw *hw, u64 temp = (u64)parent_rate << CM_DIV_FRAC_BITS; u32 div, mindiv, maxdiv; + do_div(temp, rate); div = temp; div &= ~unused_frac_mask;
The commit 09e3b18ca5de ("clk: bcm2835: Remove unused variable") accidentially breaks the behavior of bcm2835_clock_choose_div() and booting of Raspberry Pi. The removed do_div macro call had side effects, so we need to restore it. Fixes: 09e3b18ca5de ("clk: bcm2835: Remove unused variable") Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com> --- drivers/clk/bcm/clk-bcm2835.c | 1 + 1 file changed, 1 insertion(+)