[coreboot] [PATCH] Fix superio enable calls
Peter Stuge
peter at stuge.se
Sat Feb 12 18:35:07 CET 2011
Rudolf Marek wrote:
> Hello,
>
> 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)
> - return;
> -
> pnp_enter_ext_func_mode(dev);
> pnp_set_logical_device(dev);
> - pnp_set_enable(dev, 0);
> pnp_exit_ext_func_mode(dev);
> }
>
>
> 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 at assembler.cz>
Acked-by: Peter Stuge <peter at stuge.se>
More information about the coreboot
mailing list