I'd call this more of "adding ARM specific code to the common acp_net
driver" .. rather than cleanup.

Bruce

On 11/7/2013, 8:13 PM, Paul Butler wrote:
Signed-off-by: Paul Butler <paul.but...@windriver.com>
---
  drivers/net/ethernet/lsi/lsi_acp_net.h | 76 +++++++++++++++++++++++++++++++---
  1 file changed, 71 insertions(+), 5 deletions(-)

diff --git a/drivers/net/ethernet/lsi/lsi_acp_net.h 
b/drivers/net/ethernet/lsi/lsi_acp_net.h
index f7de38d..9289073 100644
--- a/drivers/net/ethernet/lsi/lsi_acp_net.h
+++ b/drivers/net/ethernet/lsi/lsi_acp_net.h
@@ -40,6 +40,29 @@ extern int ubootenv_get(const char *, char *);

  struct appnic_dma_descriptor {

+#ifdef CONFIG_ARM
+       /* Word 0 */
+       /* 00=Fill|01=Block|10=Scatter */
+       unsigned long transfer_type:2;
+       unsigned long write:1;
+       unsigned long start_of_packet:1;
+       unsigned long end_of_packet:1;
+       unsigned long interrupt_on_completion:1;
+       unsigned long error:1;
+       /* big endian to little endian */
+       unsigned long byte_swapping_on:1;
+       unsigned long unused:24;
+
+       /* Word 1 */
+       unsigned long data_transfer_length:16;
+       unsigned long pdu_length:16;
+
+       /* Word 2 */
+       unsigned long target_memory_address;
+
+       /* Word 3 */
+       unsigned long host_data_memory_pointer;
+#else
        /* Word 0 */
        unsigned long unused:24;
        /* big endian to little endian */
@@ -61,20 +84,27 @@ struct appnic_dma_descriptor {

        /* Word 3 */
        unsigned long host_data_memory_pointer;
+#endif

-} __packed;
+} __attribute__ ((packed));

  union appnic_queue_pointer {

        unsigned long raw;

        struct {
+#ifdef CONFIG_ARM
+               unsigned long offset:20;
+               unsigned long generation_bit:1;
+               unsigned long unused:11;
+#else
                unsigned long unused:11;
                unsigned long generation_bit:1;
                unsigned long offset:20;
-       } __packed bits;
+#endif
+       } __attribute__ ((packed)) bits;

-} __packed;
+} __attribute__ ((packed));

  /*
    
=============================================================================
@@ -91,10 +121,15 @@ struct appnic_device {
        unsigned long rx_base;
        unsigned long tx_base;
        unsigned long dma_base;
-       unsigned long interrupt;
+       unsigned long tx_interrupt;
+       unsigned long rx_interrupt;
+       unsigned long dma_interrupt;
        unsigned long mdio_clock;
        unsigned long phy_address;
        unsigned long ad_value;
+       unsigned long phy_link_auto;
+       unsigned long phy_link_speed;
+       unsigned long phy_link_duplex;
        unsigned char mac_addr[6];

        /* NAPI */
@@ -436,6 +471,36 @@ struct appnic_device {
  #define APPNIC_DMA_TX_TAIL_POINTER_LOCAL_COPY_GB      0x100000
  #define APPNIC_DMA_TX_TAIL_POINTER_LOCAL_COPY_POINTER 0x0fffff

+#ifdef CONFIG_ARM
+
+#define read_mac(address)         readl((address))
+#define write_mac(value, address) writel((value), (address))
+
+static inline void
+readdescriptor(unsigned long address, struct appnic_dma_descriptor *descriptor)
+{
+       memcpy(descriptor, (void *)address,
+              sizeof(struct appnic_dma_descriptor));
+       return;
+}
+
+static inline void
+writedescriptor(unsigned long address,
+               const struct appnic_dma_descriptor *descriptor)
+{
+       memcpy((void *)address, descriptor,
+              sizeof(struct appnic_dma_descriptor));
+       return;
+}
+
+static inline union appnic_queue_pointer
+swab_queue_pointer(const union appnic_queue_pointer *old_queue)
+{
+       return *old_queue;
+}
+
+#else
+
  #define read_mac(address)         in_le32((u32 *) (address))
  #define write_mac(value, address) out_le32((u32 *) (address), (value))

@@ -454,7 +519,7 @@ readdescriptor(unsigned long address, struct 
appnic_dma_descriptor *descriptor)

  static inline void
  writedescriptor(unsigned long address,
-                const struct appnic_dma_descriptor *descriptor)
+               const struct appnic_dma_descriptor *descriptor)
  {
        unsigned long *to = (unsigned long *) address;
        unsigned long *from = (unsigned long *) descriptor;
@@ -473,6 +538,7 @@ swab_queue_pointer(const union appnic_queue_pointer 
*old_queue)
        new_queue.raw = swab32(old_queue->raw);
        return new_queue;
  }
+#endif /* ifdef CONFIG_ARM */

  #define SWAB_QUEUE_POINTER(pointer) \
  swab_queue_pointer((const union appnic_queue_pointer *) (pointer))


_______________________________________________
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto

Reply via email to