Message ID | 20230119131014.1228773-1-a.fatoum@pengutronix.de (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net] net: dsa: microchip: fix probe of I2C-connected KSZ8563 | expand |
On Thu, Jan 19, 2023 at 02:10:15PM +0100, Ahmad Fatoum wrote: > Starting with commit eee16b147121 ("net: dsa: microchip: perform the > compatibility check for dev probed"), the KSZ switch driver now bails > out if it thinks the DT compatible doesn't match the actual chip: > > ksz9477-switch 1-005f: Device tree specifies chip KSZ9893 but found > KSZ8563, please fix it! > > Problem is that the "microchip,ksz8563" compatible is associated > with ksz_switch_chips[KSZ9893]. Same issue also affected the SPI driver > for the same switch chip and was fixed in commit b44908095612 > ("net: dsa: microchip: add separate struct ksz_chip_data for KSZ8563 chip"). > > Reuse ksz_switch_chips[KSZ8563] introduced in aforementioned commit > to get I2C-connected KSZ8563 probing again. > > Fixes: eee16b147121 ("net: dsa: microchip: perform the compatibility check for dev probed") > Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Andrew
Hi Ahmad, On Thu, 2023-01-19 at 14:10 +0100, Ahmad Fatoum wrote: > [You don't often get email from a.fatoum@pengutronix.de. Learn why > this is important at https://aka.ms/LearnAboutSenderIdentification ] > > EXTERNAL EMAIL: Do not click links or open attachments unless you > know the content is safe > > Starting with commit eee16b147121 ("net: dsa: microchip: perform the > compatibility check for dev probed"), the KSZ switch driver now bails > out if it thinks the DT compatible doesn't match the actual chip: > > ksz9477-switch 1-005f: Device tree specifies chip KSZ9893 but found > KSZ8563, please fix it! > > Problem is that the "microchip,ksz8563" compatible is associated > with ksz_switch_chips[KSZ9893]. Same issue also affected the SPI > driver > for the same switch chip and was fixed in commit b44908095612 > ("net: dsa: microchip: add separate struct ksz_chip_data for KSZ8563 > chip"). > > Reuse ksz_switch_chips[KSZ8563] introduced in aforementioned commit > to get I2C-connected KSZ8563 probing again. > > Fixes: eee16b147121 ("net: dsa: microchip: perform the compatibility > check for dev probed") In this commit, there is no KSZ8563 member in struct ksz_switch_chips. Whether the fixes should be to this commit "net: dsa: microchip: add separate struct ksz_chip_data for KSZ8563" where the member is introduced. > chip > Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> > --- > drivers/net/dsa/microchip/ksz9477_i2c.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/dsa/microchip/ksz9477_i2c.c > b/drivers/net/dsa/microchip/ksz9477_i2c.c > index c1a633ca1e6d..e315f669ec06 100644 > --- a/drivers/net/dsa/microchip/ksz9477_i2c.c > +++ b/drivers/net/dsa/microchip/ksz9477_i2c.c > @@ -104,7 +104,7 @@ static const struct of_device_id ksz9477_dt_ids[] > = { > }, > { > .compatible = "microchip,ksz8563", > - .data = &ksz_switch_chips[KSZ9893] > + .data = &ksz_switch_chips[KSZ8563] > }, > { > .compatible = "microchip,ksz9567", > -- > 2.30.2 >
Hello Arun, On 20.01.23 08:01, Arun.Ramadoss@microchip.com wrote: > Hi Ahmad, > On Thu, 2023-01-19 at 14:10 +0100, Ahmad Fatoum wrote: >> [You don't often get email from a.fatoum@pengutronix.de. Learn why >> this is important at https://aka.ms/LearnAboutSenderIdentification ] >> >> EXTERNAL EMAIL: Do not click links or open attachments unless you >> know the content is safe >> >> Starting with commit eee16b147121 ("net: dsa: microchip: perform the >> compatibility check for dev probed"), the KSZ switch driver now bails >> out if it thinks the DT compatible doesn't match the actual chip: >> >> ksz9477-switch 1-005f: Device tree specifies chip KSZ9893 but found >> KSZ8563, please fix it! >> >> Problem is that the "microchip,ksz8563" compatible is associated >> with ksz_switch_chips[KSZ9893]. Same issue also affected the SPI >> driver >> for the same switch chip and was fixed in commit b44908095612 >> ("net: dsa: microchip: add separate struct ksz_chip_data for KSZ8563 >> chip"). >> >> Reuse ksz_switch_chips[KSZ8563] introduced in aforementioned commit >> to get I2C-connected KSZ8563 probing again. >> >> Fixes: eee16b147121 ("net: dsa: microchip: perform the compatibility >> check for dev probed") > > In this commit, there is no KSZ8563 member in struct ksz_switch_chips. > Whether the fixes should be to this commit "net: dsa: microchip: add > separate struct ksz_chip_data for KSZ8563" where the member is > introduced. I disagree. eee16b147121 introduced the check that made my device not probe anymore, so that's what's referenced in Fixes:. Commit b44908095612 should have had a Fixes: pointing at eee16b147121 as well, so users don't miss it. But if they miss it, they will notice this at build-time anyway. Cheers, Ahmad > >> chip >> Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> >> --- >> drivers/net/dsa/microchip/ksz9477_i2c.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/net/dsa/microchip/ksz9477_i2c.c >> b/drivers/net/dsa/microchip/ksz9477_i2c.c >> index c1a633ca1e6d..e315f669ec06 100644 >> --- a/drivers/net/dsa/microchip/ksz9477_i2c.c >> +++ b/drivers/net/dsa/microchip/ksz9477_i2c.c >> @@ -104,7 +104,7 @@ static const struct of_device_id ksz9477_dt_ids[] >> = { >> }, >> { >> .compatible = "microchip,ksz8563", >> - .data = &ksz_switch_chips[KSZ9893] >> + .data = &ksz_switch_chips[KSZ8563] >> }, >> { >> .compatible = "microchip,ksz9567", >> -- >> 2.30.2 >>
Hi Ahmad, On Fri, 2023-01-20 at 08:57 +0100, Ahmad Fatoum wrote: > [You don't often get email from a.fatoum@pengutronix.de. Learn why > this is important at https://aka.ms/LearnAboutSenderIdentification ] > > EXTERNAL EMAIL: Do not click links or open attachments unless you > know the content is safe > > Hello Arun, > > On 20.01.23 08:01, Arun.Ramadoss@microchip.com wrote: > > Hi Ahmad, > > On Thu, 2023-01-19 at 14:10 +0100, Ahmad Fatoum wrote: > > > [You don't often get email from a.fatoum@pengutronix.de. Learn > > > why > > > this is important at > > > https://aka.ms/LearnAboutSenderIdentification ] > > > > > > EXTERNAL EMAIL: Do not click links or open attachments unless you > > > know the content is safe > > > > > > Starting with commit eee16b147121 ("net: dsa: microchip: perform > > > the > > > compatibility check for dev probed"), the KSZ switch driver now > > > bails > > > out if it thinks the DT compatible doesn't match the actual chip: > > > > > > ksz9477-switch 1-005f: Device tree specifies chip KSZ9893 but > > > found > > > KSZ8563, please fix it! > > > > > > Problem is that the "microchip,ksz8563" compatible is associated > > > with ksz_switch_chips[KSZ9893]. Same issue also affected the SPI > > > driver > > > for the same switch chip and was fixed in commit b44908095612 > > > ("net: dsa: microchip: add separate struct ksz_chip_data for > > > KSZ8563 > > > chip"). > > > > > > Reuse ksz_switch_chips[KSZ8563] introduced in aforementioned > > > commit > > > to get I2C-connected KSZ8563 probing again. > > > > > > Fixes: eee16b147121 ("net: dsa: microchip: perform the > > > compatibility > > > check for dev probed") > > > > In this commit, there is no KSZ8563 member in struct > > ksz_switch_chips. > > Whether the fixes should be to this commit "net: dsa: microchip: > > add > > separate struct ksz_chip_data for KSZ8563" where the member is > > introduced. > > I disagree. eee16b147121 introduced the check that made my device > not probe anymore, so that's what's referenced in Fixes:. Commit > b44908095612 should have had a Fixes: pointing at eee16b147121 > as well, so users don't miss it. But if they miss it, they > will notice this at build-time anyway. The KSZ9893, KSZ9563 and KSZ8563 all has the same chip id 0x00989300. They belong to 3 port switch family. Differentiation is done based on 0x1F register. In the commit eee16b147121, there is no differentiation based on 0x1F, device is selected based on chip id, all the three chips will be identified as ksz9893 only. After the commit b44908095612, KSZ8563 chips is identified based on 0x1F register. > > Cheers, > Ahmad > > > > > > chip > > > Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> > > > --- > > > drivers/net/dsa/microchip/ksz9477_i2c.c | 2 +- > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > diff --git a/drivers/net/dsa/microchip/ksz9477_i2c.c > > > b/drivers/net/dsa/microchip/ksz9477_i2c.c > > > index c1a633ca1e6d..e315f669ec06 100644 > > > --- a/drivers/net/dsa/microchip/ksz9477_i2c.c > > > +++ b/drivers/net/dsa/microchip/ksz9477_i2c.c > > > @@ -104,7 +104,7 @@ static const struct of_device_id > > > ksz9477_dt_ids[] > > > = { > > > }, > > > { > > > .compatible = "microchip,ksz8563", > > > - .data = &ksz_switch_chips[KSZ9893] > > > + .data = &ksz_switch_chips[KSZ8563] > > > }, > > > { > > > .compatible = "microchip,ksz9567", > > > -- > > > 2.30.2 > > > > > -- > Pengutronix > e.K. | | > Steuerwalder Str. 21 | > http://www.pengutronix.de/e/ | > 31137 Hildesheim, Germany | Phone: +49-5121-206917- > 0 | > Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917- > 5555 | >
On 20.01.23 11:38, Arun.Ramadoss@microchip.com wrote: > On Fri, 2023-01-20 at 08:57 +0100, Ahmad Fatoum wrote: >>> In this commit, there is no KSZ8563 member in struct >>> ksz_switch_chips. >>> Whether the fixes should be to this commit "net: dsa: microchip: >>> add >>> separate struct ksz_chip_data for KSZ8563" where the member is >>> introduced. >> >> I disagree. eee16b147121 introduced the check that made my device >> not probe anymore, so that's what's referenced in Fixes:. Commit >> b44908095612 should have had a Fixes: pointing at eee16b147121 >> as well, so users don't miss it. But if they miss it, they >> will notice this at build-time anyway. > > The KSZ9893, KSZ9563 and KSZ8563 all has the same chip id 0x00989300. > They belong to 3 port switch family. Differentiation is done based on > 0x1F register. In the commit eee16b147121, there is no differentiation > based on 0x1F, device is selected based on chip id, all the three chips > will be identified as ksz9893 only. After the commit b44908095612, > KSZ8563 chips is identified based on 0x1F register. Thanks for the elaboration. I see it now. I will send a v2 with revised commit messages and Fixes:. Should I include your Reviewed-by: with the commit message rewritten? Cheers, Ahmad > >> >> Cheers, >> Ahmad >> >>> >>>> chip >>>> Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> >>>> --- >>>> drivers/net/dsa/microchip/ksz9477_i2c.c | 2 +- >>>> 1 file changed, 1 insertion(+), 1 deletion(-) >>>> >>>> diff --git a/drivers/net/dsa/microchip/ksz9477_i2c.c >>>> b/drivers/net/dsa/microchip/ksz9477_i2c.c >>>> index c1a633ca1e6d..e315f669ec06 100644 >>>> --- a/drivers/net/dsa/microchip/ksz9477_i2c.c >>>> +++ b/drivers/net/dsa/microchip/ksz9477_i2c.c >>>> @@ -104,7 +104,7 @@ static const struct of_device_id >>>> ksz9477_dt_ids[] >>>> = { >>>> }, >>>> { >>>> .compatible = "microchip,ksz8563", >>>> - .data = &ksz_switch_chips[KSZ9893] >>>> + .data = &ksz_switch_chips[KSZ8563] >>>> }, >>>> { >>>> .compatible = "microchip,ksz9567", >>>> -- >>>> 2.30.2 >>>> >> >> -- >> Pengutronix >> e.K. | | >> Steuerwalder Str. 21 | >> http://www.pengutronix.de/e/ | >> 31137 Hildesheim, Germany | Phone: +49-5121-206917- >> 0 | >> Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917- >> 5555 | >>
On Fri, 2023-01-20 at 11:42 +0100, Ahmad Fatoum wrote: > [Some people who received this message don't often get email from > a.fatoum@pengutronix.de. Learn why this is important at > https://aka.ms/LearnAboutSenderIdentification ] > > EXTERNAL EMAIL: Do not click links or open attachments unless you > know the content is safe > > On 20.01.23 11:38, Arun.Ramadoss@microchip.com wrote: > > On Fri, 2023-01-20 at 08:57 +0100, Ahmad Fatoum wrote: > > > > In this commit, there is no KSZ8563 member in struct > > > > ksz_switch_chips. > > > > Whether the fixes should be to this commit "net: dsa: > > > > microchip: > > > > add > > > > separate struct ksz_chip_data for KSZ8563" where the member is > > > > introduced. > > > > > > I disagree. eee16b147121 introduced the check that made my device > > > not probe anymore, so that's what's referenced in Fixes:. Commit > > > b44908095612 should have had a Fixes: pointing at eee16b147121 > > > as well, so users don't miss it. But if they miss it, they > > > will notice this at build-time anyway. > > > > The KSZ9893, KSZ9563 and KSZ8563 all has the same chip id > > 0x00989300. > > They belong to 3 port switch family. Differentiation is done based > > on > > 0x1F register. In the commit eee16b147121, there is no > > differentiation > > based on 0x1F, device is selected based on chip id, all the three > > chips > > will be identified as ksz9893 only. After the commit b44908095612, > > KSZ8563 chips is identified based on 0x1F register. > > Thanks for the elaboration. I see it now. I will send a v2 > with revised commit messages and Fixes:. Should I include > your Reviewed-by: with the commit message rewritten? I think, I can add my Ack-by: after you post v2 version. > > Cheers, > Ahmad > > > > > > > > > Cheers, > > > Ahmad > > > > > > > > > > > > chip > > > > > Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> > > > > > --- > > > > > drivers/net/dsa/microchip/ksz9477_i2c.c | 2 +- > > > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > > > > > diff --git a/drivers/net/dsa/microchip/ksz9477_i2c.c > > > > > b/drivers/net/dsa/microchip/ksz9477_i2c.c > > > > > index c1a633ca1e6d..e315f669ec06 100644 > > > > > --- a/drivers/net/dsa/microchip/ksz9477_i2c.c > > > > > +++ b/drivers/net/dsa/microchip/ksz9477_i2c.c > > > > > @@ -104,7 +104,7 @@ static const struct of_device_id > > > > > ksz9477_dt_ids[] > > > > > = { > > > > > }, > > > > > { > > > > > .compatible = "microchip,ksz8563", > > > > > - .data = &ksz_switch_chips[KSZ9893] > > > > > + .data = &ksz_switch_chips[KSZ8563] > > > > > }, > > > > > { > > > > > .compatible = "microchip,ksz9567", > > > > > -- > > > > > 2.30.2 > > > > > > > > > > > -- > > > Pengutronix > > > e.K. | | > > > Steuerwalder Str. 21 | > > > http://www.pengutronix.de/e/e/ | > > > 31137 Hildesheim, Germany | Phone: +49-5121- > > > 206917- > > > 0 | > > > Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121- > > > 206917- > > > 5555 | > > > > > -- > Pengutronix > e.K. | | > Steuerwalder Str. 21 | > http://www.pengutronix.de/e/ | > 31137 Hildesheim, Germany | Phone: +49-5121-206917- > 0 | > Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917- > 5555 | >
On Fri, Jan 20, 2023 at 08:57:03AM +0100, Ahmad Fatoum wrote: > Hello Arun, > > On 20.01.23 08:01, Arun.Ramadoss@microchip.com wrote: > > Hi Ahmad, > > On Thu, 2023-01-19 at 14:10 +0100, Ahmad Fatoum wrote: > >> [You don't often get email from a.fatoum@pengutronix.de. Learn why > >> this is important at https://aka.ms/LearnAboutSenderIdentification ] > >> > >> EXTERNAL EMAIL: Do not click links or open attachments unless you > >> know the content is safe > >> > >> Starting with commit eee16b147121 ("net: dsa: microchip: perform the > >> compatibility check for dev probed"), the KSZ switch driver now bails > >> out if it thinks the DT compatible doesn't match the actual chip: > >> > >> ksz9477-switch 1-005f: Device tree specifies chip KSZ9893 but found > >> KSZ8563, please fix it! > >> > >> Problem is that the "microchip,ksz8563" compatible is associated > >> with ksz_switch_chips[KSZ9893]. Same issue also affected the SPI > >> driver > >> for the same switch chip and was fixed in commit b44908095612 > >> ("net: dsa: microchip: add separate struct ksz_chip_data for KSZ8563 > >> chip"). > >> > >> Reuse ksz_switch_chips[KSZ8563] introduced in aforementioned commit > >> to get I2C-connected KSZ8563 probing again. > >> > >> Fixes: eee16b147121 ("net: dsa: microchip: perform the compatibility > >> check for dev probed") > > > > In this commit, there is no KSZ8563 member in struct ksz_switch_chips. > > Whether the fixes should be to this commit "net: dsa: microchip: add > > separate struct ksz_chip_data for KSZ8563" where the member is > > introduced. > > I disagree. eee16b147121 introduced the check that made my device > not probe anymore, so that's what's referenced in Fixes:. Commit > b44908095612 should have had a Fixes: pointing at eee16b147121 > as well, so users don't miss it. But if they miss it, they > will notice this at build-time anyway. So it sounds like two different fixes are needed? For recent kernels this fix alone is sufficient. But for older kernels additional changes are needed. Is it sufficient to backport existing patches, or are new patches needed? Please start fixing the current kernel. Once that is merged you can post a fix for older kernels, referencing the merged fix. Andrew
Hello Andrew, On 20.01.23 14:08, Andrew Lunn wrote: > On Fri, Jan 20, 2023 at 08:57:03AM +0100, Ahmad Fatoum wrote: >> Hello Arun, >> >> On 20.01.23 08:01, Arun.Ramadoss@microchip.com wrote: >>> Hi Ahmad, >>> On Thu, 2023-01-19 at 14:10 +0100, Ahmad Fatoum wrote: >>>> [You don't often get email from a.fatoum@pengutronix.de. Learn why >>>> this is important at https://aka.ms/LearnAboutSenderIdentification ] >>>> >>>> EXTERNAL EMAIL: Do not click links or open attachments unless you >>>> know the content is safe >>>> >>>> Starting with commit eee16b147121 ("net: dsa: microchip: perform the >>>> compatibility check for dev probed"), the KSZ switch driver now bails >>>> out if it thinks the DT compatible doesn't match the actual chip: >>>> >>>> ksz9477-switch 1-005f: Device tree specifies chip KSZ9893 but found >>>> KSZ8563, please fix it! >>>> >>>> Problem is that the "microchip,ksz8563" compatible is associated >>>> with ksz_switch_chips[KSZ9893]. Same issue also affected the SPI >>>> driver >>>> for the same switch chip and was fixed in commit b44908095612 >>>> ("net: dsa: microchip: add separate struct ksz_chip_data for KSZ8563 >>>> chip"). >>>> >>>> Reuse ksz_switch_chips[KSZ8563] introduced in aforementioned commit >>>> to get I2C-connected KSZ8563 probing again. >>>> >>>> Fixes: eee16b147121 ("net: dsa: microchip: perform the compatibility >>>> check for dev probed") >>> >>> In this commit, there is no KSZ8563 member in struct ksz_switch_chips. >>> Whether the fixes should be to this commit "net: dsa: microchip: add >>> separate struct ksz_chip_data for KSZ8563" where the member is >>> introduced. >> >> I disagree. eee16b147121 introduced the check that made my device >> not probe anymore, so that's what's referenced in Fixes:. Commit >> b44908095612 should have had a Fixes: pointing at eee16b147121 >> as well, so users don't miss it. But if they miss it, they >> will notice this at build-time anyway. > > So it sounds like two different fixes are needed? For recent kernels > this fix alone is sufficient. But for older kernels additional changes > are needed. Is it sufficient to backport existing patches, or are new > patches needed? > > Please start fixing the current kernel. Once that is merged you can > post a fix for older kernels, referencing the merged fix. I misunderstood the issue. It's indeed a single commit that broke it. I just sent a v2 with a revised commit message and the correct Fixes:. The fix can be cherry-picked on its own to any kernel that contains the offending commit without any prerequisite patches. Cheers, Ahmad > > Andrew >
diff --git a/drivers/net/dsa/microchip/ksz9477_i2c.c b/drivers/net/dsa/microchip/ksz9477_i2c.c index c1a633ca1e6d..e315f669ec06 100644 --- a/drivers/net/dsa/microchip/ksz9477_i2c.c +++ b/drivers/net/dsa/microchip/ksz9477_i2c.c @@ -104,7 +104,7 @@ static const struct of_device_id ksz9477_dt_ids[] = { }, { .compatible = "microchip,ksz8563", - .data = &ksz_switch_chips[KSZ9893] + .data = &ksz_switch_chips[KSZ8563] }, { .compatible = "microchip,ksz9567",
Starting with commit eee16b147121 ("net: dsa: microchip: perform the compatibility check for dev probed"), the KSZ switch driver now bails out if it thinks the DT compatible doesn't match the actual chip: ksz9477-switch 1-005f: Device tree specifies chip KSZ9893 but found KSZ8563, please fix it! Problem is that the "microchip,ksz8563" compatible is associated with ksz_switch_chips[KSZ9893]. Same issue also affected the SPI driver for the same switch chip and was fixed in commit b44908095612 ("net: dsa: microchip: add separate struct ksz_chip_data for KSZ8563 chip"). Reuse ksz_switch_chips[KSZ8563] introduced in aforementioned commit to get I2C-connected KSZ8563 probing again. Fixes: eee16b147121 ("net: dsa: microchip: perform the compatibility check for dev probed") Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> --- drivers/net/dsa/microchip/ksz9477_i2c.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)