diff options
author | Heiner Kallweit <[email protected]> | 2016-07-07 03:17:39 -0300 |
---|---|---|
committer | Mauro Carvalho Chehab <[email protected]> | 2016-07-13 15:49:01 -0300 |
commit | 5cac1f67ea0363d463a58ec2d9118268fe2ba5d6 (patch) | |
tree | b6e362ab3e220d3874bfeac452c270cfb1b7c579 | |
parent | da677fe14364f7ac1f5f7085c58bbc2f7bb12da0 (diff) |
[media] rc: nuvoton: fix hang if chip is configured for alternative EFM IO address
If a system configures the Nuvoton chip to use the alternative
EFM IO address (CR_EFIR2) then after probing the primary EFM IO
address (CR_EFIR) this region is not released.
If a driver for another function of the Nuvoton Super I/O
chip uses the same probing mechanism then it will hang if
loaded after the nuvoton-cir driver.
This was reported for the nct6775 hwmon driver.
Fix this by properly releasing the region after probing CR_EFIR.
This regression was introduced with kernel 4.6 so cc it to stable.
Reported-by: Antti Seppälä <[email protected]>
Signed-off-by: Heiner Kallweit <[email protected]>
Tested-by: Antti Seppälä <[email protected]>
Cc: <[email protected]> # 4.6.x-
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
-rw-r--r-- | drivers/media/rc/nuvoton-cir.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/media/rc/nuvoton-cir.c b/drivers/media/rc/nuvoton-cir.c index 36abfc2800f0..00215f343819 100644 --- a/drivers/media/rc/nuvoton-cir.c +++ b/drivers/media/rc/nuvoton-cir.c @@ -393,6 +393,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); |