[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: Heiner Kallweit <hkallweit1@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
This commit is contained in:
parent
a73cfe527c
commit
3def9ad6d3
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in New Issue