diff options
author | John Linn <john.linn@xilinx.com> | 2010-04-08 07:08:02 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-04-13 01:33:44 -0700 |
commit | e44171f115de3dedf34064646206deb91549865f (patch) | |
tree | 94e7be7a6f9bbc6341a6915a12744ed451dcb75f /drivers/net/ll_temac.h | |
parent | 33646d7ff5f47225cbbf3a06597ded649bf34e8d (diff) | |
download | op-kernel-dev-e44171f115de3dedf34064646206deb91549865f.zip op-kernel-dev-e44171f115de3dedf34064646206deb91549865f.tar.gz |
Add non-Virtex5 support for LL TEMAC driver
This patch adds support for using the LL TEMAC Ethernet driver on
non-Virtex 5 platforms by adding support for accessing the Soft DMA
registers as if they were memory mapped instead of solely through the
DCR's (available on the Virtex 5).
The patch also updates the driver so that it runs on the MicroBlaze.
The changes were tested on the PowerPC 440, PowerPC 405, and the
MicroBlaze platforms.
Signed-off-by: John Tyner <jtyner@cs.ucr.edu>
Signed-off-by: John Linn <john.linn@xilinx.com>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ll_temac.h')
-rw-r--r-- | drivers/net/ll_temac.h | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/drivers/net/ll_temac.h b/drivers/net/ll_temac.h index 1af66a1..c033584 100644 --- a/drivers/net/ll_temac.h +++ b/drivers/net/ll_temac.h @@ -5,8 +5,11 @@ #include <linux/netdevice.h> #include <linux/of.h> #include <linux/spinlock.h> + +#ifdef CONFIG_PPC_DCR #include <asm/dcr.h> #include <asm/dcr-regs.h> +#endif /* packet size info */ #define XTE_HDR_SIZE 14 /* size of Ethernet header */ @@ -290,9 +293,6 @@ This option defaults to enabled (set) */ #define TX_CONTROL_CALC_CSUM_MASK 1 -#define XTE_ALIGN 32 -#define BUFFER_ALIGN(adr) ((XTE_ALIGN - ((u32) adr)) % XTE_ALIGN) - #define MULTICAST_CAM_TABLE_NUM 4 /* TX/RX CURDESC_PTR points to first descriptor */ @@ -335,9 +335,15 @@ struct temac_local { struct mii_bus *mii_bus; /* MII bus reference */ int mdio_irqs[PHY_MAX_ADDR]; /* IRQs table for MDIO bus */ - /* IO registers and IRQs */ + /* IO registers, dma functions and IRQs */ void __iomem *regs; + void __iomem *sdma_regs; +#ifdef CONFIG_PPC_DCR dcr_host_t sdma_dcrs; +#endif + u32 (*dma_in)(struct temac_local *, int); + void (*dma_out)(struct temac_local *, int, u32); + int tx_irq; int rx_irq; int emac_num; |