net: zynq_gem: Add d-cache support
authorSrikanth Thokala <sthokal@xilinx.com>
Fri, 8 Nov 2013 17:25:48 +0000 (22:55 +0530)
committerJoe Hershberger <joe.hershberger@ni.com>
Fri, 22 Nov 2013 23:03:20 +0000 (17:03 -0600)
commita5144237ac6dce3a38a73a51c217636a37d1e0b6
treeb2c094865cd1f7f89350995e438862975d04692f
parentf27f3b5266d28b8d3e80e0e8f4cafdd14268b62a
net: zynq_gem: Add d-cache support

Added d-cache support for zynq_gem.c,
Observed a difference of +0.8 MiB/s when downloading
a file of size of 3007944Bytes.

With d-cache OFF:
----------------
Filename 'uImage'.
Load address: 0x800
Loading: #################################################################
         #################################################################
         #################################################################
         ##########
         1.3 MiB/s
done
Bytes transferred = 3007944 (2de5c8 hex)

With d-cache ON:
---------------
Filename 'uImage'.
Load address: 0x800
Loading: #################################################################
         #################################################################
         #################################################################
         ##########
         2.1 MiB/s
done
Bytes transferred = 3007944 (2de5c8 hex)

Changes on zynq_gem for d-cache support:
- Tx and Rx buffers are cache-aligned
- Updated logic for invalidating Rx buffers and flushing Tx buffers.
- Tx and Rx BD's are allocated from non-cacheable region.
  (When BDs are cached, we don't see a consistent link)
- Use TX BD status intead of txsr status checks.

Signed-off-by: Srikanth Thokala <sthokal@xilinx.com>
Signed-off-by: Jagannadha Sutradharudu Teki <jaganna@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
drivers/net/zynq_gem.c