diff options
author | Paul Martin <paul.martin@codethink.co.uk> | 2015-03-30 12:00:59 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2015-04-01 11:22:14 -0400 |
commit | 8a5cc923af4298e7d40a434398743c03ef875fb1 (patch) | |
tree | 48e128edae8c587940f449f7257ff1cd14b223bb /drivers/staging | |
parent | f1e770cf51fc0567b7d2b1d242b5ab8d23399d09 (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.c | 3 | ||||
-rw-r--r-- | drivers/staging/octeon/ethernet.c | 10 |
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); |