diff options
author | Rudolf Marek <r.marek@assembler.cz> | 2011-02-19 14:51:31 +0000 |
---|---|---|
committer | Rudolf Marek <r.marek@assembler.cz> | 2011-02-19 14:51:31 +0000 |
commit | 0c8e664713d4dc726bedb5ba0b2e356eed9ae14c (patch) | |
tree | a81752632b470dfcb252e15865c3f2aa7de9bfe0 /src/superio/winbond | |
parent | b8cdd9b4506309ced1529862d7598131a5cb4ea7 (diff) |
It turns out that the code which enables specific LDN is somewhat buggy.
Instead of enable the device the device gets disabled. However after some time the serial line gets back, most likely some "enable resources" might fix it.
I'm attaching patch which somewhat fixes the problem and changes the function to look same in all superio code. Some boards even did not convert the dev->enabled to 0,1 values.
Signed-off-by: Rudolf Marek <r.marek@assembler.cz>
Acked-by: Peter Stuge <peter@stuge.se>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@6373 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'src/superio/winbond')
-rw-r--r-- | src/superio/winbond/w83627dhg/superio.c | 5 | ||||
-rw-r--r-- | src/superio/winbond/w83627ehg/superio.c | 5 | ||||
-rw-r--r-- | src/superio/winbond/w83627hf/superio.c | 5 | ||||
-rw-r--r-- | src/superio/winbond/w83697hf/superio.c | 5 |
4 files changed, 4 insertions, 16 deletions
diff --git a/src/superio/winbond/w83627dhg/superio.c b/src/superio/winbond/w83627dhg/superio.c index b10ff9781f..7f7bf21d3a 100644 --- a/src/superio/winbond/w83627dhg/superio.c +++ b/src/superio/winbond/w83627dhg/superio.c @@ -76,12 +76,9 @@ static void w83627dhg_pnp_enable_resources(device_t dev) static void w83627dhg_pnp_enable(device_t dev) { - if (!dev->enabled) - return; - pnp_enter_ext_func_mode(dev); pnp_set_logical_device(dev); - pnp_set_enable(dev, 0); + pnp_set_enable(dev, !!dev->enabled); pnp_exit_ext_func_mode(dev); } diff --git a/src/superio/winbond/w83627ehg/superio.c b/src/superio/winbond/w83627ehg/superio.c index 34ea3d46c6..d174cace8f 100644 --- a/src/superio/winbond/w83627ehg/superio.c +++ b/src/superio/winbond/w83627ehg/superio.c @@ -160,12 +160,9 @@ static void w83627ehg_pnp_enable_resources(device_t dev) static void w83627ehg_pnp_enable(device_t dev) { - if (dev->enabled) - return; - pnp_enter_ext_func_mode(dev); pnp_set_logical_device(dev); - pnp_set_enable(dev, 0); + pnp_set_enable(dev, !!dev->enabled); pnp_exit_ext_func_mode(dev); } diff --git a/src/superio/winbond/w83627hf/superio.c b/src/superio/winbond/w83627hf/superio.c index 30275b6681..2a86aa8c47 100644 --- a/src/superio/winbond/w83627hf/superio.c +++ b/src/superio/winbond/w83627hf/superio.c @@ -179,12 +179,9 @@ static void w83627hf_pnp_enable_resources(device_t dev) static void w83627hf_pnp_enable(device_t dev) { - if (dev->enabled) - return; - pnp_enter_ext_func_mode(dev); pnp_set_logical_device(dev); - pnp_set_enable(dev, 0); + pnp_set_enable(dev, !!dev->enabled); pnp_exit_ext_func_mode(dev); } diff --git a/src/superio/winbond/w83697hf/superio.c b/src/superio/winbond/w83697hf/superio.c index b96e69bce5..9159fc2547 100644 --- a/src/superio/winbond/w83697hf/superio.c +++ b/src/superio/winbond/w83697hf/superio.c @@ -70,12 +70,9 @@ static void w83697hf_pnp_set_resources(device_t dev) static void w83697hf_pnp_enable(device_t dev) { - if (dev->enabled) - return; - pnp_enter_ext_func_mode(dev); pnp_set_logical_device(dev); - pnp_set_enable(dev, 0); + pnp_set_enable(dev, !!dev->enabled); pnp_exit_ext_func_mode(dev); } |