Message ID | bbcc63f4-a256-e7a5-ec32-4bd134a161dd@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 7 July 2016 at 00:25, Heiner Kallweit <hkallweit1@gmail.com> wrote: > Am 06.07.2016 um 08:51 schrieb Antti Seppälä: >> Hello. >> >> I recently updated my kernel to a newer version but couldn't boot it >> because it hangs. >> >> It turns out that your patch[1] to nuvoton-cir has really bad >> side-effects when it interacts with nct6775 module. It could be that >> one of the devices never frees the request_muxed_region which causes >> the other module to wait indefinitely. >> >> Reverting the patch or preventing nct6775 module from loading makes >> the issue go away. >> >> Other people have run into this issue too[2]. >> >> This is a regression and should be fixed. >> Could you look into it and maybe submit a follow-up patch to fix this >> or shall I perhaps ask for a revert of the troublesome commit? >> >> >> [1]: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/drivers/media/rc/nuvoton-cir.c?id=3def9ad6d3066e597d0ce86801a81eedb130b04a >> >> [2]: https://bbs.archlinux.org/viewtopic.php?id=213647 >> >> >> Regards, >> > Thanks for reporting. Indeed there may be an issue with systems using > the alternative EFM IO address of the Nuvoton chip. > Therefore it doesn't occur on all systems with this chip and then > only if the nct6775 driver is loaded after the nuvoton-cir driver. > Could you please check whether the following patch fixes the issue for you? > > diff --git a/drivers/media/rc/nuvoton-cir.c b/drivers/media/rc/nuvoton-cir.c > index 99b303b..e8ceb0e 100644 > --- a/drivers/media/rc/nuvoton-cir.c > +++ b/drivers/media/rc/nuvoton-cir.c > @@ -401,6 +401,7 @@ static int nvt_hw_detect(struct nvt_dev *nvt) > /* Check if we're wired for the alternate EFER setup */ > nvt->chip_major = nvt_cr_read(nvt, CR_CHIP_ID_HI); > if (nvt->chip_major == 0xff) { > + nvt_efm_disable(nvt); > nvt->cr_efir = CR_EFIR2; > nvt->cr_efdr = CR_EFDR2; > nvt_efm_enable(nvt); > -- > 2.9.0 > Yes, I can confirm that with this patch the hang doesn't occur anymore. Thank you! Please submit a patch with proper commit message. I think it's best to Cc it to stable@vger.kernel.org as well. Best regards,
diff --git a/drivers/media/rc/nuvoton-cir.c b/drivers/media/rc/nuvoton-cir.c index 99b303b..e8ceb0e 100644 --- a/drivers/media/rc/nuvoton-cir.c +++ b/drivers/media/rc/nuvoton-cir.c @@ -401,6 +401,7 @@ static int nvt_hw_detect(struct nvt_dev *nvt) /* Check if we're wired for the alternate EFER setup */ nvt->chip_major = nvt_cr_read(nvt, CR_CHIP_ID_HI); if (nvt->chip_major == 0xff) { + nvt_efm_disable(nvt); nvt->cr_efir = CR_EFIR2; nvt->cr_efdr = CR_EFDR2; nvt_efm_enable(nvt);