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 <[email protected]>

Acked-by: Peter Stuge <[email protected]>

-- 
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to