|
@@ -30,7 +30,7 @@ static int enh_desc_get_tx_status(void *data, struct stmmac_extra_stats *x,
|
|
struct dma_desc *p, void __iomem *ioaddr)
|
|
struct dma_desc *p, void __iomem *ioaddr)
|
|
{
|
|
{
|
|
struct net_device_stats *stats = (struct net_device_stats *)data;
|
|
struct net_device_stats *stats = (struct net_device_stats *)data;
|
|
- unsigned int tdes0 = p->des0;
|
|
|
|
|
|
+ unsigned int tdes0 = le32_to_cpu(p->des0);
|
|
int ret = tx_done;
|
|
int ret = tx_done;
|
|
|
|
|
|
/* Get tx owner first */
|
|
/* Get tx owner first */
|
|
@@ -95,7 +95,7 @@ static int enh_desc_get_tx_status(void *data, struct stmmac_extra_stats *x,
|
|
|
|
|
|
static int enh_desc_get_tx_len(struct dma_desc *p)
|
|
static int enh_desc_get_tx_len(struct dma_desc *p)
|
|
{
|
|
{
|
|
- return (p->des1 & ETDES1_BUFFER1_SIZE_MASK);
|
|
|
|
|
|
+ return (le32_to_cpu(p->des1) & ETDES1_BUFFER1_SIZE_MASK);
|
|
}
|
|
}
|
|
|
|
|
|
static int enh_desc_coe_rdes0(int ipc_err, int type, int payload_err)
|
|
static int enh_desc_coe_rdes0(int ipc_err, int type, int payload_err)
|
|
@@ -134,8 +134,8 @@ static int enh_desc_coe_rdes0(int ipc_err, int type, int payload_err)
|
|
static void enh_desc_get_ext_status(void *data, struct stmmac_extra_stats *x,
|
|
static void enh_desc_get_ext_status(void *data, struct stmmac_extra_stats *x,
|
|
struct dma_extended_desc *p)
|
|
struct dma_extended_desc *p)
|
|
{
|
|
{
|
|
- unsigned int rdes0 = p->basic.des0;
|
|
|
|
- unsigned int rdes4 = p->des4;
|
|
|
|
|
|
+ unsigned int rdes0 = le32_to_cpu(p->basic.des0);
|
|
|
|
+ unsigned int rdes4 = le32_to_cpu(p->des4);
|
|
|
|
|
|
if (unlikely(rdes0 & ERDES0_RX_MAC_ADDR)) {
|
|
if (unlikely(rdes0 & ERDES0_RX_MAC_ADDR)) {
|
|
int message_type = (rdes4 & ERDES4_MSG_TYPE_MASK) >> 8;
|
|
int message_type = (rdes4 & ERDES4_MSG_TYPE_MASK) >> 8;
|
|
@@ -191,7 +191,7 @@ static int enh_desc_get_rx_status(void *data, struct stmmac_extra_stats *x,
|
|
struct dma_desc *p)
|
|
struct dma_desc *p)
|
|
{
|
|
{
|
|
struct net_device_stats *stats = (struct net_device_stats *)data;
|
|
struct net_device_stats *stats = (struct net_device_stats *)data;
|
|
- unsigned int rdes0 = p->des0;
|
|
|
|
|
|
+ unsigned int rdes0 = le32_to_cpu(p->des0);
|
|
int ret = good_frame;
|
|
int ret = good_frame;
|
|
|
|
|
|
if (unlikely(rdes0 & RDES0_OWN))
|
|
if (unlikely(rdes0 & RDES0_OWN))
|
|
@@ -257,8 +257,8 @@ static int enh_desc_get_rx_status(void *data, struct stmmac_extra_stats *x,
|
|
static void enh_desc_init_rx_desc(struct dma_desc *p, int disable_rx_ic,
|
|
static void enh_desc_init_rx_desc(struct dma_desc *p, int disable_rx_ic,
|
|
int mode, int end)
|
|
int mode, int end)
|
|
{
|
|
{
|
|
- p->des0 |= RDES0_OWN;
|
|
|
|
- p->des1 |= ((BUF_SIZE_8KiB - 1) & ERDES1_BUFFER1_SIZE_MASK);
|
|
|
|
|
|
+ p->des0 |= cpu_to_le32(RDES0_OWN);
|
|
|
|
+ p->des1 |= cpu_to_le32((BUF_SIZE_8KiB - 1) & ERDES1_BUFFER1_SIZE_MASK);
|
|
|
|
|
|
if (mode == STMMAC_CHAIN_MODE)
|
|
if (mode == STMMAC_CHAIN_MODE)
|
|
ehn_desc_rx_set_on_chain(p);
|
|
ehn_desc_rx_set_on_chain(p);
|
|
@@ -266,12 +266,12 @@ static void enh_desc_init_rx_desc(struct dma_desc *p, int disable_rx_ic,
|
|
ehn_desc_rx_set_on_ring(p, end);
|
|
ehn_desc_rx_set_on_ring(p, end);
|
|
|
|
|
|
if (disable_rx_ic)
|
|
if (disable_rx_ic)
|
|
- p->des1 |= ERDES1_DISABLE_IC;
|
|
|
|
|
|
+ p->des1 |= cpu_to_le32(ERDES1_DISABLE_IC);
|
|
}
|
|
}
|
|
|
|
|
|
static void enh_desc_init_tx_desc(struct dma_desc *p, int mode, int end)
|
|
static void enh_desc_init_tx_desc(struct dma_desc *p, int mode, int end)
|
|
{
|
|
{
|
|
- p->des0 &= ~ETDES0_OWN;
|
|
|
|
|
|
+ p->des0 &= cpu_to_le32(~ETDES0_OWN);
|
|
if (mode == STMMAC_CHAIN_MODE)
|
|
if (mode == STMMAC_CHAIN_MODE)
|
|
enh_desc_end_tx_desc_on_chain(p);
|
|
enh_desc_end_tx_desc_on_chain(p);
|
|
else
|
|
else
|
|
@@ -280,27 +280,27 @@ static void enh_desc_init_tx_desc(struct dma_desc *p, int mode, int end)
|
|
|
|
|
|
static int enh_desc_get_tx_owner(struct dma_desc *p)
|
|
static int enh_desc_get_tx_owner(struct dma_desc *p)
|
|
{
|
|
{
|
|
- return (p->des0 & ETDES0_OWN) >> 31;
|
|
|
|
|
|
+ return (le32_to_cpu(p->des0) & ETDES0_OWN) >> 31;
|
|
}
|
|
}
|
|
|
|
|
|
static void enh_desc_set_tx_owner(struct dma_desc *p)
|
|
static void enh_desc_set_tx_owner(struct dma_desc *p)
|
|
{
|
|
{
|
|
- p->des0 |= ETDES0_OWN;
|
|
|
|
|
|
+ p->des0 |= cpu_to_le32(ETDES0_OWN);
|
|
}
|
|
}
|
|
|
|
|
|
static void enh_desc_set_rx_owner(struct dma_desc *p)
|
|
static void enh_desc_set_rx_owner(struct dma_desc *p)
|
|
{
|
|
{
|
|
- p->des0 |= RDES0_OWN;
|
|
|
|
|
|
+ p->des0 |= cpu_to_le32(RDES0_OWN);
|
|
}
|
|
}
|
|
|
|
|
|
static int enh_desc_get_tx_ls(struct dma_desc *p)
|
|
static int enh_desc_get_tx_ls(struct dma_desc *p)
|
|
{
|
|
{
|
|
- return (p->des0 & ETDES0_LAST_SEGMENT) >> 29;
|
|
|
|
|
|
+ return (le32_to_cpu(p->des0) & ETDES0_LAST_SEGMENT) >> 29;
|
|
}
|
|
}
|
|
|
|
|
|
static void enh_desc_release_tx_desc(struct dma_desc *p, int mode)
|
|
static void enh_desc_release_tx_desc(struct dma_desc *p, int mode)
|
|
{
|
|
{
|
|
- int ter = (p->des0 & ETDES0_END_RING) >> 21;
|
|
|
|
|
|
+ int ter = (le32_to_cpu(p->des0) & ETDES0_END_RING) >> 21;
|
|
|
|
|
|
memset(p, 0, offsetof(struct dma_desc, des2));
|
|
memset(p, 0, offsetof(struct dma_desc, des2));
|
|
if (mode == STMMAC_CHAIN_MODE)
|
|
if (mode == STMMAC_CHAIN_MODE)
|
|
@@ -313,7 +313,7 @@ static void enh_desc_prepare_tx_desc(struct dma_desc *p, int is_fs, int len,
|
|
bool csum_flag, int mode, bool tx_own,
|
|
bool csum_flag, int mode, bool tx_own,
|
|
bool ls)
|
|
bool ls)
|
|
{
|
|
{
|
|
- unsigned int tdes0 = p->des0;
|
|
|
|
|
|
+ unsigned int tdes0 = le32_to_cpu(p->des0);
|
|
|
|
|
|
if (mode == STMMAC_CHAIN_MODE)
|
|
if (mode == STMMAC_CHAIN_MODE)
|
|
enh_set_tx_desc_len_on_chain(p, len);
|
|
enh_set_tx_desc_len_on_chain(p, len);
|
|
@@ -344,12 +344,12 @@ static void enh_desc_prepare_tx_desc(struct dma_desc *p, int is_fs, int len,
|
|
*/
|
|
*/
|
|
wmb();
|
|
wmb();
|
|
|
|
|
|
- p->des0 = tdes0;
|
|
|
|
|
|
+ p->des0 = cpu_to_le32(tdes0);
|
|
}
|
|
}
|
|
|
|
|
|
static void enh_desc_set_tx_ic(struct dma_desc *p)
|
|
static void enh_desc_set_tx_ic(struct dma_desc *p)
|
|
{
|
|
{
|
|
- p->des0 |= ETDES0_INTERRUPT;
|
|
|
|
|
|
+ p->des0 |= cpu_to_le32(ETDES0_INTERRUPT);
|
|
}
|
|
}
|
|
|
|
|
|
static int enh_desc_get_rx_frame_len(struct dma_desc *p, int rx_coe_type)
|
|
static int enh_desc_get_rx_frame_len(struct dma_desc *p, int rx_coe_type)
|
|
@@ -364,18 +364,18 @@ static int enh_desc_get_rx_frame_len(struct dma_desc *p, int rx_coe_type)
|
|
if (rx_coe_type == STMMAC_RX_COE_TYPE1)
|
|
if (rx_coe_type == STMMAC_RX_COE_TYPE1)
|
|
csum = 2;
|
|
csum = 2;
|
|
|
|
|
|
- return (((p->des0 & RDES0_FRAME_LEN_MASK) >> RDES0_FRAME_LEN_SHIFT) -
|
|
|
|
- csum);
|
|
|
|
|
|
+ return (((le32_to_cpu(p->des0) & RDES0_FRAME_LEN_MASK)
|
|
|
|
+ >> RDES0_FRAME_LEN_SHIFT) - csum);
|
|
}
|
|
}
|
|
|
|
|
|
static void enh_desc_enable_tx_timestamp(struct dma_desc *p)
|
|
static void enh_desc_enable_tx_timestamp(struct dma_desc *p)
|
|
{
|
|
{
|
|
- p->des0 |= ETDES0_TIME_STAMP_ENABLE;
|
|
|
|
|
|
+ p->des0 |= cpu_to_le32(ETDES0_TIME_STAMP_ENABLE);
|
|
}
|
|
}
|
|
|
|
|
|
static int enh_desc_get_tx_timestamp_status(struct dma_desc *p)
|
|
static int enh_desc_get_tx_timestamp_status(struct dma_desc *p)
|
|
{
|
|
{
|
|
- return (p->des0 & ETDES0_TIME_STAMP_STATUS) >> 17;
|
|
|
|
|
|
+ return (le32_to_cpu(p->des0) & ETDES0_TIME_STAMP_STATUS) >> 17;
|
|
}
|
|
}
|
|
|
|
|
|
static u64 enh_desc_get_timestamp(void *desc, u32 ats)
|
|
static u64 enh_desc_get_timestamp(void *desc, u32 ats)
|
|
@@ -384,13 +384,13 @@ static u64 enh_desc_get_timestamp(void *desc, u32 ats)
|
|
|
|
|
|
if (ats) {
|
|
if (ats) {
|
|
struct dma_extended_desc *p = (struct dma_extended_desc *)desc;
|
|
struct dma_extended_desc *p = (struct dma_extended_desc *)desc;
|
|
- ns = p->des6;
|
|
|
|
|
|
+ ns = le32_to_cpu(p->des6);
|
|
/* convert high/sec time stamp value to nanosecond */
|
|
/* convert high/sec time stamp value to nanosecond */
|
|
- ns += p->des7 * 1000000000ULL;
|
|
|
|
|
|
+ ns += le32_to_cpu(p->des7) * 1000000000ULL;
|
|
} else {
|
|
} else {
|
|
struct dma_desc *p = (struct dma_desc *)desc;
|
|
struct dma_desc *p = (struct dma_desc *)desc;
|
|
- ns = p->des2;
|
|
|
|
- ns += p->des3 * 1000000000ULL;
|
|
|
|
|
|
+ ns = le32_to_cpu(p->des2);
|
|
|
|
+ ns += le32_to_cpu(p->des3) * 1000000000ULL;
|
|
}
|
|
}
|
|
|
|
|
|
return ns;
|
|
return ns;
|
|
@@ -400,10 +400,11 @@ static int enh_desc_get_rx_timestamp_status(void *desc, u32 ats)
|
|
{
|
|
{
|
|
if (ats) {
|
|
if (ats) {
|
|
struct dma_extended_desc *p = (struct dma_extended_desc *)desc;
|
|
struct dma_extended_desc *p = (struct dma_extended_desc *)desc;
|
|
- return (p->basic.des0 & RDES0_IPC_CSUM_ERROR) >> 7;
|
|
|
|
|
|
+ return (le32_to_cpu(p->basic.des0) & RDES0_IPC_CSUM_ERROR) >> 7;
|
|
} else {
|
|
} else {
|
|
struct dma_desc *p = (struct dma_desc *)desc;
|
|
struct dma_desc *p = (struct dma_desc *)desc;
|
|
- if ((p->des2 == 0xffffffff) && (p->des3 == 0xffffffff))
|
|
|
|
|
|
+ if ((le32_to_cpu(p->des2) == 0xffffffff) &&
|
|
|
|
+ (le32_to_cpu(p->des3) == 0xffffffff))
|
|
/* timestamp is corrupted, hence don't store it */
|
|
/* timestamp is corrupted, hence don't store it */
|
|
return 0;
|
|
return 0;
|
|
else
|
|
else
|