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 <[email protected]>
---
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;
--
2.25.1
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 <[email protected]>
I only found this patch after debugging why the HDMI driver was
returning -EINVAL at probe on -rc5.
Acked-by: Maxime Ripard <[email protected]>
Tested-by: Maxime Ripard <[email protected]>
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 <[email protected]>
> I only found this patch after debugging why the HDMI driver was
> returning -EINVAL at probe on -rc5.
>
> Acked-by: Maxime Ripard <[email protected]>
> Tested-by: Maxime Ripard <[email protected]>
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 <[email protected]>
> > I only found this patch after debugging why the HDMI driver was
> > returning -EINVAL at probe on -rc5.
> >
> > Acked-by: Maxime Ripard <[email protected]>
> > Tested-by: Maxime Ripard <[email protected]>
>
> 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 <[email protected]>
>>> I only found this patch after debugging why the HDMI driver was
>>> returning -EINVAL at probe on -rc5.
>>>
>>> Acked-by: Maxime Ripard <[email protected]>
>>> Tested-by: Maxime Ripard <[email protected]>
>> 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 <[email protected]>
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 <[email protected]>
> ---
Applied to clk-fixes