summaryrefslogtreecommitdiffstats
path: root/src/superio
diff options
context:
space:
mode:
authorNico Huber <nico.h@gmx.de>2013-06-10 22:57:12 +0200
committerStefan Reinauer <stefan.reinauer@coreboot.org>2013-06-17 21:38:37 +0200
commitf898f7ba4d10146b45241afe65fd54b3c049cc4f (patch)
treed0aa5c8874521f998f794c12fce9b5dfc80abeed /src/superio
parenta00f9830fb58d3f5061aab71be8553f3ff2e1f70 (diff)
downloadcoreboot-f898f7ba4d10146b45241afe65fd54b3c049cc4f.tar.gz
coreboot-f898f7ba4d10146b45241afe65fd54b3c049cc4f.tar.bz2
coreboot-f898f7ba4d10146b45241afe65fd54b3c049cc4f.zip
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 <nico.h@gmx.de> Reviewed-on: http://review.coreboot.org/3480 Tested-by: build bot (Jenkins) Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Reviewed-by: Ronald G. Minnich <rminnich@gmail.com> Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Diffstat (limited to 'src/superio')
-rw-r--r--src/superio/fintek/f71805f/superio.c3
-rw-r--r--src/superio/fintek/f71859/superio.c3
-rw-r--r--src/superio/fintek/f71863fg/superio.c3
-rw-r--r--src/superio/fintek/f71872/superio.c3
-rw-r--r--src/superio/fintek/f71889/superio.c3
-rw-r--r--src/superio/fintek/f81865f/superio.c3
-rw-r--r--src/superio/intel/i3100/superio.c3
-rw-r--r--src/superio/ite/it8712f/superio.c3
-rw-r--r--src/superio/ite/it8716f/superio.c3
-rw-r--r--src/superio/ite/it8772f/superio.c3
-rwxr-xr-xsrc/superio/nuvoton/nct5104d/superio.c3
-rw-r--r--src/superio/smsc/kbc1100/superio.c9
-rw-r--r--src/superio/smsc/lpc47b272/superio.c3
-rw-r--r--src/superio/smsc/lpc47b397/superio.c3
-rw-r--r--src/superio/smsc/lpc47m10x/superio.c3
-rw-r--r--src/superio/smsc/lpc47m15x/superio.c3
-rw-r--r--src/superio/smsc/mec1308/superio.c9
-rw-r--r--src/superio/smsc/sch4037/superio.c9
-rw-r--r--src/superio/smsc/sio1036/superio.c9
-rw-r--r--src/superio/smsc/smscsuperio/superio.c3
-rw-r--r--src/superio/via/vt1211/vt1211.c3
-rw-r--r--src/superio/winbond/w83627dhg/superio.c3
-rw-r--r--src/superio/winbond/w83627ehg/superio.c3
-rw-r--r--src/superio/winbond/w83627hf/superio.c3
-rw-r--r--src/superio/winbond/w83697hf/superio.c3
25 files changed, 25 insertions, 74 deletions
diff --git a/src/superio/fintek/f71805f/superio.c b/src/superio/fintek/f71805f/superio.c
index 964f105e14dd..f46bd67dc4c4 100644
--- a/src/superio/fintek/f71805f/superio.c
+++ b/src/superio/fintek/f71805f/superio.c
@@ -62,8 +62,7 @@ static void f71805f_pnp_enable_resources(device_t dev)
static void f71805f_pnp_enable(device_t dev)
{
pnp_enter_conf_state(dev);
- pnp_set_logical_device(dev);
- pnp_set_enable(dev, !!dev->enabled);
+ pnp_alt_enable(dev);
pnp_exit_conf_state(dev);
}
diff --git a/src/superio/fintek/f71859/superio.c b/src/superio/fintek/f71859/superio.c
index db7834dfdf8c..ed5da6ee3042 100644
--- a/src/superio/fintek/f71859/superio.c
+++ b/src/superio/fintek/f71859/superio.c
@@ -63,8 +63,7 @@ static void f71859_pnp_enable_resources(device_t dev)
static void f71859_pnp_enable(device_t dev)
{
pnp_enter_conf_state(dev);
- pnp_set_logical_device(dev);
- pnp_set_enable(dev, !!dev->enabled);
+ pnp_alt_enable(dev);
pnp_exit_conf_state(dev);
}
diff --git a/src/superio/fintek/f71863fg/superio.c b/src/superio/fintek/f71863fg/superio.c
index ab86922be503..d13374562267 100644
--- a/src/superio/fintek/f71863fg/superio.c
+++ b/src/superio/fintek/f71863fg/superio.c
@@ -72,8 +72,7 @@ static void f71863fg_pnp_enable_resources(device_t dev)
static void f71863fg_pnp_enable(device_t dev)
{
pnp_enter_conf_state(dev);
- pnp_set_logical_device(dev);
- pnp_set_enable(dev, !!dev->enabled);
+ pnp_alt_enable(dev);
pnp_exit_conf_state(dev);
}
diff --git a/src/superio/fintek/f71872/superio.c b/src/superio/fintek/f71872/superio.c
index ae5360804e38..5a2719b40394 100644
--- a/src/superio/fintek/f71872/superio.c
+++ b/src/superio/fintek/f71872/superio.c
@@ -69,8 +69,7 @@ static void f71872_pnp_enable_resources(device_t dev)
static void f71872_pnp_enable(device_t dev)
{
pnp_enter_conf_state(dev);
- pnp_set_logical_device(dev);
- pnp_set_enable(dev, !!dev->enabled);
+ pnp_alt_enable(dev);
pnp_exit_conf_state(dev);
}
diff --git a/src/superio/fintek/f71889/superio.c b/src/superio/fintek/f71889/superio.c
index 98306f9edd06..8daf7669a8e2 100644
--- a/src/superio/fintek/f71889/superio.c
+++ b/src/superio/fintek/f71889/superio.c
@@ -70,8 +70,7 @@ static void f71889_pnp_enable_resources(device_t dev)
static void f71889_pnp_enable(device_t dev)
{
pnp_enter_conf_state(dev);
- pnp_set_logical_device(dev);
- pnp_set_enable(dev, !!dev->enabled);
+ pnp_alt_enable(dev);
pnp_exit_conf_state(dev);
}
diff --git a/src/superio/fintek/f81865f/superio.c b/src/superio/fintek/f81865f/superio.c
index e09adbb461b3..eaae09ce09bc 100644
--- a/src/superio/fintek/f81865f/superio.c
+++ b/src/superio/fintek/f81865f/superio.c
@@ -69,8 +69,7 @@ static void f81865f_pnp_enable_resources(device_t dev)
static void f81865f_pnp_enable(device_t dev)
{
pnp_enter_conf_state(dev);
- pnp_set_logical_device(dev);
- (dev->enabled) ? pnp_set_enable(dev, 1) : pnp_set_enable(dev, 0);
+ pnp_alt_enable(dev);
pnp_exit_conf_state(dev);
}
diff --git a/src/superio/intel/i3100/superio.c b/src/superio/intel/i3100/superio.c
index 3d4f28a3c648..152e4193c434 100644
--- a/src/superio/intel/i3100/superio.c
+++ b/src/superio/intel/i3100/superio.c
@@ -60,8 +60,7 @@ static void i3100_pnp_enable_resources(device_t dev)
static void i3100_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);
}
diff --git a/src/superio/ite/it8712f/superio.c b/src/superio/ite/it8712f/superio.c
index bf649dac7ad2..66b0aecdf085 100644
--- a/src/superio/ite/it8712f/superio.c
+++ b/src/superio/ite/it8712f/superio.c
@@ -89,8 +89,7 @@ static void it8712f_pnp_enable_resources(device_t dev)
static void it8712f_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);
}
diff --git a/src/superio/ite/it8716f/superio.c b/src/superio/ite/it8716f/superio.c
index 98b673214d49..f021a0b7d88f 100644
--- a/src/superio/ite/it8716f/superio.c
+++ b/src/superio/ite/it8716f/superio.c
@@ -113,8 +113,7 @@ static void it8716f_pnp_enable_resources(device_t dev)
static void it8716f_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);
}
diff --git a/src/superio/ite/it8772f/superio.c b/src/superio/ite/it8772f/superio.c
index b6c4405d9b67..de1c17908a89 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);
}
diff --git a/src/superio/nuvoton/nct5104d/superio.c b/src/superio/nuvoton/nct5104d/superio.c
index 3c78cbcec9dd..ea6a342c93b2 100755
--- a/src/superio/nuvoton/nct5104d/superio.c
+++ b/src/superio/nuvoton/nct5104d/superio.c
@@ -55,8 +55,7 @@ static void nct5104d_pnp_enable_resources(device_t dev)
static void nct5104d_pnp_enable(device_t dev)
{
pnp_enter_exteded_mode(dev);
- pnp_set_logical_device(dev);
- (dev->enabled) ? pnp_set_enable(dev,1) : pnp_set_enable(dev,0);
+ pnp_alt_enable(dev);
pnp_exit_extended_mode(dev);
}
diff --git a/src/superio/smsc/kbc1100/superio.c b/src/superio/smsc/kbc1100/superio.c
index b3d3d495a73f..a8dad5e3ad1b 100644
--- a/src/superio/smsc/kbc1100/superio.c
+++ b/src/superio/smsc/kbc1100/superio.c
@@ -80,14 +80,7 @@ static void kbc1100_pnp_enable_resources(device_t dev)
static void kbc1100_pnp_enable(device_t dev)
{
pnp_enter_conf_state(dev);
- pnp_set_logical_device(dev);
-
- if(dev->enabled) {
- pnp_set_enable(dev, 1);
- }
- else {
- pnp_set_enable(dev, 0);
- }
+ pnp_alt_enable(dev);
pnp_exit_conf_state(dev);
}
diff --git a/src/superio/smsc/lpc47b272/superio.c b/src/superio/smsc/lpc47b272/superio.c
index 79d07bb06e9e..8217769d71fa 100644
--- a/src/superio/smsc/lpc47b272/superio.c
+++ b/src/superio/smsc/lpc47b272/superio.c
@@ -103,8 +103,7 @@ static void lpc47b272_pnp_enable_resources(device_t dev)
static void lpc47b272_pnp_enable(device_t dev)
{
pnp_enter_conf_state(dev);
- pnp_set_logical_device(dev);
- pnp_set_enable(dev, !!dev->enabled);
+ pnp_alt_enable(dev);
pnp_exit_conf_state(dev);
}
diff --git a/src/superio/smsc/lpc47b397/superio.c b/src/superio/smsc/lpc47b397/superio.c
index fd13b035d9e9..cc78c36e384d 100644
--- a/src/superio/smsc/lpc47b397/superio.c
+++ b/src/superio/smsc/lpc47b397/superio.c
@@ -105,8 +105,7 @@ static void lpc47b397_pnp_enable_resources(device_t dev)
static void lpc47b397_pnp_enable(device_t dev)
{
pnp_enter_conf_state(dev);
- pnp_set_logical_device(dev);
- pnp_set_enable(dev, !!dev->enabled);
+ pnp_alt_enable(dev);
pnp_exit_conf_state(dev);
}
diff --git a/src/superio/smsc/lpc47m10x/superio.c b/src/superio/smsc/lpc47m10x/superio.c
index 53356d254e40..d133c475120a 100644
--- a/src/superio/smsc/lpc47m10x/superio.c
+++ b/src/superio/smsc/lpc47m10x/superio.c
@@ -102,8 +102,7 @@ static void lpc47m10x_pnp_enable_resources(device_t dev)
static void lpc47m10x_pnp_enable(device_t dev)
{
pnp_enter_conf_state(dev);
- pnp_set_logical_device(dev);
- pnp_set_enable(dev, !!dev->enabled);
+ pnp_alt_enable(dev);
pnp_exit_conf_state(dev);
}
diff --git a/src/superio/smsc/lpc47m15x/superio.c b/src/superio/smsc/lpc47m15x/superio.c
index e70c6e1d678f..253bfdc09e97 100644
--- a/src/superio/smsc/lpc47m15x/superio.c
+++ b/src/superio/smsc/lpc47m15x/superio.c
@@ -85,8 +85,7 @@ static void lpc47m15x_pnp_enable_resources(device_t dev)
static void lpc47m15x_pnp_enable(device_t dev)
{
pnp_enter_conf_state(dev);
- pnp_set_logical_device(dev);
- pnp_set_enable(dev, !!dev->enabled);
+ pnp_alt_enable(dev);
pnp_exit_conf_state(dev);
}
diff --git a/src/superio/smsc/mec1308/superio.c b/src/superio/smsc/mec1308/superio.c
index b4a1adf45369..0fe473ca6bd2 100644
--- a/src/superio/smsc/mec1308/superio.c
+++ b/src/superio/smsc/mec1308/superio.c
@@ -60,14 +60,7 @@ static void mec1308_pnp_enable_resources(device_t dev)
static void mec1308_pnp_enable(device_t dev)
{
pnp_enter_conf_state(dev);
- pnp_set_logical_device(dev);
-
- if(dev->enabled) {
- pnp_set_enable(dev, 1);
- }
- else {
- pnp_set_enable(dev, 0);
- }
+ pnp_alt_enable(dev);
pnp_exit_conf_state(dev);
}
diff --git a/src/superio/smsc/sch4037/superio.c b/src/superio/smsc/sch4037/superio.c
index 386eafd10640..9a19033e41b1 100644
--- a/src/superio/smsc/sch4037/superio.c
+++ b/src/superio/smsc/sch4037/superio.c
@@ -81,14 +81,7 @@ static void sch4037_pnp_enable_resources(device_t dev)
static void sch4037_pnp_enable(device_t dev)
{
pnp_enter_conf_state(dev);
- pnp_set_logical_device(dev);
-
- if(dev->enabled) {
- pnp_set_enable(dev, 1);
- }
- else {
- pnp_set_enable(dev, 0);
- }
+ pnp_alt_enable(dev);
pnp_exit_conf_state(dev);
}
diff --git a/src/superio/smsc/sio1036/superio.c b/src/superio/smsc/sio1036/superio.c
index 46f3f46b9f67..c25a67483263 100644
--- a/src/superio/smsc/sio1036/superio.c
+++ b/src/superio/smsc/sio1036/superio.c
@@ -80,14 +80,7 @@ static void sio1036_pnp_enable_resources(device_t dev)
static void sio1036_pnp_enable(device_t dev)
{
pnp_enter_conf_state(dev);
- pnp_set_logical_device(dev);
-
- if(dev->enabled) {
- pnp_set_enable(dev, 1);
- }
- else {
- pnp_set_enable(dev, 0);
- }
+ pnp_alt_enable(dev);
pnp_exit_conf_state(dev);
}
diff --git a/src/superio/smsc/smscsuperio/superio.c b/src/superio/smsc/smscsuperio/superio.c
index d687bd1c16d8..cdd223b4896e 100644
--- a/src/superio/smsc/smscsuperio/superio.c
+++ b/src/superio/smsc/smscsuperio/superio.c
@@ -194,8 +194,7 @@ static void smsc_pnp_enable_resources(device_t dev)
static void smsc_pnp_enable(device_t dev)
{
smsc_pnp_enter_conf_state(dev);
- pnp_set_logical_device(dev);
- pnp_set_enable(dev, !!dev->enabled);
+ pnp_alt_enable(dev);
smsc_pnp_exit_conf_state(dev);
}
diff --git a/src/superio/via/vt1211/vt1211.c b/src/superio/via/vt1211/vt1211.c
index abcae7729049..0f56ee216259 100644
--- a/src/superio/via/vt1211/vt1211.c
+++ b/src/superio/via/vt1211/vt1211.c
@@ -177,8 +177,7 @@ static void vt1211_pnp_set_resources(struct device *dev)
static void vt1211_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);
}
diff --git a/src/superio/winbond/w83627dhg/superio.c b/src/superio/winbond/w83627dhg/superio.c
index bbde26a67e67..5310426793a9 100644
--- a/src/superio/winbond/w83627dhg/superio.c
+++ b/src/superio/winbond/w83627dhg/superio.c
@@ -82,8 +82,7 @@ static void w83627dhg_pnp_enable_resources(device_t dev)
static void w83627dhg_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);
}
diff --git a/src/superio/winbond/w83627ehg/superio.c b/src/superio/winbond/w83627ehg/superio.c
index b5234f18396c..e0eea1b57489 100644
--- a/src/superio/winbond/w83627ehg/superio.c
+++ b/src/superio/winbond/w83627ehg/superio.c
@@ -152,8 +152,7 @@ static void w83627ehg_pnp_enable_resources(device_t dev)
static void w83627ehg_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);
}
diff --git a/src/superio/winbond/w83627hf/superio.c b/src/superio/winbond/w83627hf/superio.c
index 82408d4d9f2a..a117e05b2cac 100644
--- a/src/superio/winbond/w83627hf/superio.c
+++ b/src/superio/winbond/w83627hf/superio.c
@@ -157,8 +157,7 @@ static void w83627hf_pnp_enable_resources(device_t dev)
static void w83627hf_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);
}
diff --git a/src/superio/winbond/w83697hf/superio.c b/src/superio/winbond/w83697hf/superio.c
index 56d13584094a..e3ce7e2818a2 100644
--- a/src/superio/winbond/w83697hf/superio.c
+++ b/src/superio/winbond/w83697hf/superio.c
@@ -91,8 +91,7 @@ static void w83697hf_pnp_set_resources(device_t dev)
static void w83697hf_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);
}