aboutsummaryrefslogtreecommitdiff
path: root/src/superio/winbond/w83627hf/superio.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/superio/winbond/w83627hf/superio.c')
-rw-r--r--src/superio/winbond/w83627hf/superio.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/src/superio/winbond/w83627hf/superio.c b/src/superio/winbond/w83627hf/superio.c
index a117e05b2c..625f149ec7 100644
--- a/src/superio/winbond/w83627hf/superio.c
+++ b/src/superio/winbond/w83627hf/superio.c
@@ -73,14 +73,14 @@ static void init_acpi(device_t dev)
get_option(&power_on, "power_on_after_fail");
- pnp_enter_ext_func_mode(dev);
+ pnp_enter_conf_mode(dev);
pnp_set_logical_device(dev);
value = pnp_read_config(dev, 0xE4);
value &= ~(3 << 5);
if (power_on)
value |= (1 << 5);
pnp_write_config(dev, 0xE4, value);
- pnp_exit_ext_func_mode(dev);
+ pnp_exit_conf_mode(dev);
}
static void init_hwm(u16 base)
@@ -136,37 +136,40 @@ static void w83627hf_init(device_t dev)
static void w83627hf_pnp_set_resources(device_t dev)
{
- pnp_enter_ext_func_mode(dev);
pnp_set_resources(dev);
- pnp_exit_ext_func_mode(dev);
}
static void w83627hf_pnp_enable_resources(device_t dev)
{
- pnp_enter_ext_func_mode(dev);
pnp_enable_resources(dev);
+
+ pnp_enter_conf_mode(dev);
switch(dev->path.pnp.device) {
case W83627HF_HWM:
printk(BIOS_DEBUG, "W83627HF HWM SMBus enabled\n");
enable_hwm_smbus(dev);
break;
}
- pnp_exit_ext_func_mode(dev);
+ pnp_exit_conf_mode(dev);
}
static void w83627hf_pnp_enable(device_t dev)
{
- pnp_enter_ext_func_mode(dev);
pnp_alt_enable(dev);
- pnp_exit_ext_func_mode(dev);
}
+static const struct pnp_mode_ops pnp_conf_mode_ops = {
+ .enter_conf_mode = pnp_enter_ext_func_mode,
+ .exit_conf_mode = pnp_exit_ext_func_mode,
+};
+
static struct device_operations ops = {
.read_resources = pnp_read_resources,
.set_resources = w83627hf_pnp_set_resources,
.enable_resources = w83627hf_pnp_enable_resources,
.enable = w83627hf_pnp_enable,
.init = w83627hf_init,
+ .ops_pnp_mode = &pnp_conf_mode_ops,
};
static struct pnp_info pnp_dev_info[] = {