20#define TG3_DEF_RX_MODE 0
21#define TG3_DEF_TX_MODE 0
32#define TG3_TX_RING_BYTES (sizeof(struct tg3_tx_buffer_desc) * \
36#define TG3_RX_RCB_RING_BYTES(tp) \
37 (sizeof(struct tg3_rx_buffer_desc) * (TG3_RX_RET_MAX_SIZE_5705))
39#define TG3_RX_STD_RING_BYTES(tp) \
40 (sizeof(struct tg3_rx_buffer_desc) * TG3_RX_STD_MAX_SIZE_5700)
44{
DBGP(
"%s\n", __func__);
58{
DBGP(
"%s\n", __func__);
87{
DBGP(
"%s\n", __func__);
95 DBGC(
tp->dev,
"hw_status alloc failed\n");
100 sblk =
tp->hw_status;
105 DBGC(
tp->dev,
"rx prodring alloc failed\n");
142#define TG3_RX_STD_BUFF_RING_BYTES(tp) \
143 (sizeof(struct ring_info) * TG3_RX_STD_MAX_SIZE_5700)
144#define TG3_RX_STD_RING_BYTES(tp) \
145 (sizeof(struct tg3_rx_buffer_desc) * TG3_RX_STD_MAX_SIZE_5700)
155{
DBGP(
"%s\n", __func__);
181{
DBGP(
"%s\n", __func__);
195{
DBGP(
"%s\n", __func__);
210{
DBGP(
"%s\n", __func__);
216 tp->last_irq_tag = 0;
217 tp->hw_status->status = 0;
218 tp->hw_status->status_tag = 0;
231 DBGC(
tp->dev,
"tg3_rx_prodring_alloc() failed\n");
240{
DBGP(
"%s\n", __func__);
267{
DBGP(
"%s\n", __func__);
280static void tg3_dump_err_reg(
struct tg3 *
tp)
281{
DBGP(
"%s\n", __func__);
293{
DBGP(
"%s\n", __func__);
300#define NEXT_TX(N) (((N) + 1) & (TG3_TX_RING_SIZE - 1))
306{
DBGP(
"%s\n", __func__);
313 DBGC(
dev,
"Transmit ring full\n");
327 tp->tx_buffers[entry].iob = iob;
344{
DBGP(
"%s\n", __func__);
347 u32 hw_idx =
tp->hw_status->idx[0].tx_consumer;
348 u32 sw_idx =
tp->tx_cons;
350 while (sw_idx != hw_idx) {
351 struct io_buffer *iob =
tp->tx_buffers[sw_idx].iob;
353 DBGC2(dev,
"Transmitted packet: %zd bytes\n",
iob_len(iob));
359 tp->tx_cons = sw_idx;
362#define TG3_RX_STD_BUFF_RING_BYTES(tp) \
363 (sizeof(struct ring_info) * TG3_RX_STD_MAX_SIZE_5700)
364#define TG3_RX_STD_RING_BYTES(tp) \
365 (sizeof(struct tg3_rx_buffer_desc) * TG3_RX_STD_MAX_SIZE_5700)
379 u32 dest_idx_unmasked)
380{
DBGP(
"%s\n", __func__);
385 int dest_idx, iob_idx;
409 desc->addr_hi = ((
u64)mapping >> 32);
410 desc->addr_lo = ((
u64)mapping & 0xffffffff);
416{
DBGP(
"%s\n", __func__);
421 DBGCP(
tp->dev,
"%s\n", __func__);
426 DBGC(
tp->dev,
"alloc_iob() failed for descriptor %d\n", idx);
429 DBGC2(
tp->dev,
"allocated iob_buffer for descriptor %d\n", idx);
443{
DBGP(
"%s\n", __func__);
447 u32 sw_idx =
tp->rx_rcb_ptr;
451 hw_idx = *(
tp->rx_rcb_prod_idx);
453 while (sw_idx != hw_idx) {
460 DBGC2(dev,
"RX - desc_idx: %d sw_idx: %d hw_idx: %d\n", desc_idx, sw_idx, hw_idx);
467 DBGC(dev,
"Corrupted packet received\n");
475 DBGC2(dev,
"Received packet: %d bytes %d %d\n",
len, sw_idx, hw_idx);
485 if (
tp->rx_rcb_ptr != sw_idx) {
487 tp->rx_rcb_ptr = sw_idx;
494{
DBGP(
"%s\n", __func__);
512{
DBGP(
"%s\n", __func__);
516 DBGP(
"%s\n", __func__);
527{
DBGP(
"%s\n", __func__);
531 DBGP(
"%s: %d\n", __func__, enable);
547#define TEST_BUFFER_SIZE 0x2000
553{
DBGP(
"%s\n", __func__);
560 memset(&buf_map, 0,
sizeof(buf_map));
566 buf_dma =
dma(&buf_map, buf);
567 DBGC2(
tp->dev,
"dma test buffer, virt: %p phys: %#016lx\n", buf, buf_dma);
579 tp->dma_rwctrl |= 0x00180000;
583 tp->dma_rwctrl |= 0x003f0000;
585 tp->dma_rwctrl |= 0x003f000f;
590 u32 read_water = 0x7;
592 if (ccval == 0x6 || ccval == 0x7)
604 tp->dma_rwctrl |= 0x00144000;
607 tp->dma_rwctrl |= 0x00148000;
609 tp->dma_rwctrl |= 0x001b000f;
615 tp->dma_rwctrl &= 0xfffffff0;
662 "%s: Buffer write failed. err = %d\n",
673 "%s: Buffer corrupted on device! "
674 "(%d != %d)\n", __func__,
val, i);
683 DBGC(&
tp->pdev->dev,
"%s: Buffer read failed. "
684 "err = %d\n", __func__, ret);
701 "%s: Buffer corrupted on read back! "
702 "(%d != %d)\n", __func__, p[i], i);
734{
DBGP(
"%s\n", __func__);
739 unsigned long reg_base, reg_size;
747 goto err_out_disable_pdev;
793#if __BYTE_ORDER == __BIG_ENDIAN
803 DBGC(&
pdev->
dev,
"Failed to remap device registers\n");
805 goto err_out_disable_pdev;
810 DBGC(&
pdev->
dev,
"Problem fetching invariants of chip, aborting\n");
811 goto err_out_iounmap;
818 DBGC(&
pdev->
dev,
"Could not obtain valid ethernet address, aborting\n");
819 goto err_out_iounmap;
835 DBGC(&
pdev->
dev,
"DMA engine test failed, aborting\n");
836 goto err_out_iounmap;
847 DBGC(&
pdev->
dev,
"Cannot register net device, aborting\n");
848 goto err_out_iounmap;
856 DBGC(
tp->dev,
"tg3_setup_phy() call failed in %s\n", __func__);
857 goto err_out_iounmap;
876{
DBGP(
"%s\n", __func__);
886 PCI_ROM(0x106b, 0x1645,
"106b-1645",
"106b-1645", 0),
887 PCI_ROM(0x1148, 0x4400,
"1148-4400",
"1148-4400", 0),
888 PCI_ROM(0x1148, 0x4500,
"1148-4500",
"1148-4500", 0),
889 PCI_ROM(0x14e4, 0x1600,
"14e4-1600",
"14e4-1600", 0),
890 PCI_ROM(0x14e4, 0x1601,
"14e4-1601",
"14e4-1601", 0),
891 PCI_ROM(0x14e4, 0x1644,
"14e4-1644",
"14e4-1644", 0),
892 PCI_ROM(0x14e4, 0x1645,
"14e4-1645",
"14e4-1645", 0),
893 PCI_ROM(0x14e4, 0x1646,
"14e4-1646",
"14e4-1646", 0),
894 PCI_ROM(0x14e4, 0x1647,
"14e4-1647",
"14e4-1647", 0),
895 PCI_ROM(0x14e4, 0x1648,
"14e4-1648",
"14e4-1648", 0),
896 PCI_ROM(0x14e4, 0x1649,
"14e4-1649",
"14e4-1649", 0),
897 PCI_ROM(0x14e4, 0x164d,
"14e4-164d",
"14e4-164d", 0),
898 PCI_ROM(0x14e4, 0x1653,
"14e4-1653",
"14e4-1653", 0),
899 PCI_ROM(0x14e4, 0x1654,
"14e4-1654",
"14e4-1654", 0),
900 PCI_ROM(0x14e4, 0x1655,
"14e4-1655",
"14e4-1655", 0),
901 PCI_ROM(0x14e4, 0x1656,
"14e4-1656",
"14e4-1656", 0),
902 PCI_ROM(0x14e4, 0x1657,
"14e4-1657",
"14e4-1657", 0),
903 PCI_ROM(0x14e4, 0x1659,
"14e4-1659",
"14e4-1659", 0),
904 PCI_ROM(0x14e4, 0x165a,
"14e4-165a",
"14e4-165a", 0),
905 PCI_ROM(0x14e4, 0x165b,
"14e4-165b",
"14e4-165b", 0),
906 PCI_ROM(0x14e4, 0x165d,
"14e4-165d",
"14e4-165d", 0),
907 PCI_ROM(0x14e4, 0x165e,
"14e4-165e",
"14e4-165e", 0),
908 PCI_ROM(0x14e4, 0x165f,
"14e4-165f",
"14e4-165f", 0),
909 PCI_ROM(0x14e4, 0x1668,
"14e4-1668",
"14e4-1668", 0),
910 PCI_ROM(0x14e4, 0x1669,
"14e4-1669",
"14e4-1669", 0),
911 PCI_ROM(0x14e4, 0x166a,
"14e4-166a",
"14e4-166a", 0),
912 PCI_ROM(0x14e4, 0x166b,
"14e4-166b",
"14e4-166b", 0),
913 PCI_ROM(0x14e4, 0x166e,
"14e4-166e",
"14e4-166e", 0),
914 PCI_ROM(0x14e4, 0x1672,
"14e4-1672",
"14e4-1672", 0),
915 PCI_ROM(0x14e4, 0x1673,
"14e4-1673",
"14e4-1673", 0),
916 PCI_ROM(0x14e4, 0x1674,
"14e4-1674",
"14e4-1674", 0),
917 PCI_ROM(0x14e4, 0x1677,
"14e4-1677",
"14e4-1677", 0),
918 PCI_ROM(0x14e4, 0x1678,
"14e4-1678",
"14e4-1678", 0),
919 PCI_ROM(0x14e4, 0x1679,
"14e4-1679",
"14e4-1679", 0),
920 PCI_ROM(0x14e4, 0x167a,
"14e4-167a",
"14e4-167a", 0),
921 PCI_ROM(0x14e4, 0x167b,
"14e4-167b",
"14e4-167b", 0),
922 PCI_ROM(0x14e4, 0x167d,
"14e4-167d",
"14e4-167d", 0),
923 PCI_ROM(0x14e4, 0x167e,
"14e4-167e",
"14e4-167e", 0),
924 PCI_ROM(0x14e4, 0x167f,
"14e4-167f",
"14e4-167f", 0),
925 PCI_ROM(0x14e4, 0x1680,
"14e4-1680",
"14e4-1680", 0),
926 PCI_ROM(0x14e4, 0x1681,
"14e4-1681",
"14e4-1681", 0),
927 PCI_ROM(0x14e4, 0x1682,
"14e4-1682",
"14e4-1682", 0),
928 PCI_ROM(0x14e4, 0x1684,
"14e4-1684",
"14e4-1684", 0),
929 PCI_ROM(0x14e4, 0x1686,
"14e4-1686",
"14e4-1686", 0),
930 PCI_ROM(0x14e4, 0x1688,
"14e4-1688",
"14e4-1688", 0),
931 PCI_ROM(0x14e4, 0x1689,
"14e4-1689",
"14e4-1689", 0),
932 PCI_ROM(0x14e4, 0x1690,
"14e4-1690",
"14e4-1690", 0),
933 PCI_ROM(0x14e4, 0x1691,
"14e4-1691",
"14e4-1691", 0),
934 PCI_ROM(0x14e4, 0x1692,
"14e4-1692",
"14e4-1692", 0),
935 PCI_ROM(0x14e4, 0x1693,
"14e4-1693",
"14e4-1693", 0),
936 PCI_ROM(0x14e4, 0x1694,
"14e4-1694",
"14e4-1694", 0),
937 PCI_ROM(0x14e4, 0x1696,
"14e4-1696",
"14e4-1696", 0),
938 PCI_ROM(0x14e4, 0x1698,
"14e4-1698",
"14e4-1698", 0),
939 PCI_ROM(0x14e4, 0x1699,
"14e4-1699",
"14e4-1699", 0),
940 PCI_ROM(0x14e4, 0x169a,
"14e4-169a",
"14e4-169a", 0),
941 PCI_ROM(0x14e4, 0x169b,
"14e4-169b",
"14e4-169b", 0),
942 PCI_ROM(0x14e4, 0x169c,
"14e4-169c",
"14e4-169c", 0),
943 PCI_ROM(0x14e4, 0x169d,
"14e4-169d",
"14e4-169d", 0),
944 PCI_ROM(0x14e4, 0x16a0,
"14e4-16a0",
"14e4-16a0", 0),
945 PCI_ROM(0x14e4, 0x16a6,
"14e4-16a6",
"14e4-16a6", 0),
946 PCI_ROM(0x14e4, 0x16a7,
"14e4-16a7",
"14e4-16a7", 0),
947 PCI_ROM(0x14e4, 0x16a8,
"14e4-16a8",
"14e4-16a8", 0),
948 PCI_ROM(0x14e4, 0x16b0,
"14e4-16b0",
"14e4-16b0", 0),
949 PCI_ROM(0x14e4, 0x16b1,
"14e4-16b1",
"14e4-16b1", 0),
950 PCI_ROM(0x14e4, 0x16b2,
"14e4-16b2",
"14e4-16b2", 0),
951 PCI_ROM(0x14e4, 0x16b4,
"14e4-16b4",
"14e4-16b4", 0),
952 PCI_ROM(0x14e4, 0x16b5,
"14e4-16b5",
"14e4-16b5", 0),
953 PCI_ROM(0x14e4, 0x16b6,
"14e4-16b6",
"14e4-16b6", 0),
954 PCI_ROM(0x14e4, 0x16c6,
"14e4-16c6",
"14e4-16c6", 0),
955 PCI_ROM(0x14e4, 0x16c7,
"14e4-16c7",
"14e4-16c7", 0),
956 PCI_ROM(0x14e4, 0x16dd,
"14e4-16dd",
"14e4-16dd", 0),
957 PCI_ROM(0x14e4, 0x16f7,
"14e4-16f7",
"14e4-16f7", 0),
958 PCI_ROM(0x14e4, 0x16fd,
"14e4-16fd",
"14e4-16fd", 0),
959 PCI_ROM(0x14e4, 0x16fe,
"14e4-16fe",
"14e4-16fe", 0),
960 PCI_ROM(0x14e4, 0x170d,
"14e4-170d",
"14e4-170d", 0),
961 PCI_ROM(0x14e4, 0x170e,
"14e4-170e",
"14e4-170e", 0),
962 PCI_ROM(0x14e4, 0x1712,
"14e4-1712",
"14e4-1712", 0),
963 PCI_ROM(0x14e4, 0x1713,
"14e4-1713",
"14e4-1713", 0),
964 PCI_ROM(0x173b, 0x03e8,
"173b-03e8",
"173b-03e8", 0),
965 PCI_ROM(0x173b, 0x03e9,
"173b-03e9",
"173b-03e9", 0),
966 PCI_ROM(0x173b, 0x03ea,
"173b-03ea",
"173b-03ea", 0),
967 PCI_ROM(0x173b, 0x03eb,
"173b-03eb",
"173b-03eb", 0),
#define NULL
NULL pointer (VOID *).
#define assert(condition)
Assert a condition at run-time.
struct ena_llq_option desc
Descriptor counts.
int errno
Global "last error" number.
struct net_device * alloc_etherdev(size_t priv_size)
Allocate Ethernet device.
static struct net_device * netdev
#define __unused
Declare a variable or data structure as unused.
uint16_t size
Buffer size.
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
#define ENOENT
No such file or directory.
#define EINVAL
Invalid argument.
#define ENOMEM
Not enough space.
#define ENOBUFS
No buffer space available.
#define ENODEV
No such device.
#define le32_to_cpu(value)
#define barrier()
Optimisation barrier.
void mb(void)
Memory barrier.
void iounmap(volatile const void *io_addr)
Unmap I/O address.
int pci_read_config_word(struct pci_device *pci, unsigned int where, uint16_t *value)
Read 16-bit word from PCI configuration space.
void * pci_ioremap(struct pci_device *pci, unsigned long bus_addr, size_t len)
Map PCI bus address as an I/O address.
void * memset(void *dest, int character, size_t len) __nonnull
void iob_pad(struct io_buffer *iobuf, size_t min_len)
Pad I/O buffer.
struct io_buffer * alloc_rx_iob(size_t len, struct dma_device *dma)
Allocate and map I/O buffer for receive DMA.
void free_rx_iob(struct io_buffer *iobuf)
Unmap and free I/O buffer for receive DMA.
#define iob_put(iobuf, len)
static __always_inline physaddr_t iob_dma(struct io_buffer *iobuf)
Get I/O buffer DMA address.
static size_t iob_len(struct io_buffer *iobuf)
Calculate length of data in an I/O buffer.
static __always_inline void dma_set_mask_64bit(struct dma_device *dma)
Set 64-bit addressable space mask.
void dma_free(struct dma_mapping *map, void *addr, size_t len)
Unmap and free DMA-coherent buffer.
void * dma_alloc(struct dma_device *dma, struct dma_mapping *map, size_t len, size_t align)
Allocate and map DMA-coherent buffer.
physaddr_t dma(struct dma_mapping *map, void *addr)
Get DMA address from virtual address.
void * zalloc(size_t size)
Allocate cleared memory.
Dynamic memory allocation.
Media Independent Interface constants.
static unsigned int unsigned int reg
void netdev_rx(struct net_device *netdev, struct io_buffer *iobuf)
Add packet to receive queue.
void unregister_netdev(struct net_device *netdev)
Unregister network device.
void netdev_rx_err(struct net_device *netdev, struct io_buffer *iobuf, int rc)
Discard received packet.
int register_netdev(struct net_device *netdev)
Register network device.
Network device management.
static void netdev_init(struct net_device *netdev, struct net_device_operations *op)
Initialise a network device.
static void netdev_nullify(struct net_device *netdev)
Stop using a network device.
static void netdev_put(struct net_device *netdev)
Drop reference to network device.
static void netdev_tx_complete(struct net_device *netdev, struct io_buffer *iobuf)
Complete network transmission.
unsigned long pci_bar_size(struct pci_device *pci, unsigned int reg)
Get the size of a PCI BAR.
void adjust_pci_device(struct pci_device *pci)
Enable PCI device.
unsigned long pci_bar_start(struct pci_device *pci, unsigned int reg)
Find the start of a PCI BAR.
#define __pci_driver
Declare a PCI driver.
#define PCI_SUBSYSTEM_ID
PCI subsystem ID.
static void pci_set_drvdata(struct pci_device *pci, void *priv)
Set PCI driver-private data.
#define PCI_ROM(_vendor, _device, _name, _description, _data)
#define PCI_BASE_ADDRESS_0
static void * pci_get_drvdata(struct pci_device *pci)
Get PCI driver-private data.
#define PCI_SUBSYSTEM_VENDOR_ID
PCI subsystem vendor ID.
static void(* free)(struct refcnt *refcnt))
char * strerror(int errno)
Retrieve string representation of error number.
Network device operations.
void * priv
Driver private data.
struct dma_device * dma
DMA device.
struct device * dev
Underlying hardware device.
A PCI device ID list entry.
struct device dev
Generic device.
struct dma_device dma
DMA device.
struct tg3_hw_status::@346154016361251030104324040037321237160035164370 idx[16]
struct tg3_rx_buffer_desc * rx_std
struct dma_mapping rx_std_map
struct io_buffer * rx_iobufs[TG3_DEF_RX_RING_PENDING]
void tg3_rx_prodring_fini(struct tg3 __unused *tp, struct tg3_rx_prodring_set *tpr)
static int tg3_transmit(struct net_device *dev, struct io_buffer *iob)
static int tg3_open(struct net_device *dev)
int tg3_do_test_dma(struct tg3 *tp, u32 __unused *buf, physaddr_t buf_dma, int size, int to_device)
#define TG3_TX_RING_BYTES
static int tg3_test_dma(struct tg3 *tp)
static void tg3_irq(struct net_device *dev, int enable)
static u32 tg3_tx_avail(struct tg3 *tp)
static struct pci_device_id tg3_nics[]
static void tg3_refill_prod_ring(struct tg3 *tp)
#define TG3_RX_RCB_RING_BYTES(tp)
static void tg3_rx_iob_free(struct io_buffer *iobs[], int i)
static void tg3_remove_one(struct pci_device *pci)
static int tg3_alloc_rx_iob(struct tg3 *tp, struct tg3_rx_prodring_set *tpr, u32 dest_idx_unmasked)
static int tg3_rx_prodring_alloc(struct tg3 __unused *tp, struct tg3_rx_prodring_set *tpr)
static void tg3_free_consistent(struct tg3 *tp)
void tg3_read_mem(struct tg3 *tp, u32 off, u32 *val)
static void tg3_rx_complete(struct net_device *dev)
static int tg3_init_one(struct pci_device *pdev)
static void tg3_rx_prodring_free(struct tg3_rx_prodring_set *tpr)
int tg3_alloc_consistent(struct tg3 *tp)
#define TG3_RX_STD_RING_BYTES(tp)
int tg3_init_rings(struct tg3 *tp)
static struct net_device_operations tg3_netdev_ops
static void tg3_tx_complete(struct net_device *dev)
static void tg3_poll(struct net_device *dev)
static void tg3_close(struct net_device *dev)
#define MISC_HOST_CTRL_INDIR_ACCESS
void tg3_set_power_state_0(struct tg3 *tp)
#define TG3_DMA_ALIGNMENT
int tg3_init_hw(struct tg3 *tp, int reset_phy)
#define TG3_RX_STD_DMA_SZ
#define tw32_tx_mbox(reg, val)
#define DMA_RWCTRL_PCI_WRITE_CMD_SHIFT
#define MAILBOX_INTERRUPT_0
#define TG3PCI_DMA_RW_CTRL
#define MAILBOX_SNDHOST_PROD_IDX_0
#define TG3_HW_STATUS_SIZE
#define DMA_RWCTRL_WRITE_BNDRY_MASK
#define TG3_DEF_TX_RING_PENDING
#define RXD_ERR_ODD_NIBBLE_RCVD_MII
#define GRC_MODE_WSWAP_DATA
#define GET_ASIC_REV(CHIP_REV_ID)
#define tg3_flag(tp, flag)
#define MISC_HOST_CTRL_PCISTATE_RW
#define DMA_RWCTRL_PCI_READ_CMD_SHIFT
void tg3_enable_ints(struct tg3 *tp)
#define MISC_HOST_CTRL_MASK_PCI_INT
#define TG3_RX_STD_PROD_IDX_REG
#define TG3_DEF_RX_RING_PENDING
#define TG3PCI_CLOCK_CTRL
#define GRC_MODE_WSWAP_NONFRM_DATA
#define SD_STATUS_UPDATED
#define MAILBOX_RCVRET_CON_IDX_0
#define tg3_flag_clear(tp, flag)
void tg3_set_txd(struct tg3 *tp, int entry, physaddr_t mapping, int len, u32 flags)
#define WDMAC_MODE_ENABLE
void tg3_init_bufmgr_config(struct tg3 *tp)
#define DMA_RWCTRL_USE_MEM_READ_MULT
int tg3_get_invariants(struct tg3 *tp)
#define TG3_RX_STD_MAX_SIZE_5700
int tg3_halt(struct tg3 *tp)
#define MISC_HOST_CTRL_WORD_SWAP
#define RXD_OPAQUE_RING_STD
#define DMA_RWCTRL_ONE_DMA
#define GRC_MODE_BSWAP_DATA
int tg3_setup_phy(struct tg3 *tp, int force_reset)
void tg3_poll_link(struct tg3 *tp)
#define TG3_RX_RET_MAX_SIZE_5705
void __tg3_set_mac_addr(struct tg3 *tp, int skip_mac_1)
#define tw32_rx_mbox(reg, val)
#define RXD_OPAQUE_INDEX_SHIFT
#define DMA_RWCTRL_DIS_CACHE_ALIGNMENT
#define HOSTCC_MODE_ENABLE
#define tw32_mailbox(reg, val)
define tw32_mailbox(reg, val) tg3_write_indirect_mbox(((val) & 0xffffffff), tp->regs + (reg))
#define MEMARB_MODE_ENABLE
#define DMA_RWCTRL_READ_WATER_SHIFT
#define RXD_OPAQUE_INDEX_MASK
void tg3_disable_ints(struct tg3 *tp)
#define TG3_64BIT_REG_LOW
int tg3_get_device_address(struct tg3 *tp)
#define DMA_RWCTRL_WRITE_WATER_SHIFT
#define DMA_RWCTRL_ASSERT_ALL_BE
#define DMA_RWCTRL_WRITE_BNDRY_16
#define GRC_MODE_BSWAP_NONFRM_DATA
static void tg3_switch_clocks(struct tg3 *tp)
static struct tulip_private * tp
int printf(const char *fmt,...)
Write a formatted string to the console.