powerpc/pci: Change the DECLARE_PCI_FIXUP_{HEADER => EARLY} macro of pci quirk
Freescale platform has class code = 0x0b2000, when it boots. This makes kernel PCI bus code to setup these devices resulting into the following notice information when trying to enable them: pci 0000:00:00.0: ignoring class 0x0b2000 (doesn't match header type 01) The above information is outputted by judging value of dev->class before pci_setup_device() function, and the DECLARE_PCI_FIXUP_HEADER quirk runs after pci_setup_device() function. But the DECLARE_PCI_FIXUP_EARLY quirk runs before judging value of dev->class and pci_setup_device() function. So we use the DECLARE_PCI_FIXUP_EARLY macro to fix this issue. Signed-off-by: Chunhe Lan <Chunhe.Lan@freescale.com> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Bjorn Helgaas <bhelgaas@google.com> Cc: Paul Mackerras <paulus@samba.org> Signed-off-by: Scott Wood <scottwood@freescale.com>
This commit is contained in:
Родитель
0e3d4373b8
Коммит
bbd234b146
|
@ -40,7 +40,7 @@
|
|||
|
||||
static int fsl_pcie_bus_fixup, is_mpc83xx_pci;
|
||||
|
||||
static void quirk_fsl_pcie_header(struct pci_dev *dev)
|
||||
static void quirk_fsl_pcie_early(struct pci_dev *dev)
|
||||
{
|
||||
u8 hdr_type;
|
||||
|
||||
|
@ -562,7 +562,8 @@ no_bridge:
|
|||
}
|
||||
#endif /* CONFIG_FSL_SOC_BOOKE || CONFIG_PPC_86xx */
|
||||
|
||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_FREESCALE, PCI_ANY_ID, quirk_fsl_pcie_header);
|
||||
DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_FREESCALE, PCI_ANY_ID,
|
||||
quirk_fsl_pcie_early);
|
||||
|
||||
#if defined(CONFIG_PPC_83xx) || defined(CONFIG_PPC_MPC512x)
|
||||
struct mpc83xx_pcie_priv {
|
||||
|
|
Загрузка…
Ссылка в новой задаче