aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging
diff options
context:
space:
mode:
authorPaul Martin <paul.martin@codethink.co.uk>2015-03-30 12:00:59 -0400
committerRalf Baechle <ralf@linux-mips.org>2015-04-01 11:22:14 -0400
commit8a5cc923af4298e7d40a434398743c03ef875fb1 (patch)
tree48e128edae8c587940f449f7257ff1cd14b223bb /drivers/staging
parentf1e770cf51fc0567b7d2b1d242b5ab8d23399d09 (diff)
MIPS: Octeon: Set up ethernet hardware for little endian
Signed-off-by: Paul Martin <paul.martin@codethink.co.uk> Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/9635/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'drivers/staging')
-rw-r--r--drivers/staging/octeon/ethernet-tx.c3
-rw-r--r--drivers/staging/octeon/ethernet.c10
2 files changed, 13 insertions, 0 deletions
diff --git a/drivers/staging/octeon/ethernet-tx.c b/drivers/staging/octeon/ethernet-tx.c
index b7a7854d3f7e..a078b903a168 100644
--- a/drivers/staging/octeon/ethernet-tx.c
+++ b/drivers/staging/octeon/ethernet-tx.c
@@ -274,6 +274,9 @@ int cvm_oct_xmit(struct sk_buff *skb, struct net_device *dev)
274 274
275 /* Build the PKO command */ 275 /* Build the PKO command */
276 pko_command.u64 = 0; 276 pko_command.u64 = 0;
277#ifdef __LITTLE_ENDIAN
278 pko_command.s.le = 1;
279#endif
277 pko_command.s.n2 = 1; /* Don't pollute L2 with the outgoing packet */ 280 pko_command.s.n2 = 1; /* Don't pollute L2 with the outgoing packet */
278 pko_command.s.segs = 1; 281 pko_command.s.segs = 1;
279 pko_command.s.total_bytes = skb->len; 282 pko_command.s.total_bytes = skb->len;
diff --git a/drivers/staging/octeon/ethernet.c b/drivers/staging/octeon/ethernet.c
index 460e8545904f..85618f155ffa 100644
--- a/drivers/staging/octeon/ethernet.c
+++ b/drivers/staging/octeon/ethernet.c
@@ -170,6 +170,16 @@ static void cvm_oct_configure_common_hw(void)
170 cvm_oct_mem_fill_fpa(CVMX_FPA_OUTPUT_BUFFER_POOL, 170 cvm_oct_mem_fill_fpa(CVMX_FPA_OUTPUT_BUFFER_POOL,
171 CVMX_FPA_OUTPUT_BUFFER_POOL_SIZE, 128); 171 CVMX_FPA_OUTPUT_BUFFER_POOL_SIZE, 128);
172 172
173#ifdef __LITTLE_ENDIAN
174 {
175 union cvmx_ipd_ctl_status ipd_ctl_status;
176 ipd_ctl_status.u64 = cvmx_read_csr(CVMX_IPD_CTL_STATUS);
177 ipd_ctl_status.s.pkt_lend = 1;
178 ipd_ctl_status.s.wqe_lend = 1;
179 cvmx_write_csr(CVMX_IPD_CTL_STATUS, ipd_ctl_status.u64);
180 }
181#endif
182
173 if (USE_RED) 183 if (USE_RED)
174 cvmx_helper_setup_red(num_packet_buffers / 4, 184 cvmx_helper_setup_red(num_packet_buffers / 4,
175 num_packet_buffers / 8); 185 num_packet_buffers / 8);