pnp: Register implementations of enter/exit config state

Find all the (ramstage) implementations of enter()/exit() functions
for the configuration state, register and call them through the new
struct pnp_mode_ops. As our standard PnP functions are aware of the
pnp_mode_ops, it's not necessary to call enter()/exit() around them
anymore.

Patch generated with the cocci below. It's not perfect. The movement
of the enter()/exit() calls is somehow fragile. So I checked the
remaining calls for sense, and changed some empty lines. Also a
duplicate insertion of pnp_conf_mode_ops had to be removed.
    /* Try to find enter and exit functions by their outb() structure and
       their usage around calls to our standard pnp functions: */
    @ enter_match @
    identifier enter;
    identifier dev;
    type device_t;
    @@
     void enter(device_t dev)
     {
             <...
             outb(..., dev->path.pnp.port);
             ...>
     }

    @ exit_match @
    identifier exit;
    identifier dev;
    type device_t;
    @@
     void exit(device_t dev)
     {
             <...
             outb(..., dev->path.pnp.port);
             ...>
     }

    @ pnp_match @
    identifier op;
    identifier pnp_op =~ "^pnp_((alt_|)enable|(set|enable)_resources)$";
    identifier enter_match.enter, exit_match.exit;
    type device_t;
    identifier dev;
    @@
     void op(device_t dev)
     {
             ...
             enter(dev);
             ...
             pnp_op(dev);
             ...
             exit(dev);
             ...
     }

    /* Now add enter/exit to a pnp_mode_ops structure: */
    @ depends on pnp_match @
    identifier enter_match.enter;
    identifier exit_match.exit;
    identifier ops;
    @@
    +static const struct pnp_mode_ops pnp_conf_mode_ops = {
    +        .enter_conf_mode  = enter,
    +        .exit_conf_mode   = exit,
    +};
    +
     struct device_operations ops = {
             ...,
    +        .ops_pnp_mode     = &pnp_conf_mode_ops,
     };

    /* Match against the new structure as we change the code and the above
       matches might not work anymore: */
    @ mode_match @
    identifier enter, exit, ops;
    @@
     struct pnp_mode_ops ops = {
             .enter_conf_mode  = enter,
             .exit_conf_mode   = exit,
     };

    /* Replace enter()/enter() calls with new standard calls (e.g.
       pnp_enter_conf_mode()): */
    @@
    identifier mode_match.enter;
    expression e;
    @@
    -enter(e)
    +pnp_enter_conf_mode(e)

    @@
    identifier mode_match.exit;
    expression e;
    @@
    -exit(e)
    +pnp_exit_conf_mode(e)

    /* If there are calls to standard PnP functions, (re)move the
       enter()/exit() calls around them: */
    @@
    identifier pnp_op =~ "^pnp_((alt_|)enable|(set|enable)_resources)$";
    expression e;
    @@
    -pnp_enter_conf_mode(e);
     pnp_op(e);
    +pnp_enter_conf_mode(e);
     ...
     pnp_exit_conf_mode(e);

    @@
    identifier pnp_op =~ "^pnp_((alt_|)enable|(set|enable)_resources)$";
    expression e;
    @@
     pnp_enter_conf_mode(e);
     ...
    +pnp_exit_conf_mode(e);
     pnp_op(e);
    -pnp_exit_conf_mode(e);

    @@
    expression e;
    @@
    -pnp_enter_conf_mode(e);
    -pnp_exit_conf_mode(e);

Change-Id: I5c04b0c6a8f01a30bc25fe195797c02e75b6c276
Signed-off-by: Nico Huber <nico.h@gmx.de>
Reviewed-on: http://review.coreboot.org/3482
Tested-by: build bot (Jenkins)
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
Nico Huber 2013-06-15 19:33:15 +02:00 committed by Stefan Reinauer
parent dd4715b6a5
commit 13dc976a52
29 changed files with 194 additions and 186 deletions

View File

