From 7b94f65e8c42639b3d5f61fe4657b1d7de9eaea3 Mon Sep 17 00:00:00 2001 From: Xiangliang Yu Date: Thu, 7 Mar 2013 14:29:16 +0000 Subject: [PATCH] UBUNTU: SAUCE: (no-up) PCI: fix system hang issue of Marvell SATA host controller BugLink: http://bugs.launchpad.net/bugs/1159863 Hassle someone if this patch hasn't been removed by 13.10. See https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1159863/comments/2 Fix system hang issue: if first accessed resource file of BAR0 ~ BAR4, system will hang after executing lspci command Signed-off-by: Kamal Mostafa Signed-off-by: Tim Gardner --- drivers/pci/quirks.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index d797df6e5f3e..17e43aa28774 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c @@ -300,6 +300,21 @@ static void quirk_mmio_always_on(struct pci_dev *dev) DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_BRIDGE_HOST, 8, quirk_mmio_always_on); +/* The BAR0 ~ BAR4 of Marvell 9125 device can't be accessed +* by IO resource file, and need to skip the files +*/ +static void quirk_marvell_mask_bar(struct pci_dev *dev) +{ + int i; + + for (i = 0; i < 5; i++) + if (dev->resource[i].start) + dev->resource[i].start = + dev->resource[i].end = 0; +} +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL_EXT, 0x9125, + quirk_marvell_mask_bar); + /* * The Mellanox Tavor device gives false positive parity errors. Disable * parity error reporting.