summaryrefslogtreecommitdiffstats
path: root/sky2-optima-add-missing-write-bits.patch
diff options
context:
space:
mode:
authorJesse Keating <jkeating@redhat.com>2010-07-29 17:18:45 -0700
committerJesse Keating <jkeating@redhat.com>2010-07-29 17:18:45 -0700
commit2f82dda4a9bf41e64e864889bf06564bdf826e25 (patch)
tree118a7b483ae5de4dbf83d20001302f1404866ef0 /sky2-optima-add-missing-write-bits.patch
parent64ba2e5ffde5f2418eb26c700cb0ab62b04e5013 (diff)
downloaddom0-kernel-2f82dda4a9bf41e64e864889bf06564bdf826e25.tar.gz
dom0-kernel-2f82dda4a9bf41e64e864889bf06564bdf826e25.tar.xz
dom0-kernel-2f82dda4a9bf41e64e864889bf06564bdf826e25.zip
initial srpm import
Diffstat (limited to 'sky2-optima-add-missing-write-bits.patch')
-rw-r--r--sky2-optima-add-missing-write-bits.patch46
1 files changed, 46 insertions, 0 deletions
diff --git a/sky2-optima-add-missing-write-bits.patch b/sky2-optima-add-missing-write-bits.patch
new file mode 100644
index 0000000..98b924d
--- /dev/null
+++ b/sky2-optima-add-missing-write-bits.patch
@@ -0,0 +1,46 @@
+From: Takashi Iwai <tiwai@suse.de>
+Date: Thu, 3 Dec 2009 05:12:02 +0000 (+0000)
+Subject: net: Add missing TST_CFG_WRITE bits around sky2_pci_write
+X-Git-Tag: v2.6.33-rc1~59^2~38
+X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=d66f0b20b2f8eac365fadf5ca492efe4ba539446
+
+net: Add missing TST_CFG_WRITE bits around sky2_pci_write
+
+Add missing TST_CFG_WRITE bits around sky2_pci_write*() in Optima
+setup routines. Without the cfg-write bits, the driver may spew endless
+link-up messages through qlink irq.
+
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+
+diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c
+index 050e6b5..013c9f5 100644
+--- a/drivers/net/sky2.c
++++ b/drivers/net/sky2.c
+@@ -2152,7 +2152,9 @@ static void sky2_qlink_intr(struct sky2_hw *hw)
+
+ /* reset PHY Link Detect */
+ phy = sky2_pci_read16(hw, PSM_CONFIG_REG4);
++ sky2_write8(hw, B2_TST_CTRL1, TST_CFG_WRITE_ON);
+ sky2_pci_write16(hw, PSM_CONFIG_REG4, phy | 1);
++ sky2_write8(hw, B2_TST_CTRL1, TST_CFG_WRITE_OFF);
+
+ sky2_link_up(sky2);
+ }
+@@ -3082,6 +3084,7 @@ static void sky2_reset(struct sky2_hw *hw)
+ reg <<= PSM_CONFIG_REG4_TIMER_PHY_LINK_DETECT_BASE;
+
+ /* reset PHY Link Detect */
++ sky2_write8(hw, B2_TST_CTRL1, TST_CFG_WRITE_ON);
+ sky2_pci_write16(hw, PSM_CONFIG_REG4,
+ reg | PSM_CONFIG_REG4_RST_PHY_LINK_DETECT);
+ sky2_pci_write16(hw, PSM_CONFIG_REG4, reg);
+@@ -3099,6 +3102,7 @@ static void sky2_reset(struct sky2_hw *hw)
+ /* restore the PCIe Link Control register */
+ sky2_pci_write16(hw, cap + PCI_EXP_LNKCTL, reg);
+ }
++ sky2_write8(hw, B2_TST_CTRL1, TST_CFG_WRITE_OFF);
+
+ /* re-enable PEX PM in PEX PHY debug reg. 8 (clear bit 12) */
+ sky2_write32(hw, Y2_PEX_PHY_DATA, PEX_DB_ACCESS | (0x08UL << 16));