From f898f7ba4d10146b45241afe65fd54b3c049cc4f Mon Sep 17 00:00:00 2001 From: Nico Huber Date: Mon, 10 Jun 2013 22:57:12 +0200 Subject: pnp: Provide alternative pnp_enable() implementation The current default implementation of pnp_enable() only disables devices - if set so in the devicetree - but does not enable them. Enablement takes place in pnp_enable_resources(). Yet, many PnP chips implement their own version of pnp_enable() which also enables devices if set in the devicetree. It's arguable, if enabling those devices makes sense, before they get resources assigned. Maybe we can't write the resource registers if not, who knows? The least we can do is providing a common implementation for this behavior, and get rid of some code duplication. Used the following cocci: @@ expression e; @@ +pnp_alt_enable(e); -pnp_set_logical_device(e); ( -pnp_set_enable(e, !!e->enabled); | -(e->enabled) ? pnp_set_enable(e, 1) : pnp_set_enable(e, 0); | -if (e->enabled) { pnp_set_enable(e, 1); } -else { pnp_set_enable(e, 0); } ) Change-Id: I8d695e8fcd3cf8b847b1aa99326b51a554700bc4 Signed-off-by: Nico Huber Reviewed-on: http://review.coreboot.org/3480 Tested-by: build bot (Jenkins) Reviewed-by: Paul Menzel Reviewed-by: Ronald G. Minnich Reviewed-by: Stefan Reinauer --- src/superio/ite/it8772f/superio.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'src/superio/ite/it8772f') diff --git a/src/superio/ite/it8772f/superio.c b/src/superio/ite/it8772f/superio.c index b6c4405d9b..de1c17908a 100644 --- a/src/superio/ite/it8772f/superio.c +++ b/src/superio/ite/it8772f/superio.c @@ -205,8 +205,7 @@ static void it8772f_pnp_enable_resources(device_t dev) static void it8772f_pnp_enable(device_t dev) { pnp_enter_ext_func_mode(dev); - pnp_set_logical_device(dev); - pnp_set_enable(dev, !!dev->enabled); + pnp_alt_enable(dev); pnp_exit_ext_func_mode(dev); } -- cgit v1.2.3