Commit 3def9ad6 authored by Heiner Kallweit's avatar Heiner Kallweit Committed by Mauro Carvalho Chehab

[media] nuvoton-cir: use request_muxed_region for accessing EFM registers

The two EFM ioports are accessed by drivers for other parts of the Nuvoton
Super-IO chips too. Therefore access to these ioports needs to be
protected by using request_muxed_region (like it's implemented e.g. in
hwmon/nct6775 already).
Signed-off-by: default avatarHeiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
parent a73cfe52
...@@ -80,17 +80,24 @@ static inline void nvt_clear_reg_bit(struct nvt_dev *nvt, u8 val, u8 reg) ...@@ -80,17 +80,24 @@ static inline void nvt_clear_reg_bit(struct nvt_dev *nvt, u8 val, u8 reg)
} }
/* enter extended function mode */ /* enter extended function mode */
static inline void nvt_efm_enable(struct nvt_dev *nvt) static inline int nvt_efm_enable(struct nvt_dev *nvt)
{ {
if (!request_muxed_region(nvt->cr_efir, 2, NVT_DRIVER_NAME))
return -EBUSY;
/* Enabling Extended Function Mode explicitly requires writing 2x */ /* Enabling Extended Function Mode explicitly requires writing 2x */
outb(EFER_EFM_ENABLE, nvt->cr_efir); outb(EFER_EFM_ENABLE, nvt->cr_efir);
outb(EFER_EFM_ENABLE, nvt->cr_efir); outb(EFER_EFM_ENABLE, nvt->cr_efir);
return 0;
} }
/* exit extended function mode */ /* exit extended function mode */
static inline void nvt_efm_disable(struct nvt_dev *nvt) static inline void nvt_efm_disable(struct nvt_dev *nvt)
{ {
outb(EFER_EFM_DISABLE, nvt->cr_efir); outb(EFER_EFM_DISABLE, nvt->cr_efir);
release_region(nvt->cr_efir, 2);
} }
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment