Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 6290
b: refs/heads/master
c: 2009493
h: refs/heads/master
v: v3
  • Loading branch information
Michael Chan authored and David S. Miller committed Aug 29, 2005
1 parent 8a6f1d4 commit 446797f
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 12 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 757f612e091e7d13707eedc3ff71f1a9b53f5537
refs/heads/master: 2009493065e01b1fe27c1b98ffbcfab98e185f72
34 changes: 23 additions & 11 deletions trunk/drivers/net/tg3.c
Original file line number Diff line number Diff line change
Expand Up @@ -366,15 +366,15 @@ static void _tw32_flush(struct tg3 *tp, u32 off, u32 val)
}
}

static inline void _tw32_rx_mbox(struct tg3 *tp, u32 off, u32 val)
static void tg3_write32_rx_mbox(struct tg3 *tp, u32 off, u32 val)
{
void __iomem *mbox = tp->regs + off;
writel(val, mbox);
if (tp->tg3_flags & TG3_FLAG_MBOX_WRITE_REORDER)
readl(mbox);
}

static inline void _tw32_tx_mbox(struct tg3 *tp, u32 off, u32 val)
static void tg3_write32_tx_mbox(struct tg3 *tp, u32 off, u32 val)
{
void __iomem *mbox = tp->regs + off;
writel(val, mbox);
Expand All @@ -384,17 +384,23 @@ static inline void _tw32_tx_mbox(struct tg3 *tp, u32 off, u32 val)
readl(mbox);
}

#define tw32_mailbox(reg, val) writel(((val) & 0xffffffff), tp->regs + (reg))
#define tw32_rx_mbox(reg, val) _tw32_rx_mbox(tp, reg, val)
#define tw32_tx_mbox(reg, val) _tw32_tx_mbox(tp, reg, val)
static void tg3_write32(struct tg3 *tp, u32 off, u32 val)
{
writel(val, tp->regs + off);
}

#define tw32(reg,val) tg3_write_indirect_reg32(tp,(reg),(val))
static u32 tg3_read32(struct tg3 *tp, u32 off)
{
return (readl(tp->regs + off));
}

#define tw32_mailbox(reg, val) tp->write32_mbox(tp, reg, val)
#define tw32_rx_mbox(reg, val) tp->write32_rx_mbox(tp, reg, val)
#define tw32_tx_mbox(reg, val) tp->write32_tx_mbox(tp, reg, val)

#define tw32(reg,val) tp->write32(tp, reg, val)
#define tw32_f(reg,val) _tw32_flush(tp,(reg),(val))
#define tw16(reg,val) writew(((val) & 0xffff), tp->regs + (reg))
#define tw8(reg,val) writeb(((val) & 0xff), tp->regs + (reg))
#define tr32(reg) readl(tp->regs + (reg))
#define tr16(reg) readw(tp->regs + (reg))
#define tr8(reg) readb(tp->regs + (reg))
#define tr32(reg) tp->read32(tp, reg)

static void tg3_write_mem(struct tg3 *tp, u32 off, u32 val)
{
Expand Down Expand Up @@ -9325,6 +9331,12 @@ static int __devinit tg3_get_invariants(struct tg3 *tp)
pci_write_config_dword(tp->pdev, TG3PCI_PCISTATE, pci_state_reg);
}

tp->read32 = tg3_read32;
tp->write32 = tg3_write_indirect_reg32;
tp->write32_mbox = tg3_write32;
tp->write32_tx_mbox = tg3_write32_tx_mbox;
tp->write32_rx_mbox = tg3_write32_rx_mbox;

/* Get eeprom hw config before calling tg3_set_power_state().
* In particular, the TG3_FLAG_EEPROM_WRITE_PROT flag must be
* determined before calling tg3_set_power_state() so that
Expand Down
8 changes: 8 additions & 0 deletions trunk/drivers/net/tg3.h
Original file line number Diff line number Diff line change
Expand Up @@ -2049,6 +2049,10 @@ struct tg3 {
spinlock_t lock;
spinlock_t indirect_lock;

u32 (*read32) (struct tg3 *, u32);
void (*write32) (struct tg3 *, u32, u32);
void (*write32_mbox) (struct tg3 *, u32,
u32);
void __iomem *regs;
struct net_device *dev;
struct pci_dev *pdev;
Expand All @@ -2060,6 +2064,8 @@ struct tg3 {
u32 msg_enable;

/* begin "tx thread" cacheline section */
void (*write32_tx_mbox) (struct tg3 *, u32,
u32);
u32 tx_prod;
u32 tx_cons;
u32 tx_pending;
Expand All @@ -2071,6 +2077,8 @@ struct tg3 {
dma_addr_t tx_desc_mapping;

/* begin "rx thread" cacheline section */
void (*write32_rx_mbox) (struct tg3 *, u32,
u32);
u32 rx_rcb_ptr;
u32 rx_std_ptr;
u32 rx_jumbo_ptr;
Expand Down

0 comments on commit 446797f

Please sign in to comment.