Rudolf Marek wrote:
While hunting yet another bug, I noticed that part of my serial log is
missing. Especially I missed the Allocating & Setting resources.
It turns out that the code which enables specific LDN is somewhat buggy:
static void w83627dhg_pnp_enable(device_t dev)
- if (!dev->enabled)
- pnp_set_enable(dev, 0);
So 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.
Also makes me wonder some sio call pnp_enable directly, which has yet
another semantics, it wont enable already enabled devices just disable
those which declared not enabled. And no PnP enter conf magic is called
(maybe this is the reason).
Signed-off-by: Rudolf Marek <r.marek(a)assembler.cz>
Acked-by: Peter Stuge <peter(a)stuge.se>