From: shemminger@osdl.org Date: Mon, 28 Aug 2006 17:00:52 +0000 (-0700) Subject: [PATCH] sky2: pci post bug X-Git-Tag: v2.6.19-rc1~1263^2~72 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=98232f85ffd0efc34c462da5ee81516f7432cec2;p=linux-2.6 [PATCH] sky2: pci post bug Make sure that PCI write occurs before the delay. Signed-off-by: Stephen Hemminger Signed-off-by: Jeff Garzik --- diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c index c941195f0f..869a45334f 100644 --- a/drivers/net/sky2.c +++ b/drivers/net/sky2.c @@ -531,6 +531,7 @@ static void sky2_phy_power(struct sky2_hw *hw, unsigned port, int onoff) reg1 |= phy_power[port]; sky2_pci_write32(hw, PCI_DEV_REG1, reg1); + sky2_pci_read32(hw, PCI_DEV_REG1); udelay(100); } @@ -766,9 +767,10 @@ static inline struct sky2_tx_le *get_tx_le(struct sky2_port *sky2) /* Update chip's next pointer */ static inline void sky2_put_idx(struct sky2_hw *hw, unsigned q, u16 idx) { + q = Y2_QADDR(q, PREF_UNIT_PUT_IDX); wmb(); - sky2_write16(hw, Y2_QADDR(q, PREF_UNIT_PUT_IDX), idx); - mmiowb(); + sky2_write16(hw, q, idx); + sky2_read16(hw, q); }