02 Sep, 2014

1 commit


06 Feb, 2014

3 commits

  • 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
    Cc: Marek Vasut

    Lukasz Majewski
     
  • 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
    Cc: Marek Vasut

    Lukasz Majewski
     
  • 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
    Cc: Marek Vasut

    Lukasz Majewski
     

21 Oct, 2013

1 commit


24 Jul, 2013

1 commit


20 May, 2012

1 commit


30 Apr, 2012

1 commit

  • Merge our duplicate definitions with the common header.

    Also fix drivers/usb/gadget/s3c_udc_otg_xfer_dma.c to
    use min() instead of min_t() since we remove the latter
    from compat.h.

    Additionally use memalign() directly as the lin_gadget
    specific kmalloc() macro is removed from lin_gadget_compat.h
    by this patch.

    Signed-off-by: Mike Frysinger
    Signed-off-by: Anatolij Gustschin
    Cc: Lukasz Majewski

    Mike Frysinger
     

19 Mar, 2012

1 commit


21 Dec, 2011

1 commit

  • Fix:
    In file included from s3c_udc_otg.c:216:0:
    s3c_udc_otg_xfer_dma.c: In function 'complete_tx':
    s3c_udc_otg_xfer_dma.c:280:33: warning: variable 'is_short' set but not used
    s3c_udc_otg_xfer_dma.c:280:6: warning: variable 'ep_tsr' set but not used
    s3c_udc_otg_xfer_dma.c: In function 's3c_udc_irq':
    s3c_udc_otg_xfer_dma.c:469:16: warning: variable 'flags' set but not used
    s3c_udc_otg_xfer_dma.c:468:18: warning: variable 'gintmsk' set but not used
    s3c_udc_otg_xfer_dma.c: In function 's3c_queue':
    s3c_udc_otg_xfer_dma.c:582:14: warning: variable 'gintsts' set but not used
    s3c_udc_otg_xfer_dma.c:581:16: warning: variable 'flags' set but not used
    s3c_udc_otg_xfer_dma.c: In function 's3c_ep0_read':
    s3c_udc_otg_xfer_dma.c:778:6: warning: variable 'ret' set but not used
    s3c_udc_otg_xfer_dma.c: In function 's3c_udc_set_halt':
    s3c_udc_otg_xfer_dma.c:1020:16: warning: variable 'flags' set but not used
    s3c_udc_otg_xfer_dma.c: In function 's3c_ep0_setup':
    s3c_udc_otg_xfer_dma.c:1258:13: warning: initialization from incompatible
    pointer type [enabled by default]
    s3c_udc_otg_xfer_dma.c:1239:16: warning: variable 'is_in' set but not used
    s3c_udc_otg_xfer_dma.c:1239:9: warning: variable 'bytes' set but not used
    s3c_udc_otg.c: In function 'usb_gadget_register_driver':
    s3c_udc_otg.c:292:16: warning: variable 'flags' set but not used
    s3c_udc_otg.c: In function 'usb_gadget_unregister_driver':
    s3c_udc_otg.c:338:16: warning: variable 'flags' set but not used
    s3c_udc_otg.c: In function 's3c_ep_enable':
    s3c_udc_otg.c:582:16: warning: variable 'flags' set but not used
    s3c_udc_otg.c: In function 's3c_ep_disable':
    s3c_udc_otg.c:646:16: warning: variable 'flags' set but not used
    s3c_udc_otg.c: In function 's3c_dequeue':
    s3c_udc_otg.c:704:16: warning: variable 'flags' set but not used

    Signed-off-by: Anatolij Gustschin
    Cc: Lukasz Majewski
    Cc: Remy Bohmer

    Anatolij Gustschin
     

11 Dec, 2011

1 commit