@ -47,31 +47,31 @@ static void f71805f_init(device_t dev)
static void f71805f_pnp_set_resources(device_t dev) static void f71805f_pnp_set_resources(device_t dev)
{ {
pnp_enter_conf_state(dev);
pnp_set_resources(dev); pnp_set_resources(dev);
pnp_exit_conf_state(dev);
} }
static void f71805f_pnp_enable_resources(device_t dev) static void f71805f_pnp_enable_resources(device_t dev)
{ {
pnp_enter_conf_state(dev);
pnp_enable_resources(dev); pnp_enable_resources(dev);
pnp_exit_conf_state(dev);
} }
static void f71805f_pnp_enable(device_t dev) static void f71805f_pnp_enable(device_t dev)
{ {
pnp_enter_conf_state(dev);
pnp_alt_enable(dev); pnp_alt_enable(dev);
pnp_exit_conf_state(dev);
} }
static const struct pnp_mode_ops pnp_conf_mode_ops = {
.enter_conf_mode = pnp_enter_conf_state,
.exit_conf_mode = pnp_exit_conf_state,
};
static struct device_operations ops = { static struct device_operations ops = {
.read_resources = pnp_read_resources, .read_resources = pnp_read_resources,
.set_resources = f71805f_pnp_set_resources, .set_resources = f71805f_pnp_set_resources,
.enable_resources = f71805f_pnp_enable_resources, .enable_resources = f71805f_pnp_enable_resources,
.enable = f71805f_pnp_enable, .enable = f71805f_pnp_enable,
.init = f71805f_init, .init = f71805f_init,
.ops_pnp_mode = &pnp_conf_mode_ops,
}; };
static struct pnp_info pnp_dev_info[] = { static struct pnp_info pnp_dev_info[] = {

View File

@ -48,31 +48,31 @@ static void f71859_init(device_t dev)
static void f71859_pnp_set_resources(device_t dev) static void f71859_pnp_set_resources(device_t dev)
{ {
pnp_enter_conf_state(dev);
pnp_set_resources(dev); pnp_set_resources(dev);
pnp_exit_conf_state(dev);
} }
static void f71859_pnp_enable_resources(device_t dev) static void f71859_pnp_enable_resources(device_t dev)
{ {
pnp_enter_conf_state(dev);
pnp_enable_resources(dev); pnp_enable_resources(dev);
pnp_exit_conf_state(dev);
} }
static void f71859_pnp_enable(device_t dev) static void f71859_pnp_enable(device_t dev)
{ {
pnp_enter_conf_state(dev);
pnp_alt_enable(dev); pnp_alt_enable(dev);
pnp_exit_conf_state(dev);
} }
static const struct pnp_mode_ops pnp_conf_mode_ops = {
.enter_conf_mode = pnp_enter_conf_state,
.exit_conf_mode = pnp_exit_conf_state,
};
static struct device_operations ops = { static struct device_operations ops = {
.read_resources = pnp_read_resources, .read_resources = pnp_read_resources,
.set_resources = f71859_pnp_set_resources, .set_resources = f71859_pnp_set_resources,
.enable_resources = f71859_pnp_enable_resources, .enable_resources = f71859_pnp_enable_resources,
.enable = f71859_pnp_enable, .enable = f71859_pnp_enable,
.init = f71859_init, .init = f71859_init,
.ops_pnp_mode = &pnp_conf_mode_ops,
}; };
static struct pnp_info pnp_dev_info[] = { static struct pnp_info pnp_dev_info[] = {

View File

@ -57,31 +57,31 @@ static void f71863fg_init(device_t dev)
static void f71863fg_pnp_set_resources(device_t dev) static void f71863fg_pnp_set_resources(device_t dev)
{ {
pnp_enter_conf_state(dev);
pnp_set_resources(dev); pnp_set_resources(dev);
pnp_exit_conf_state(dev);
} }
static void f71863fg_pnp_enable_resources(device_t dev) static void f71863fg_pnp_enable_resources(device_t dev)
{ {
pnp_enter_conf_state(dev);
pnp_enable_resources(dev); pnp_enable_resources(dev);
pnp_exit_conf_state(dev);
} }
static void f71863fg_pnp_enable(device_t dev) static void f71863fg_pnp_enable(device_t dev)
{ {
pnp_enter_conf_state(dev);
pnp_alt_enable(dev); pnp_alt_enable(dev);
pnp_exit_conf_state(dev);
} }
static const struct pnp_mode_ops pnp_conf_mode_ops = {
.enter_conf_mode = pnp_enter_conf_state,
.exit_conf_mode = pnp_exit_conf_state,
};
static struct device_operations ops = { static struct device_operations ops = {
.read_resources = pnp_read_resources, .read_resources = pnp_read_resources,
.set_resources = f71863fg_pnp_set_resources, .set_resources = f71863fg_pnp_set_resources,
.enable_resources = f71863fg_pnp_enable_resources, .enable_resources = f71863fg_pnp_enable_resources,
.enable = f71863fg_pnp_enable, .enable = f71863fg_pnp_enable,
.init = f71863fg_init, .init = f71863fg_init,
.ops_pnp_mode = &pnp_conf_mode_ops,
}; };
static struct pnp_info pnp_dev_info[] = { static struct pnp_info pnp_dev_info[] = {

View File

@ -54,31 +54,31 @@ static void f71872_init(device_t dev)
static void f71872_pnp_set_resources(device_t dev) static void f71872_pnp_set_resources(device_t dev)
{ {
pnp_enter_conf_state(dev);
pnp_set_resources(dev); pnp_set_resources(dev);
pnp_exit_conf_state(dev);
} }
static void f71872_pnp_enable_resources(device_t dev) static void f71872_pnp_enable_resources(device_t dev)
{ {
pnp_enter_conf_state(dev);
pnp_enable_resources(dev); pnp_enable_resources(dev);
pnp_exit_conf_state(dev);
} }
static void f71872_pnp_enable(device_t dev) static void f71872_pnp_enable(device_t dev)
{ {
pnp_enter_conf_state(dev);
pnp_alt_enable(dev); pnp_alt_enable(dev);
pnp_exit_conf_state(dev);
} }
static const struct pnp_mode_ops pnp_conf_mode_ops = {
.enter_conf_mode = pnp_enter_conf_state,
.exit_conf_mode = pnp_exit_conf_state,
};
static struct device_operations ops = { static struct device_operations ops = {
.read_resources = pnp_read_resources, .read_resources = pnp_read_resources,
.set_resources = f71872_pnp_set_resources, .set_resources = f71872_pnp_set_resources,
.enable_resources = f71872_pnp_enable_resources, .enable_resources = f71872_pnp_enable_resources,
.enable = f71872_pnp_enable, .enable = f71872_pnp_enable,
.init = f71872_init, .init = f71872_init,
.ops_pnp_mode = &pnp_conf_mode_ops,
}; };
static struct pnp_info pnp_dev_info[] = { static struct pnp_info pnp_dev_info[] = {

View File

@ -55,31 +55,31 @@ static void f71889_init(device_t dev)
static void f71889_pnp_set_resources(device_t dev) static void f71889_pnp_set_resources(device_t dev)
{ {
pnp_enter_conf_state(dev);
pnp_set_resources(dev); pnp_set_resources(dev);
pnp_exit_conf_state(dev);
} }
static void f71889_pnp_enable_resources(device_t dev) static void f71889_pnp_enable_resources(device_t dev)
{ {
pnp_enter_conf_state(dev);
pnp_enable_resources(dev); pnp_enable_resources(dev);
pnp_exit_conf_state(dev);
} }
static void f71889_pnp_enable(device_t dev) static void f71889_pnp_enable(device_t dev)
{ {
pnp_enter_conf_state(dev);
pnp_alt_enable(dev); pnp_alt_enable(dev);
pnp_exit_conf_state(dev);
} }
static const struct pnp_mode_ops pnp_conf_mode_ops = {
.enter_conf_mode = pnp_enter_conf_state,
.exit_conf_mode = pnp_exit_conf_state,
};
static struct device_operations ops = { static struct device_operations ops = {
.read_resources = pnp_read_resources, .read_resources = pnp_read_resources,
.set_resources = f71889_pnp_set_resources, .set_resources = f71889_pnp_set_resources,
.enable_resources = f71889_pnp_enable_resources, .enable_resources = f71889_pnp_enable_resources,
.enable = f71889_pnp_enable, .enable = f71889_pnp_enable,
.init = f71889_init, .init = f71889_init,
.ops_pnp_mode = &pnp_conf_mode_ops,
}; };
static struct pnp_info pnp_dev_info[] = { static struct pnp_info pnp_dev_info[] = {

View File

@ -54,31 +54,31 @@ static void f81865f_init(device_t dev)
static void f81865f_pnp_set_resources(device_t dev) static void f81865f_pnp_set_resources(device_t dev)
{ {
pnp_enter_conf_state(dev);
pnp_set_resources(dev); pnp_set_resources(dev);
pnp_exit_conf_state(dev);
} }
static void f81865f_pnp_enable_resources(device_t dev) static void f81865f_pnp_enable_resources(device_t dev)
{ {
pnp_enter_conf_state(dev);
pnp_enable_resources(dev); pnp_enable_resources(dev);
pnp_exit_conf_state(dev);
} }
static void f81865f_pnp_enable(device_t dev) static void f81865f_pnp_enable(device_t dev)
{ {
pnp_enter_conf_state(dev);
pnp_alt_enable(dev); pnp_alt_enable(dev);
pnp_exit_conf_state(dev);
} }
static const struct pnp_mode_ops pnp_conf_mode_ops = {
.enter_conf_mode = pnp_enter_conf_state,
.exit_conf_mode = pnp_exit_conf_state,
};
static struct device_operations ops = { static struct device_operations ops = {
.read_resources = pnp_read_resources, .read_resources = pnp_read_resources,
.set_resources = f81865f_pnp_set_resources, .set_resources = f81865f_pnp_set_resources,
.enable_resources = f81865f_pnp_enable_resources, .enable_resources = f81865f_pnp_enable_resources,
.enable = f81865f_pnp_enable, .enable = f81865f_pnp_enable,
.init = f81865f_init, .init = f81865f_init,
.ops_pnp_mode = &pnp_conf_mode_ops,
}; };
static struct pnp_info pnp_dev_info[] = { static struct pnp_info pnp_dev_info[] = {

View File

@ -45,31 +45,31 @@ static void i3100_init(device_t dev)
static void i3100_pnp_set_resources(device_t dev) static void i3100_pnp_set_resources(device_t dev)
{ {
pnp_enter_ext_func_mode(dev);
pnp_set_resources(dev); pnp_set_resources(dev);
pnp_exit_ext_func_mode(dev);
} }
static void i3100_pnp_enable_resources(device_t dev) static void i3100_pnp_enable_resources(device_t dev)
{ {
pnp_enter_ext_func_mode(dev);
pnp_enable_resources(dev); pnp_enable_resources(dev);
pnp_exit_ext_func_mode(dev);
} }
static void i3100_pnp_enable(device_t dev) static void i3100_pnp_enable(device_t dev)
{ {
pnp_enter_ext_func_mode(dev);
pnp_alt_enable(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 = { static struct device_operations ops = {
.read_resources = pnp_read_resources, .read_resources = pnp_read_resources,
.set_resources = i3100_pnp_set_resources, .set_resources = i3100_pnp_set_resources,
.enable_resources = i3100_pnp_enable_resources, .enable_resources = i3100_pnp_enable_resources,
.enable = i3100_pnp_enable, .enable = i3100_pnp_enable,
.init = i3100_init, .init = i3100_init,
.ops_pnp_mode = &pnp_conf_mode_ops,
}; };
static struct pnp_info pnp_dev_info[] = { static struct pnp_info pnp_dev_info[] = {

View File

@ -74,31 +74,31 @@ static void it8712f_init(device_t dev)
static void it8712f_pnp_set_resources(device_t dev) static void it8712f_pnp_set_resources(device_t dev)
{ {
pnp_enter_ext_func_mode(dev);
pnp_set_resources(dev); pnp_set_resources(dev);
pnp_exit_ext_func_mode(dev);
} }
static void it8712f_pnp_enable_resources(device_t dev) static void it8712f_pnp_enable_resources(device_t dev)
{ {
pnp_enter_ext_func_mode(dev);
pnp_enable_resources(dev); pnp_enable_resources(dev);
pnp_exit_ext_func_mode(dev);
} }
static void it8712f_pnp_enable(device_t dev) static void it8712f_pnp_enable(device_t dev)
{ {
pnp_enter_ext_func_mode(dev);
pnp_alt_enable(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 = { static struct device_operations ops = {
.read_resources = pnp_read_resources, .read_resources = pnp_read_resources,
.set_resources = it8712f_pnp_set_resources, .set_resources = it8712f_pnp_set_resources,
.enable_resources = it8712f_pnp_enable_resources, .enable_resources = it8712f_pnp_enable_resources,
.enable = it8712f_pnp_enable, .enable = it8712f_pnp_enable,
.init = it8712f_init, .init = it8712f_init,
.ops_pnp_mode = &pnp_conf_mode_ops,
}; };
static struct pnp_info pnp_dev_info[] = { static struct pnp_info pnp_dev_info[] = {

View File

@ -98,31 +98,31 @@ static void it8716f_init(device_t dev)
static void it8716f_pnp_set_resources(device_t dev) static void it8716f_pnp_set_resources(device_t dev)
{ {
pnp_enter_ext_func_mode(dev);
pnp_set_resources(dev); pnp_set_resources(dev);
pnp_exit_ext_func_mode(dev);
} }
static void it8716f_pnp_enable_resources(device_t dev) static void it8716f_pnp_enable_resources(device_t dev)
{ {
pnp_enter_ext_func_mode(dev);
pnp_enable_resources(dev); pnp_enable_resources(dev);
pnp_exit_ext_func_mode(dev);
} }
static void it8716f_pnp_enable(device_t dev) static void it8716f_pnp_enable(device_t dev)
{ {
pnp_enter_ext_func_mode(dev);
pnp_alt_enable(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 = { static struct device_operations ops = {
.read_resources = pnp_read_resources, .read_resources = pnp_read_resources,
.set_resources = it8716f_pnp_set_resources, .set_resources = it8716f_pnp_set_resources,
.enable_resources = it8716f_pnp_enable_resources, .enable_resources = it8716f_pnp_enable_resources,
.enable = it8716f_pnp_enable, .enable = it8716f_pnp_enable,
.init = it8716f_init, .init = it8716f_init,
.ops_pnp_mode = &pnp_conf_mode_ops,
}; };
static struct pnp_info pnp_dev_info[] = { static struct pnp_info pnp_dev_info[] = {

View File

@ -190,31 +190,31 @@ static void it8772f_init(device_t dev)
static void it8772f_pnp_set_resources(device_t dev) static void it8772f_pnp_set_resources(device_t dev)
{ {
pnp_enter_ext_func_mode(dev);
pnp_set_resources(dev); pnp_set_resources(dev);
pnp_exit_ext_func_mode(dev);
} }
static void it8772f_pnp_enable_resources(device_t dev) static void it8772f_pnp_enable_resources(device_t dev)
{ {
pnp_enter_ext_func_mode(dev);
pnp_enable_resources(dev); pnp_enable_resources(dev);
pnp_exit_ext_func_mode(dev);
} }
static void it8772f_pnp_enable(device_t dev) static void it8772f_pnp_enable(device_t dev)
{ {
pnp_enter_ext_func_mode(dev);
pnp_alt_enable(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 = { static struct device_operations ops = {
.read_resources = pnp_read_resources, .read_resources = pnp_read_resources,
.set_resources = it8772f_pnp_set_resources, .set_resources = it8772f_pnp_set_resources,
.enable_resources = it8772f_pnp_enable_resources, .enable_resources = it8772f_pnp_enable_resources,
.enable = it8772f_pnp_enable, .enable = it8772f_pnp_enable,
.init = it8772f_init, .init = it8772f_init,
.ops_pnp_mode = &pnp_conf_mode_ops,
}; };
static struct pnp_info pnp_dev_info[] = { static struct pnp_info pnp_dev_info[] = {

View File

@ -40,31 +40,31 @@ static void nct5104d_init(device_t dev)
static void nct5104d_pnp_set_resources(device_t dev) static void nct5104d_pnp_set_resources(device_t dev)
{ {
pnp_enter_exteded_mode(dev);
pnp_set_resources(dev); pnp_set_resources(dev);
pnp_exit_extended_mode(dev);
} }
static void nct5104d_pnp_enable_resources(device_t dev) static void nct5104d_pnp_enable_resources(device_t dev)
{ {
pnp_enter_exteded_mode(dev);
pnp_enable_resources(dev); pnp_enable_resources(dev);
pnp_exit_extended_mode(dev);
} }
static void nct5104d_pnp_enable(device_t dev) static void nct5104d_pnp_enable(device_t dev)
{ {
pnp_enter_exteded_mode(dev);
pnp_alt_enable(dev); pnp_alt_enable(dev);
pnp_exit_extended_mode(dev);
} }
static const struct pnp_mode_ops pnp_conf_mode_ops = {
.enter_conf_mode = pnp_enter_exteded_mode,
.exit_conf_mode = pnp_exit_extended_mode,
};
static struct device_operations ops = { static struct device_operations ops = {
.read_resources = pnp_read_resources, .read_resources = pnp_read_resources,
.set_resources = nct5104d_pnp_set_resources, .set_resources = nct5104d_pnp_set_resources,
.enable_resources = nct5104d_pnp_enable_resources, .enable_resources = nct5104d_pnp_enable_resources,
.enable = nct5104d_pnp_enable, .enable = nct5104d_pnp_enable,
.init = nct5104d_init, .init = nct5104d_init,
.ops_pnp_mode = &pnp_conf_mode_ops,
}; };
static struct pnp_info pnp_dev_info[] = { static struct pnp_info pnp_dev_info[] = {

View File

@ -46,12 +46,18 @@ struct chip_operations superio_smsc_kbc1100_ops = {
.enable_dev = enable_dev .enable_dev = enable_dev
}; };
static const struct pnp_mode_ops pnp_conf_mode_ops = {
.enter_conf_mode = pnp_enter_conf_state,
.exit_conf_mode = pnp_exit_conf_state,
};
static struct device_operations ops = { static struct device_operations ops = {
.read_resources = pnp_read_resources, .read_resources = pnp_read_resources,
.set_resources = kbc1100_pnp_set_resources, .set_resources = kbc1100_pnp_set_resources,
.enable_resources = kbc1100_pnp_enable_resources, .enable_resources = kbc1100_pnp_enable_resources,
.enable = kbc1100_pnp_enable, .enable = kbc1100_pnp_enable,
.init = kbc1100_init, .init = kbc1100_init,
.ops_pnp_mode = &pnp_conf_mode_ops,
}; };
static struct pnp_info pnp_dev_info[] = { static struct pnp_info pnp_dev_info[] = {
@ -65,23 +71,17 @@ static void enable_dev(device_t dev)
static void kbc1100_pnp_set_resources(device_t dev) static void kbc1100_pnp_set_resources(device_t dev)
{ {
pnp_enter_conf_state(dev);
pnp_set_resources(dev); pnp_set_resources(dev);
pnp_exit_conf_state(dev);
} }
static void kbc1100_pnp_enable_resources(device_t dev) static void kbc1100_pnp_enable_resources(device_t dev)
{ {
pnp_enter_conf_state(dev);
pnp_enable_resources(dev); pnp_enable_resources(dev);
pnp_exit_conf_state(dev);
} }
static void kbc1100_pnp_enable(device_t dev) static void kbc1100_pnp_enable(device_t dev)
{ {
pnp_enter_conf_state(dev);
pnp_alt_enable(dev); pnp_alt_enable(dev);
pnp_exit_conf_state(dev);
} }
static void kbc1100_init(device_t dev) static void kbc1100_init(device_t dev)

View File

@ -51,12 +51,18 @@ struct chip_operations superio_smsc_lpc47b272_ops = {
.enable_dev = enable_dev .enable_dev = enable_dev
}; };
static const struct pnp_mode_ops pnp_conf_mode_ops = {
.enter_conf_mode = pnp_enter_conf_state,
.exit_conf_mode = pnp_exit_conf_state,
};
static struct device_operations ops = { static struct device_operations ops = {
.read_resources = pnp_read_resources, .read_resources = pnp_read_resources,
.set_resources = lpc47b272_pnp_set_resources, .set_resources = lpc47b272_pnp_set_resources,
.enable_resources = lpc47b272_pnp_enable_resources, .enable_resources = lpc47b272_pnp_enable_resources,
.enable = lpc47b272_pnp_enable, .enable = lpc47b272_pnp_enable,
.init = lpc47b272_init, .init = lpc47b272_init,
.ops_pnp_mode = &pnp_conf_mode_ops,
}; };
static struct pnp_info pnp_dev_info[] = { static struct pnp_info pnp_dev_info[] = {
@ -88,23 +94,17 @@ static void enable_dev(device_t dev)
*/ */
static void lpc47b272_pnp_set_resources(device_t dev) static void lpc47b272_pnp_set_resources(device_t dev)
{ {
pnp_enter_conf_state(dev);
pnp_set_resources(dev); pnp_set_resources(dev);
pnp_exit_conf_state(dev);
} }
static void lpc47b272_pnp_enable_resources(device_t dev) static void lpc47b272_pnp_enable_resources(device_t dev)
{ {
pnp_enter_conf_state(dev);
pnp_enable_resources(dev); pnp_enable_resources(dev);
pnp_exit_conf_state(dev);
} }
static void lpc47b272_pnp_enable(device_t dev) static void lpc47b272_pnp_enable(device_t dev)
{ {
pnp_enter_conf_state(dev);
pnp_alt_enable(dev); pnp_alt_enable(dev);
pnp_exit_conf_state(dev);
} }
/** /**

View File

@ -80,17 +80,14 @@ static void lpc47b397_init(device_t dev)
static void lpc47b397_pnp_set_resources(device_t dev) static void lpc47b397_pnp_set_resources(device_t dev)
{ {
pnp_enter_conf_state(dev);
pnp_set_resources(dev); pnp_set_resources(dev);
/* dump_pnp_device(dev); */
pnp_exit_conf_state(dev);
} }
static void lpc47b397_pnp_enable_resources(device_t dev) static void lpc47b397_pnp_enable_resources(device_t dev)
{ {
pnp_enter_conf_state(dev);
pnp_enable_resources(dev); pnp_enable_resources(dev);
pnp_enter_conf_mode(dev);
switch(dev->path.pnp.device) { switch(dev->path.pnp.device) {
case LPC47B397_HWM: case LPC47B397_HWM:
printk(BIOS_DEBUG, "LPC47B397 SensorBus register access enabled\n"); printk(BIOS_DEBUG, "LPC47B397 SensorBus register access enabled\n");
@ -99,22 +96,26 @@ static void lpc47b397_pnp_enable_resources(device_t dev)
break; break;
} }
/* dump_pnp_device(dev); */ /* dump_pnp_device(dev); */
pnp_exit_conf_state(dev); pnp_exit_conf_mode(dev);
} }
static void lpc47b397_pnp_enable(device_t dev) static void lpc47b397_pnp_enable(device_t dev)
{ {
pnp_enter_conf_state(dev);
pnp_alt_enable(dev); pnp_alt_enable(dev);
pnp_exit_conf_state(dev);
} }
static const struct pnp_mode_ops pnp_conf_mode_ops = {
.enter_conf_mode = pnp_enter_conf_state,
.exit_conf_mode = pnp_exit_conf_state,
};
static struct device_operations ops = { static struct device_operations ops = {
.read_resources = pnp_read_resources, .read_resources = pnp_read_resources,
.set_resources = lpc47b397_pnp_set_resources, .set_resources = lpc47b397_pnp_set_resources,
.enable_resources = lpc47b397_pnp_enable_resources, .enable_resources = lpc47b397_pnp_enable_resources,
.enable = lpc47b397_pnp_enable, .enable = lpc47b397_pnp_enable,
.init = lpc47b397_init, .init = lpc47b397_init,
.ops_pnp_mode = &pnp_conf_mode_ops,
}; };
#define HWM_INDEX 0 #define HWM_INDEX 0
@ -174,6 +175,7 @@ static struct device_operations ops_hwm = {
.init = lpc47b397_init, .init = lpc47b397_init,
.scan_bus = scan_static_bus, .scan_bus = scan_static_bus,
.ops_smbus_bus = &lops_smbus_bus, .ops_smbus_bus = &lops_smbus_bus,
.ops_pnp_mode = &pnp_conf_mode_ops,
}; };
static struct pnp_info pnp_dev_info[] = { static struct pnp_info pnp_dev_info[] = {

View File

@ -50,12 +50,18 @@ struct chip_operations superio_smsc_lpc47m10x_ops = {
.enable_dev = enable_dev .enable_dev = enable_dev
}; };
static const struct pnp_mode_ops pnp_conf_mode_ops = {
.enter_conf_mode = pnp_enter_conf_state,
.exit_conf_mode = pnp_exit_conf_state,
};
static struct device_operations ops = { static struct device_operations ops = {
.read_resources = pnp_read_resources, .read_resources = pnp_read_resources,
.set_resources = lpc47m10x_pnp_set_resources, .set_resources = lpc47m10x_pnp_set_resources,
.enable_resources = lpc47m10x_pnp_enable_resources, .enable_resources = lpc47m10x_pnp_enable_resources,
.enable = lpc47m10x_pnp_enable, .enable = lpc47m10x_pnp_enable,
.init = lpc47m10x_init, .init = lpc47m10x_init,
.ops_pnp_mode = &pnp_conf_mode_ops,
}; };
static struct pnp_info pnp_dev_info[] = { static struct pnp_info pnp_dev_info[] = {
@ -87,23 +93,17 @@ static void enable_dev(device_t dev)
*/ */
static void lpc47m10x_pnp_set_resources(device_t dev) static void lpc47m10x_pnp_set_resources(device_t dev)
{ {
pnp_enter_conf_state(dev);
pnp_set_resources(dev); pnp_set_resources(dev);
pnp_exit_conf_state(dev);
} }
static void lpc47m10x_pnp_enable_resources(device_t dev) static void lpc47m10x_pnp_enable_resources(device_t dev)
{ {
pnp_enter_conf_state(dev);
pnp_enable_resources(dev); pnp_enable_resources(dev);
pnp_exit_conf_state(dev);
} }
static void lpc47m10x_pnp_enable(device_t dev) static void lpc47m10x_pnp_enable(device_t dev)
{ {
pnp_enter_conf_state(dev);
pnp_alt_enable(dev); pnp_alt_enable(dev);
pnp_exit_conf_state(dev);
} }
/** /**

View File

@ -46,12 +46,18 @@ struct chip_operations superio_smsc_lpc47m15x_ops = {
.enable_dev = enable_dev .enable_dev = enable_dev
}; };
static const struct pnp_mode_ops pnp_conf_mode_ops = {
.enter_conf_mode = pnp_enter_conf_state,
.exit_conf_mode = pnp_exit_conf_state,
};
static struct device_operations ops = { static struct device_operations ops = {
.read_resources = pnp_read_resources, .read_resources = pnp_read_resources,
.set_resources = lpc47m15x_pnp_set_resources, .set_resources = lpc47m15x_pnp_set_resources,
.enable_resources = lpc47m15x_pnp_enable_resources, .enable_resources = lpc47m15x_pnp_enable_resources,
.enable = lpc47m15x_pnp_enable, .enable = lpc47m15x_pnp_enable,
.init = lpc47m15x_init, .init = lpc47m15x_init,
.ops_pnp_mode = &pnp_conf_mode_ops,
}; };
static struct pnp_info pnp_dev_info[] = { static struct pnp_info pnp_dev_info[] = {
@ -70,23 +76,17 @@ static void enable_dev(device_t dev)
static void lpc47m15x_pnp_set_resources(device_t dev) static void lpc47m15x_pnp_set_resources(device_t dev)
{ {
pnp_enter_conf_state(dev);
pnp_set_resources(dev); pnp_set_resources(dev);
pnp_exit_conf_state(dev);
} }
static void lpc47m15x_pnp_enable_resources(device_t dev) static void lpc47m15x_pnp_enable_resources(device_t dev)
{ {
pnp_enter_conf_state(dev);
pnp_enable_resources(dev); pnp_enable_resources(dev);
pnp_exit_conf_state(dev);
} }
static void lpc47m15x_pnp_enable(device_t dev) static void lpc47m15x_pnp_enable(device_t dev)
{ {
pnp_enter_conf_state(dev);
pnp_alt_enable(dev); pnp_alt_enable(dev);
pnp_exit_conf_state(dev);
} }
static void lpc47m15x_init(device_t dev) static void lpc47m15x_init(device_t dev)

View File

@ -45,23 +45,17 @@ static void pnp_exit_conf_state(device_t dev)
static void mec1308_pnp_set_resources(device_t dev) static void mec1308_pnp_set_resources(device_t dev)
{ {
pnp_enter_conf_state(dev);
pnp_set_resources(dev); pnp_set_resources(dev);
pnp_exit_conf_state(dev);
} }
static void mec1308_pnp_enable_resources(device_t dev) static void mec1308_pnp_enable_resources(device_t dev)
{ {
pnp_enter_conf_state(dev);
pnp_enable_resources(dev); pnp_enable_resources(dev);
pnp_exit_conf_state(dev);
} }
static void mec1308_pnp_enable(device_t dev) static void mec1308_pnp_enable(device_t dev)
{ {
pnp_enter_conf_state(dev);
pnp_alt_enable(dev); pnp_alt_enable(dev);
pnp_exit_conf_state(dev);
} }
static void mec1308_init(device_t dev) static void mec1308_init(device_t dev)
@ -82,12 +76,18 @@ static void mec1308_init(device_t dev)
} }
} }
static const struct pnp_mode_ops pnp_conf_mode_ops = {
.enter_conf_mode = pnp_enter_conf_state,
.exit_conf_mode = pnp_exit_conf_state,
};
static struct device_operations ops = { static struct device_operations ops = {
.read_resources = pnp_read_resources, .read_resources = pnp_read_resources,
.set_resources = mec1308_pnp_set_resources, .set_resources = mec1308_pnp_set_resources,
.enable_resources = mec1308_pnp_enable_resources, .enable_resources = mec1308_pnp_enable_resources,
.enable = mec1308_pnp_enable, .enable = mec1308_pnp_enable,
.init = mec1308_init, .init = mec1308_init,
.ops_pnp_mode = &pnp_conf_mode_ops,
}; };
static struct pnp_info pnp_dev_info[] = { static struct pnp_info pnp_dev_info[] = {

View File

@ -46,12 +46,18 @@ struct chip_operations superio_smsc_sch4037_ops = {
.enable_dev = enable_dev, .enable_dev = enable_dev,
}; };
static const struct pnp_mode_ops pnp_conf_mode_ops = {
.enter_conf_mode = pnp_enter_conf_state,
.exit_conf_mode = pnp_exit_conf_state,
};
static struct device_operations ops = { static struct device_operations ops = {
.read_resources = pnp_read_resources, .read_resources = pnp_read_resources,
.set_resources = sch4037_pnp_set_resources, .set_resources = sch4037_pnp_set_resources,
.enable_resources = sch4037_pnp_enable_resources, .enable_resources = sch4037_pnp_enable_resources,
.enable = sch4037_pnp_enable, .enable = sch4037_pnp_enable,
.init = sch4037_init, .init = sch4037_init,
.ops_pnp_mode = &pnp_conf_mode_ops,
}; };
static struct pnp_info pnp_dev_info[] = { static struct pnp_info pnp_dev_info[] = {
@ -66,23 +72,17 @@ static void enable_dev(device_t dev)
static void sch4037_pnp_set_resources(device_t dev) static void sch4037_pnp_set_resources(device_t dev)
{ {
pnp_enter_conf_state(dev);
pnp_set_resources(dev); pnp_set_resources(dev);
pnp_exit_conf_state(dev);
} }
static void sch4037_pnp_enable_resources(device_t dev) static void sch4037_pnp_enable_resources(device_t dev)
{ {
pnp_enter_conf_state(dev);
pnp_enable_resources(dev); pnp_enable_resources(dev);
pnp_exit_conf_state(dev);
} }
static void sch4037_pnp_enable(device_t dev) static void sch4037_pnp_enable(device_t dev)
{ {
pnp_enter_conf_state(dev);
pnp_alt_enable(dev); pnp_alt_enable(dev);
pnp_exit_conf_state(dev);
} }
static void sch4037_init(device_t dev) static void sch4037_init(device_t dev)

View File

@ -46,12 +46,18 @@ struct chip_operations superio_smsc_sio1036_ops = {
.enable_dev = enable_dev .enable_dev = enable_dev
}; };
static const struct pnp_mode_ops pnp_conf_mode_ops = {
.enter_conf_mode = pnp_enter_conf_state,
.exit_conf_mode = pnp_exit_conf_state,
};
static struct device_operations ops = { static struct device_operations ops = {
.read_resources = pnp_read_resources, .read_resources = pnp_read_resources,
.set_resources = sio1036_pnp_set_resources, .set_resources = sio1036_pnp_set_resources,
.enable_resources = sio1036_pnp_enable_resources, .enable_resources = sio1036_pnp_enable_resources,
.enable = sio1036_pnp_enable, .enable = sio1036_pnp_enable,
.init = sio1036_init, .init = sio1036_init,
.ops_pnp_mode = &pnp_conf_mode_ops,
}; };
static struct pnp_info pnp_dev_info[] = { static struct pnp_info pnp_dev_info[] = {
@ -65,23 +71,17 @@ static void enable_dev(device_t dev)
static void sio1036_pnp_set_resources(device_t dev) static void sio1036_pnp_set_resources(device_t dev)
{ {
pnp_enter_conf_state(dev);
pnp_set_resources(dev); pnp_set_resources(dev);
pnp_exit_conf_state(dev);
} }
static void sio1036_pnp_enable_resources(device_t dev) static void sio1036_pnp_enable_resources(device_t dev)
{ {
pnp_enter_conf_state(dev);
pnp_enable_resources(dev); pnp_enable_resources(dev);
pnp_exit_conf_state(dev);
} }
static void sio1036_pnp_enable(device_t dev) static void sio1036_pnp_enable(device_t dev)
{ {
pnp_enter_conf_state(dev);
pnp_alt_enable(dev); pnp_alt_enable(dev);
pnp_exit_conf_state(dev);
} }
static void sio1036_init(device_t dev) static void sio1036_init(device_t dev)

View File

@ -172,17 +172,13 @@ static void smsc_pnp_exit_conf_state(device_t dev)
/** Wrapper for pnp_set_resources(). */ /** Wrapper for pnp_set_resources(). */
static void smsc_pnp_set_resources(device_t dev) static void smsc_pnp_set_resources(device_t dev)
{ {
smsc_pnp_enter_conf_state(dev);
pnp_set_resources(dev); pnp_set_resources(dev);
smsc_pnp_exit_conf_state(dev);
} }
/** Wrapper for pnp_enable_resources(). */ /** Wrapper for pnp_enable_resources(). */
static void smsc_pnp_enable_resources(device_t dev) static void smsc_pnp_enable_resources(device_t dev)
{ {
smsc_pnp_enter_conf_state(dev);
pnp_enable_resources(dev); pnp_enable_resources(dev);
smsc_pnp_exit_conf_state(dev);
} }
/** /**
@ -193,9 +189,7 @@ static void smsc_pnp_enable_resources(device_t dev)
*/ */
static void smsc_pnp_enable(device_t dev) static void smsc_pnp_enable(device_t dev)
{ {
smsc_pnp_enter_conf_state(dev);
pnp_alt_enable(dev); pnp_alt_enable(dev);
smsc_pnp_exit_conf_state(dev);
} }
/** /**
@ -228,6 +222,11 @@ static void smsc_init(device_t dev)
} }
} }
static const struct pnp_mode_ops pnp_conf_mode_ops = {
.enter_conf_mode = smsc_pnp_enter_conf_state,
.exit_conf_mode = smsc_pnp_exit_conf_state,
};
/** Standard device operations. */ /** Standard device operations. */
static struct device_operations ops = { static struct device_operations ops = {
.read_resources = pnp_read_resources, .read_resources = pnp_read_resources,
@ -235,6 +234,7 @@ static struct device_operations ops = {
.enable_resources = smsc_pnp_enable_resources, .enable_resources = smsc_pnp_enable_resources,
.enable = smsc_pnp_enable, .enable = smsc_pnp_enable,
.init = smsc_init, .init = smsc_init,
.ops_pnp_mode = &pnp_conf_mode_ops,
}; };
/** /**
@ -288,10 +288,10 @@ static void enable_dev(device_t dev)
if (first_time) { if (first_time) {
/* Read the device ID and revision of the Super I/O chip. */ /* Read the device ID and revision of the Super I/O chip. */
smsc_pnp_enter_conf_state(dev); pnp_enter_conf_mode(dev);
superio_id = pnp_read_config(dev, DEVICE_ID_REG); superio_id = pnp_read_config(dev, DEVICE_ID_REG);
superio_rev = pnp_read_config(dev, DEVICE_REV_REG); superio_rev = pnp_read_config(dev, DEVICE_REV_REG);
smsc_pnp_exit_conf_state(dev); pnp_exit_conf_mode(dev);
/* TODO: Error handling? */ /* TODO: Error handling? */

View File

@ -121,9 +121,7 @@ static void vt1211_init(struct device *dev)
static void vt1211_pnp_enable_resources(device_t dev) static void vt1211_pnp_enable_resources(device_t dev)
{ {
printk(BIOS_DEBUG, "%s - enabling\n", dev_path(dev)); printk(BIOS_DEBUG, "%s - enabling\n", dev_path(dev));
pnp_enter_ext_func_mode(dev);
pnp_enable_resources(dev); pnp_enable_resources(dev);
pnp_exit_ext_func_mode(dev);
} }
static void vt1211_pnp_set_resources(struct device *dev) static void vt1211_pnp_set_resources(struct device *dev)
@ -141,7 +139,7 @@ static void vt1211_pnp_set_resources(struct device *dev)
} }
#endif #endif
pnp_enter_ext_func_mode(dev); pnp_enter_conf_mode(dev);
pnp_set_logical_device(dev); pnp_set_logical_device(dev);
@ -171,22 +169,26 @@ static void vt1211_pnp_set_resources(struct device *dev)
report_resource_stored(dev, res, ""); report_resource_stored(dev, res, "");
} }
pnp_exit_ext_func_mode(dev); pnp_exit_conf_mode(dev);
} }
static void vt1211_pnp_enable(device_t dev) static void vt1211_pnp_enable(device_t dev)
{ {
pnp_enter_ext_func_mode(dev);
pnp_alt_enable(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,
};
struct device_operations ops = { struct device_operations ops = {
.read_resources = pnp_read_resources, .read_resources = pnp_read_resources,
.set_resources = vt1211_pnp_set_resources, .set_resources = vt1211_pnp_set_resources,
.enable_resources = vt1211_pnp_enable_resources, .enable_resources = vt1211_pnp_enable_resources,
.enable = vt1211_pnp_enable, .enable = vt1211_pnp_enable,
.init = vt1211_init, .init = vt1211_init,
.ops_pnp_mode = &pnp_conf_mode_ops,
}; };
/* TODO: Check if 0x07f8 is correct for FDC/PP/SP1/SP2, the rest is correct. */ /* TODO: Check if 0x07f8 is correct for FDC/PP/SP1/SP2, the rest is correct. */

View File

@ -41,11 +41,11 @@ static void w83627dhg_enable_UR2(device_t dev)
{ {
u8 reg8; u8 reg8;
pnp_enter_ext_func_mode(dev); pnp_enter_conf_mode(dev);
reg8 = pnp_read_config(dev, 0x2c); reg8 = pnp_read_config(dev, 0x2c);
reg8 |= (0x3); reg8 |= (0x3);
pnp_write_config(dev, 0x2c, reg8); // Set pins 78-85-> UART B pnp_write_config(dev, 0x2c, reg8); // Set pins 78-85-> UART B
pnp_exit_ext_func_mode(dev); pnp_exit_conf_mode(dev);
} }
static void w83627dhg_init(device_t dev) static void w83627dhg_init(device_t dev)
@ -67,31 +67,31 @@ static void w83627dhg_init(device_t dev)
static void w83627dhg_pnp_set_resources(device_t dev) static void w83627dhg_pnp_set_resources(device_t dev)
{ {
pnp_enter_ext_func_mode(dev);
pnp_set_resources(dev); pnp_set_resources(dev);
pnp_exit_ext_func_mode(dev);
} }
static void w83627dhg_pnp_enable_resources(device_t dev) static void w83627dhg_pnp_enable_resources(device_t dev)
{ {
pnp_enter_ext_func_mode(dev);
pnp_enable_resources(dev); pnp_enable_resources(dev);
pnp_exit_ext_func_mode(dev);
} }
static void w83627dhg_pnp_enable(device_t dev) static void w83627dhg_pnp_enable(device_t dev)
{ {
pnp_enter_ext_func_mode(dev);
pnp_alt_enable(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 = { static struct device_operations ops = {
.read_resources = pnp_read_resources, .read_resources = pnp_read_resources,
.set_resources = w83627dhg_pnp_set_resources, .set_resources = w83627dhg_pnp_set_resources,
.enable_resources = w83627dhg_pnp_enable_resources, .enable_resources = w83627dhg_pnp_enable_resources,
.enable = w83627dhg_pnp_enable, .enable = w83627dhg_pnp_enable,
.init = w83627dhg_init, .init = w83627dhg_init,
.ops_pnp_mode = &pnp_conf_mode_ops,
}; };
static struct pnp_info pnp_dev_info[] = { static struct pnp_info pnp_dev_info[] = {

View File

@ -72,14 +72,14 @@ static void init_acpi(device_t dev)
int power_on = 1; int power_on = 1;
get_option(&power_on, "power_on_after_fail"); get_option(&power_on, "power_on_after_fail");
pnp_enter_ext_func_mode(dev); pnp_enter_conf_mode(dev);
pnp_set_logical_device(dev); pnp_set_logical_device(dev);
value = pnp_read_config(dev, 0xe4); value = pnp_read_config(dev, 0xe4);
value &= ~(3 << 5); value &= ~(3 << 5);
if (power_on) if (power_on)
value |= (1 << 5); value |= (1 << 5);
pnp_write_config(dev, 0xe4, value); pnp_write_config(dev, 0xe4, value);
pnp_exit_ext_func_mode(dev); pnp_exit_conf_mode(dev);
} }
static void init_hwm(u16 base) static void init_hwm(u16 base)
@ -129,39 +129,40 @@ static void w83627ehg_init(device_t dev)
static void w83627ehg_pnp_set_resources(device_t dev) static void w83627ehg_pnp_set_resources(device_t dev)
{ {
pnp_enter_ext_func_mode(dev);
pnp_set_resources(dev); pnp_set_resources(dev);
pnp_exit_ext_func_mode(dev);
} }
static void w83627ehg_pnp_enable_resources(device_t dev) static void w83627ehg_pnp_enable_resources(device_t dev)
{ {
pnp_enter_ext_func_mode(dev);
pnp_enable_resources(dev); pnp_enable_resources(dev);
pnp_enter_conf_mode(dev);
switch (dev->path.pnp.device) { switch (dev->path.pnp.device) {
case W83627EHG_HWM: case W83627EHG_HWM:
printk(BIOS_DEBUG, "W83627EHG HWM SMBus enabled\n"); printk(BIOS_DEBUG, "W83627EHG HWM SMBus enabled\n");
enable_hwm_smbus(dev); enable_hwm_smbus(dev);
break; break;
} }
pnp_exit_conf_mode(dev);
pnp_exit_ext_func_mode(dev);
} }
static void w83627ehg_pnp_enable(device_t dev) static void w83627ehg_pnp_enable(device_t dev)
{ {
pnp_enter_ext_func_mode(dev);
pnp_alt_enable(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 = { static struct device_operations ops = {
.read_resources = pnp_read_resources, .read_resources = pnp_read_resources,
.set_resources = w83627ehg_pnp_set_resources, .set_resources = w83627ehg_pnp_set_resources,
.enable_resources = w83627ehg_pnp_enable_resources, .enable_resources = w83627ehg_pnp_enable_resources,
.enable = w83627ehg_pnp_enable, .enable = w83627ehg_pnp_enable,
.init = w83627ehg_init, .init = w83627ehg_init,
.ops_pnp_mode = &pnp_conf_mode_ops,
}; };
static struct pnp_info pnp_dev_info[] = { static struct pnp_info pnp_dev_info[] = {

View File

@ -73,14 +73,14 @@ static void init_acpi(device_t dev)
get_option(&power_on, "power_on_after_fail"); get_option(&power_on, "power_on_after_fail");
pnp_enter_ext_func_mode(dev); pnp_enter_conf_mode(dev);
pnp_set_logical_device(dev); pnp_set_logical_device(dev);
value = pnp_read_config(dev, 0xE4); value = pnp_read_config(dev, 0xE4);
value &= ~(3 << 5); value &= ~(3 << 5);
if (power_on) if (power_on)
value |= (1 << 5); value |= (1 << 5);
pnp_write_config(dev, 0xE4, value); pnp_write_config(dev, 0xE4, value);
pnp_exit_ext_func_mode(dev); pnp_exit_conf_mode(dev);
} }
static void init_hwm(u16 base) 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) static void w83627hf_pnp_set_resources(device_t dev)
{ {
pnp_enter_ext_func_mode(dev);
pnp_set_resources(dev); pnp_set_resources(dev);
pnp_exit_ext_func_mode(dev);
} }
static void w83627hf_pnp_enable_resources(device_t dev) static void w83627hf_pnp_enable_resources(device_t dev)
{ {
pnp_enter_ext_func_mode(dev);
pnp_enable_resources(dev); pnp_enable_resources(dev);
pnp_enter_conf_mode(dev);
switch(dev->path.pnp.device) { switch(dev->path.pnp.device) {
case W83627HF_HWM: case W83627HF_HWM:
printk(BIOS_DEBUG, "W83627HF HWM SMBus enabled\n"); printk(BIOS_DEBUG, "W83627HF HWM SMBus enabled\n");
enable_hwm_smbus(dev); enable_hwm_smbus(dev);
break; break;
} }
pnp_exit_ext_func_mode(dev); pnp_exit_conf_mode(dev);
} }
static void w83627hf_pnp_enable(device_t dev) static void w83627hf_pnp_enable(device_t dev)
{ {
pnp_enter_ext_func_mode(dev);
pnp_alt_enable(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 = { static struct device_operations ops = {
.read_resources = pnp_read_resources, .read_resources = pnp_read_resources,
.set_resources = w83627hf_pnp_set_resources, .set_resources = w83627hf_pnp_set_resources,
.enable_resources = w83627hf_pnp_enable_resources, .enable_resources = w83627hf_pnp_enable_resources,
.enable = w83627hf_pnp_enable, .enable = w83627hf_pnp_enable,
.init = w83627hf_init, .init = w83627hf_init,
.ops_pnp_mode = &pnp_conf_mode_ops,
}; };
static struct pnp_info pnp_dev_info[] = { static struct pnp_info pnp_dev_info[] = {

View File

@ -57,31 +57,31 @@ static void w83627thg_init(device_t dev)
static void w83627thg_set_resources(device_t dev) static void w83627thg_set_resources(device_t dev)
{ {
w83627thg_enter_ext_func_mode(dev);
pnp_set_resources(dev); pnp_set_resources(dev);
w83627thg_exit_ext_func_mode(dev);
} }
static void w83627thg_enable_resources(device_t dev) static void w83627thg_enable_resources(device_t dev)
{ {
w83627thg_enter_ext_func_mode(dev);
pnp_enable_resources(dev); pnp_enable_resources(dev);
w83627thg_exit_ext_func_mode(dev);
} }
static void w83627thg_enable(device_t dev) static void w83627thg_enable(device_t dev)
{ {
w83627thg_enter_ext_func_mode(dev);
pnp_enable(dev); pnp_enable(dev);
w83627thg_exit_ext_func_mode(dev);
} }
static const struct pnp_mode_ops pnp_conf_mode_ops = {
.enter_conf_mode = w83627thg_enter_ext_func_mode,
.exit_conf_mode = w83627thg_exit_ext_func_mode,
};
static struct device_operations ops = { static struct device_operations ops = {
.read_resources = pnp_read_resources, .read_resources = pnp_read_resources,
.set_resources = w83627thg_set_resources, .set_resources = w83627thg_set_resources,
.enable_resources = w83627thg_enable_resources, .enable_resources = w83627thg_enable_resources,
.enable = w83627thg_enable, .enable = w83627thg_enable,
.init = w83627thg_init, .init = w83627thg_init,
.ops_pnp_mode = &pnp_conf_mode_ops,
}; };
static struct pnp_info pnp_dev_info[] = { static struct pnp_info pnp_dev_info[] = {

View File

@ -60,13 +60,13 @@ static void set_uart_clock_source(device_t dev, u8 uart_clock)
{ {
u8 value; u8 value;
w83627uhg_enter_ext_func_mode(dev); pnp_enter_conf_mode(dev);
pnp_set_logical_device(dev); pnp_set_logical_device(dev);
value = pnp_read_config(dev, 0xf0); value = pnp_read_config(dev, 0xf0);
value &= ~0x03; value &= ~0x03;
value |= (uart_clock & 0x03); value |= (uart_clock & 0x03);
pnp_write_config(dev, 0xf0, value); pnp_write_config(dev, 0xf0, value);
w83627uhg_exit_ext_func_mode(dev); pnp_exit_conf_mode(dev);
} }
static void w83627uhg_init(device_t dev) static void w83627uhg_init(device_t dev)
@ -103,31 +103,31 @@ static void w83627uhg_init(device_t dev)
static void w83627uhg_set_resources(device_t dev) static void w83627uhg_set_resources(device_t dev)
{ {
w83627uhg_enter_ext_func_mode(dev);
pnp_set_resources(dev); pnp_set_resources(dev);
w83627uhg_exit_ext_func_mode(dev);
} }
static void w83627uhg_enable_resources(device_t dev) static void w83627uhg_enable_resources(device_t dev)
{ {
w83627uhg_enter_ext_func_mode(dev);
pnp_enable_resources(dev); pnp_enable_resources(dev);
w83627uhg_exit_ext_func_mode(dev);
} }
static void w83627uhg_enable(device_t dev) static void w83627uhg_enable(device_t dev)
{ {
w83627uhg_enter_ext_func_mode(dev);
pnp_enable(dev); pnp_enable(dev);
w83627uhg_exit_ext_func_mode(dev);
} }
static const struct pnp_mode_ops pnp_conf_mode_ops = {
.enter_conf_mode = w83627uhg_enter_ext_func_mode,
.exit_conf_mode = w83627uhg_exit_ext_func_mode,
};
static struct device_operations ops = { static struct device_operations ops = {
.read_resources = pnp_read_resources, .read_resources = pnp_read_resources,
.set_resources = w83627uhg_set_resources, .set_resources = w83627uhg_set_resources,
.enable_resources = w83627uhg_enable_resources, .enable_resources = w83627uhg_enable_resources,
.enable = w83627uhg_enable, .enable = w83627uhg_enable,
.init = w83627uhg_init, .init = w83627uhg_init,
.ops_pnp_mode = &pnp_conf_mode_ops,
}; };
static struct pnp_info pnp_dev_info[] = { static struct pnp_info pnp_dev_info[] = {

View File

@ -83,31 +83,31 @@ static void w83697hf_init(device_t dev)
static void w83697hf_pnp_set_resources(device_t dev) static void w83697hf_pnp_set_resources(device_t dev)
{ {
pnp_enter_ext_func_mode(dev);
pnp_set_resources(dev); pnp_set_resources(dev);
pnp_exit_ext_func_mode(dev);
} }
static void w83697hf_pnp_enable(device_t dev) static void w83697hf_pnp_enable(device_t dev)
{ {
pnp_enter_ext_func_mode(dev);
pnp_alt_enable(dev); pnp_alt_enable(dev);
pnp_exit_ext_func_mode(dev);
} }
static void w83697hf_pnp_enable_resources(device_t dev) static void w83697hf_pnp_enable_resources(device_t dev)
{ {
pnp_enter_ext_func_mode(dev);
pnp_enable_resources(dev); pnp_enable_resources(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 = { static struct device_operations ops = {
.read_resources = pnp_read_resources, .read_resources = pnp_read_resources,
.set_resources = w83697hf_pnp_set_resources, .set_resources = w83697hf_pnp_set_resources,
.enable_resources = w83697hf_pnp_enable_resources, .enable_resources = w83697hf_pnp_enable_resources,
.enable = w83697hf_pnp_enable, .enable = w83697hf_pnp_enable,
.init = w83697hf_init, .init = w83697hf_init,
.ops_pnp_mode = &pnp_conf_mode_ops,
}; };
static struct pnp_info pnp_dev_info[] = { static struct pnp_info pnp_dev_info[] = {

View File

@ -56,31 +56,31 @@ static void w83977f_init(device_t dev)
static void w83977f_set_resources(device_t dev) static void w83977f_set_resources(device_t dev)
{ {
w83977f_enter_ext_func_mode(dev);
pnp_set_resources(dev); pnp_set_resources(dev);
w83977f_exit_ext_func_mode(dev);
} }
static void w83977f_enable_resources(device_t dev) static void w83977f_enable_resources(device_t dev)
{ {
w83977f_enter_ext_func_mode(dev);
pnp_enable_resources(dev); pnp_enable_resources(dev);
w83977f_exit_ext_func_mode(dev);
} }
static void w83977f_enable(device_t dev) static void w83977f_enable(device_t dev)
{ {
w83977f_enter_ext_func_mode(dev);
pnp_enable(dev); pnp_enable(dev);
w83977f_exit_ext_func_mode(dev);
} }
static const struct pnp_mode_ops pnp_conf_mode_ops = {
.enter_conf_mode = w83977f_enter_ext_func_mode,
.exit_conf_mode = w83977f_exit_ext_func_mode,
};
static struct device_operations ops = { static struct device_operations ops = {
.read_resources = pnp_read_resources, .read_resources = pnp_read_resources,
.set_resources = w83977f_set_resources, .set_resources = w83977f_set_resources,
.enable_resources = w83977f_enable_resources, .enable_resources = w83977f_enable_resources,
.enable = w83977f_enable, .enable = w83977f_enable,
.init = w83977f_init, .init = w83977f_init,
.ops_pnp_mode = &pnp_conf_mode_ops,
}; };
static struct pnp_info pnp_dev_info[] = { static struct pnp_info pnp_dev_info[] = {

View File

@ -58,31 +58,31 @@ static void w83977tf_init(device_t dev)
static void w83977tf_set_resources(device_t dev) static void w83977tf_set_resources(device_t dev)
{ {
w83977tf_enter_ext_func_mode(dev);
pnp_set_resources(dev); pnp_set_resources(dev);
w83977tf_exit_ext_func_mode(dev);
} }
static void w83977tf_enable_resources(device_t dev) static void w83977tf_enable_resources(device_t dev)
{ {
w83977tf_enter_ext_func_mode(dev);
pnp_enable_resources(dev); pnp_enable_resources(dev);
w83977tf_exit_ext_func_mode(dev);
} }
static void w83977tf_enable(device_t dev) static void w83977tf_enable(device_t dev)
{ {
w83977tf_enter_ext_func_mode(dev);
pnp_enable(dev); pnp_enable(dev);
w83977tf_exit_ext_func_mode(dev);
} }
static const struct pnp_mode_ops pnp_conf_mode_ops = {
.enter_conf_mode = w83977tf_enter_ext_func_mode,
.exit_conf_mode = w83977tf_exit_ext_func_mode,
};
static struct device_operations ops = { static struct device_operations ops = {
.read_resources = pnp_read_resources, .read_resources = pnp_read_resources,
.set_resources = w83977tf_set_resources, .set_resources = w83977tf_set_resources,
.enable_resources = w83977tf_enable_resources, .enable_resources = w83977tf_enable_resources,
.enable = w83977tf_enable, .enable = w83977tf_enable,
.init = w83977tf_init, .init = w83977tf_init,
.ops_pnp_mode = &pnp_conf_mode_ops,
}; };
static struct pnp_info pnp_dev_info[] = { static struct pnp_info pnp_dev_info[] = {