x86: tnc: Remove IGD and SDVO devices from driver model
authorBin Meng <bmeng.cn@gmail.com>
Mon, 1 Feb 2016 09:40:55 +0000 (01:40 -0800)
committerBin Meng <bmeng.cn@gmail.com>
Fri, 5 Feb 2016 04:47:22 +0000 (12:47 +0800)
commit66484f0fc01ab3c65007c869f563adc04aa5c175
tree3b232e567b172fe64a5e4abdf565aa9db2b342e2
parent2b94d9fca2bef8cffd5ad56f609aed1f0d024900
x86: tnc: Remove IGD and SDVO devices from driver model

With recent DM PCI changes to vesa_fb driver, external graphics
card does not work any more. This is because: after setting the
function disable bit, IGD and SDVO devices will disappear in the
PCI configuration space. This however creates an inconsistent state
from a driver model PCI controller point of view, as these two PCI
devices are still attached to its parent's child device list as
maintained by the driver model. Some driver model PCI APIs like
dm_pci_find_class() used in the vesa_fb driver, are referring to
the list to speed up the finding process instead of re-enumerating
the whole PCI bus, so it gets the stale cached data which is wrong.

To fix this, manually remove these two devices.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
arch/x86/cpu/queensbay/tnc.c