diff options
| author | shemminger@osdl.org <shemminger@osdl.org> | 2006-08-28 13:00:52 -0400 |
|---|---|---|
| committer | Jeff Garzik <jeff@garzik.org> | 2006-08-29 17:18:30 -0400 |
| commit | 98232f85ffd0efc34c462da5ee81516f7432cec2 (patch) | |
| tree | b78073dfae9bd9cabc46520f2644172de2050551 | |
| parent | d3bcfbeb27a546d02af202353381ddd91ea39b87 (diff) | |
[PATCH] sky2: pci post bug
Make sure that PCI write occurs before the delay.
Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
| -rw-r--r-- | drivers/net/sky2.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c index c941195f0f4b..869a45334ff8 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) | |||
| 531 | reg1 |= phy_power[port]; | 531 | reg1 |= phy_power[port]; |
| 532 | 532 | ||
| 533 | sky2_pci_write32(hw, PCI_DEV_REG1, reg1); | 533 | sky2_pci_write32(hw, PCI_DEV_REG1, reg1); |
| 534 | sky2_pci_read32(hw, PCI_DEV_REG1); | ||
| 534 | udelay(100); | 535 | udelay(100); |
| 535 | } | 536 | } |
| 536 | 537 | ||
| @@ -766,9 +767,10 @@ static inline struct sky2_tx_le *get_tx_le(struct sky2_port *sky2) | |||
| 766 | /* Update chip's next pointer */ | 767 | /* Update chip's next pointer */ |
| 767 | static inline void sky2_put_idx(struct sky2_hw *hw, unsigned q, u16 idx) | 768 | static inline void sky2_put_idx(struct sky2_hw *hw, unsigned q, u16 idx) |
| 768 | { | 769 | { |
| 770 | q = Y2_QADDR(q, PREF_UNIT_PUT_IDX); | ||
| 769 | wmb(); | 771 | wmb(); |
| 770 | sky2_write16(hw, Y2_QADDR(q, PREF_UNIT_PUT_IDX), idx); | 772 | sky2_write16(hw, q, idx); |
| 771 | mmiowb(); | 773 | sky2_read16(hw, q); |
| 772 | } | 774 | } |
| 773 | 775 | ||
| 774 | 776 | ||
