From 3b55135d9952f6093bddaf5e47ec320d5bae87ff Mon Sep 17 00:00:00 2001 From: Martin Michlmayr Date: Tue, 19 Oct 2010 18:23:47 +0000 Subject: [PATCH] Revert "orion/kirkwood: reset PCIe unit on boot" since it breaks the QNAP TS-209. svn path=/dists/trunk/linux-2.6/; revision=16463 --- debian/changelog | 4 ++ .../arm/kirkwood-revert-pcie-reset.patch | 70 +++++++++++++++++++ debian/patches/series/base | 1 + 3 files changed, 75 insertions(+) create mode 100644 debian/patches/bugfix/arm/kirkwood-revert-pcie-reset.patch diff --git a/debian/changelog b/debian/changelog index 7a9590725..aa3cd5195 100644 --- a/debian/changelog +++ b/debian/changelog @@ -20,6 +20,10 @@ linux-2.6 (2.6.36~rc8-1~experimental.1) UNRELEASED; urgency=low * [x86] ata_piix: Add device ID for ICH4-L * [armel/iop32x,ia64,x86] Disable BLK_DEV_PIIX as obsolete + [ Martin Michlmayr ] + * Revert "orion/kirkwood: reset PCIe unit on boot" since it breaks + the QNAP TS-209. + -- Ben Hutchings Thu, 07 Oct 2010 03:24:21 +0100 linux-2.6 (2.6.36~rc6-1~experimental.1) experimental; urgency=low diff --git a/debian/patches/bugfix/arm/kirkwood-revert-pcie-reset.patch b/debian/patches/bugfix/arm/kirkwood-revert-pcie-reset.patch new file mode 100644 index 000000000..95e314e66 --- /dev/null +++ b/debian/patches/bugfix/arm/kirkwood-revert-pcie-reset.patch @@ -0,0 +1,70 @@ +Revert "orion/kirkwood: reset PCIe unit on boot" +(21f0ba90a447090153edeaf2f14f9f7e8bd9bc80) since it breaks +QNAP TS-209. + +diff --git a/arch/arm/plat-orion/pcie.c b/arch/arm/plat-orion/pcie.c +index 779553a..54c84a4 100644 +--- a/arch/arm/plat-orion/pcie.c ++++ b/arch/arm/plat-orion/pcie.c +@@ -13,7 +13,6 @@ + #include + #include + #include +-#include + + /* + * PCIe unit register offsets. +@@ -47,8 +46,6 @@ + #define PCIE_STAT_BUS_OFFS 8 + #define PCIE_STAT_BUS_MASK 0xff + #define PCIE_STAT_LINK_DOWN 1 +-#define PCIE_DEBUG_CTRL 0x1a60 +-#define PCIE_DEBUG_SOFT_RESET (1<<20) + + + u32 __init orion_pcie_dev_id(void __iomem *base) +@@ -88,32 +85,6 @@ void __init orion_pcie_set_local_bus_nr(void __iomem *base, int nr) + writel(stat, base + PCIE_STAT_OFF); + } + +-void __init orion_pcie_reset(void __iomem *base) +-{ +- u32 reg; +- int i; +- +- /* +- * MV-S104860-U0, Rev. C: +- * PCI Express Unit Soft Reset +- * When set, generates an internal reset in the PCI Express unit. +- * This bit should be cleared after the link is re-established. +- */ +- reg = readl(base + PCIE_DEBUG_CTRL); +- reg |= PCIE_DEBUG_SOFT_RESET; +- writel(reg, base + PCIE_DEBUG_CTRL); +- +- for (i = 0; i < 20; i++) { +- mdelay(10); +- +- if (orion_pcie_link_up(base)) +- break; +- } +- +- reg &= ~(PCIE_DEBUG_SOFT_RESET); +- writel(reg, base + PCIE_DEBUG_CTRL); +-} +- + /* + * Setup PCIE BARs and Address Decode Wins: + * BAR[0,2] -> disabled, BAR[1] -> covers all DRAM banks +@@ -182,11 +153,6 @@ void __init orion_pcie_setup(void __iomem *base, + u32 mask; + + /* +- * soft reset PCIe unit +- */ +- orion_pcie_reset(base); +- +- /* + * Point PCIe unit MBUS decode windows to DRAM space. + */ + orion_pcie_setup_wins(base, dram); diff --git a/debian/patches/series/base b/debian/patches/series/base index f930abee5..8bc49380e 100644 --- a/debian/patches/series/base +++ b/debian/patches/series/base @@ -48,3 +48,4 @@ + bugfix/all/perf-Fix-detection-of-script-extension.patch + bugfix/x86/Skip-looking-for-ioapic-overrides-when-ioapics-are-not-present.patch + features/x86/ata_piix-Add-device-ID-for-ICH4-L.patch ++ bugfix/arm/kirkwood-revert-pcie-reset.patch