| e0059eae | 05-Feb-2014 |
Lukasz Majewski <l.majewski@samsung.com> |
usb:udc:samsung: Zero copy approach for data passed to Samsung's UDC driver
The Samsung's UDC driver is not anymore copying data from USB requests to aligned internal buffers. Now it works directly
usb:udc:samsung: Zero copy approach for data passed to Samsung's UDC driver
The Samsung's UDC driver is not anymore copying data from USB requests to aligned internal buffers. Now it works directly in data allocated in the upper layers like UMS, DFU, THOR.
This change is possible since those gadgets now must take care to allocate buffers aligned to cache line (CONFIG_SYS_CACHELINE_SIZE).
This can be achieved by using DEFINE_CACHE_ALIGN_BUFFER() or ALLOC_CACHE_ALIGN_BUFFER() macros. Those take care to allocate buffer aligned to cache line in both starting address and its size. Sometimes it is enough to just use memalign() with size being a multiplication of cache line size.
Test condition - test HW + measurement: Trats - Exynos4210 rev.1 - test HW Trats2 - Exynos4412 rev.1 400 MiB compressed rootfs image download with `thor 0 mmc 0`
Measurement: Transmission speed: 27.04 MiB/s
Signed-off-by: Lukasz Majewski <l.majewski@samsung.com> Cc: Marek Vasut <marex@denx.de>
show more ...
|
| 9c982218 | 05-Feb-2014 |
Lukasz Majewski <l.majewski@samsung.com> |
usb:udc:samsung: Allow burst transfers for non EP0 endpints
This patch removed obscure restriction on the HW setting of DMA transfers. Before this change each transaction sent up to 512 bytes (with
usb:udc:samsung: Allow burst transfers for non EP0 endpints
This patch removed obscure restriction on the HW setting of DMA transfers. Before this change each transaction sent up to 512 bytes (with packet count equal to 1) for non EP0 transfer.
Now it is possible to setup DMA transaction up to DMA_BUFFER_SIZE.
Test condition - test HW + measurement: Trats - Exynos4210 rev.1 - test HW Trats2 - Exynos4412 rev.1 400 MiB compressed rootfs image download with `thor 0 mmc 0`
Measurement: Transmission speed: 20.74 MiB/s
Signed-off-by: Lukasz Majewski <l.majewski@samsung.com> Cc: Marek Vasut <marex@denx.de>
show more ...
|
| 716662bd | 05-Feb-2014 |
Lukasz Majewski <l.majewski@samsung.com> |
usb:udc:samsung: Remove redundant cache operation from Samsung UDC driver
A set of cache operations (both invalidation and flush) were redundant in the S3C HS OTG Samsung driver:
1. s3c_udc_ep0_zlp
usb:udc:samsung: Remove redundant cache operation from Samsung UDC driver
A set of cache operations (both invalidation and flush) were redundant in the S3C HS OTG Samsung driver:
1. s3c_udc_ep0_zlp - to transmit EP0's ZLP packets one don't need to flush the cache (since it is the zero length transmission)
2. s3c_udc_pre_setup and s3c_ep0_complete_out - cache invalidation is not needed when the buffer for OUT EP0 transmission is setup, since no data has yet arrived.
Cache cleanups presented above don't contribute much to transmission speed up, hence shall be regarded as cosmetic changes.
3. setdma_rx - here the s3c UDC driver's internal buffers were invalidated. This call is not needed anymore since we reuse the buffers passed from gadgets. This is a key contribution to transmission speed improvement.
Test condition - test HW + measurement: Trats - Exynos4210 rev.1 - test HW Trats2 - Exynos4412 rev.1 400 MiB compressed rootfs image download with `thor 0 mmc 0`
Measurements:
Base values (without improvement): Transmission speed: 9.51 MiB/s
After the change: Transmission speed: 10.15 MiB/s
Signed-off-by: Lukasz Majewski <l.majewski@samsung.com> Cc: Marek Vasut <marex@denx.de>
show more ...
|
| dcad2800 | 20-Dec-2013 |
Kuo-Jung Su <dantesu@faraday-tech.com> |
usb: gadget: fotg210: EP0 fifo empty indication is non-reliable
The fifo size of ep0 is 64 bytes, and if the packet size grater than 64 bytes, the driver would have to fill up the fifo multiple time
usb: gadget: fotg210: EP0 fifo empty indication is non-reliable
The fifo size of ep0 is 64 bytes, and if the packet size grater than 64 bytes, the driver would have to fill up the fifo multiple times, and before filling up the fifo, the driver should make sure the fifo is empty by checking fifo empty indication.
However there is a hardware bug that the fifo empty indication is somehow a bit earlier than fifo reset. So if I don't add an extra delay here, the data might be corrupted. (i.e., 1 byte missing)
After a couple of tests, it truns out that 1 usec is good enough.
This workaround should be applied to all hardware revisions.
Signed-off-by: Kuo-Jung Su <dantesu@faraday-tech.com> CC: Marek Vasut <marex@denx.de>
show more ...
|
| ec9002e4 | 04-Nov-2013 |
Heiko Schocher <hs@denx.de> |
usb, g_dnl: make iSerialNumber board configurable
add the possibility to set the iSerialNumber board specific. Default value for iSerialNumber is 0x0. This value can changed board specific through t
usb, g_dnl: make iSerialNumber board configurable
add the possibility to set the iSerialNumber board specific. Default value for iSerialNumber is 0x0. This value can changed board specific through the new function g_dnl_set_serialnumber() which must be called from the board specific function g_dnl_bind_fixup().
Signed-off-by: Heiko Schocher <hs@denx.de> Cc: Marek Vasut <marek.vasut@gmail.com> Cc: Lukasz Majewski <l.majewski@samsung.com> Cc: Kyungmin Park <kyungmin.park@samsung.com> Tested-by: Lukasz Majewski <l.majewski@samsung.com>
show more ...
|
| 0f740cb8 | 10-Oct-2013 |
Troy Kisky <troy.kisky@boundarydevices.com> |
usb: gadget: mv_udc: split mv_udc.h file
Move defines only needed by mv_udc.c to a file in the same directory.
This allows usbtty to compile for mv_udc, but it still doesn't link.
Signed-off-by: T
usb: gadget: mv_udc: split mv_udc.h file
Move defines only needed by mv_udc.c to a file in the same directory.
This allows usbtty to compile for mv_udc, but it still doesn't link.
Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com>
show more ...
|
| 1ebf0278 | 10-Oct-2013 |
Troy Kisky <troy.kisky@boundarydevices.com> |
usb: gadget: mv_udc: optimize bounce
Only perform one copy, either in the bounce routine for IN transfers, or the debounce rtn for OUT transfer.
On out transfers, only copy the number of bytes rece
usb: gadget: mv_udc: optimize bounce
Only perform one copy, either in the bounce routine for IN transfers, or the debounce rtn for OUT transfer.
On out transfers, only copy the number of bytes received from the bounce buffer
Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com>
show more ...
|
| b958fb91 | 08-Oct-2013 |
Lukasz Majewski <l.majewski@samsung.com> |
usb:g_dnl: Support for TIZEN's THOR function in generic download code
Support of "thor" function in generic download code (g_dnl.c).
Signed-off-by: Lukasz Majewski <l.majewski@samsung.com> Cc: Mare
usb:g_dnl: Support for TIZEN's THOR function in generic download code
Support of "thor" function in generic download code (g_dnl.c).
Signed-off-by: Lukasz Majewski <l.majewski@samsung.com> Cc: Marek Vasut <marex@denx.de>
show more ...
|