22 Oct, 2015

2 commits


21 Oct, 2015

2 commits


15 Oct, 2015

2 commits


14 Oct, 2015

5 commits

  • commit 9d67dc5da59d63f746aad8f6ec4fbb86d6486f76 upstream.

    A cleanup of the omap gpio driver introduced a use of the
    Handle_bad_irq() function in a device driver that can be
    a loadable module.

    This broke the ARM allmodconfig build:

    ERROR: "handle_bad_irq" [drivers/gpio/gpio-omap.ko] undefined!

    This patch exports the handle_bad_irq symbol in order to
    allow the use in modules.

    Signed-off-by: Arnd Bergmann
    Cc: Grygorii Strashko
    Cc: Santosh Shilimkar
    Cc: Linus Walleij
    Cc: Austin Schuh
    Cc: Tony Lindgren
    Cc: linux-arm-kernel@lists.infradead.org
    Link: http://lkml.kernel.org/r/5847725.4IBopItaOr@wuerfel
    Signed-off-by: Thomas Gleixner
    Signed-off-by: Dan Murphy

    Arnd Bergmann
     
  • TI-Feature: ti_linux_base_lsk
    TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
    TI-Branch: ti-linux-4.1.y

    * 'ti-linux-4.1.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel:
    rpmsg: fill in dma fields for sgs passed to virtio
    virtio_ring: add virtqueue_add_inbuf/outbuf_rpmsg API
    virtio_ring: revise descriptor addition logic for virtio_rpmsg
    virtio_ring: break out vring descriptor setup code
    iommu/omap: Fix debug_read_tlb() to use seq_printf()

    Signed-off-by: Texas Instruments Auto Merger

    Texas Instruments Auto Merger
     
  • TI-Feature: rpmsg
    TI-Tree: git://git.ti.com/rpmsg/rpmsg.git
    TI-Branch: rpmsg-ti-linux-4.1.y

    * 'rpmsg-ti-linux-4.1.y' of git://git.ti.com/rpmsg/rpmsg:
    rpmsg: fill in dma fields for sgs passed to virtio
    virtio_ring: add virtqueue_add_inbuf/outbuf_rpmsg API
    virtio_ring: revise descriptor addition logic for virtio_rpmsg
    virtio_ring: break out vring descriptor setup code
    iommu/omap: Fix debug_read_tlb() to use seq_printf()

    Signed-off-by: Texas Instruments Auto Merger

    Texas Instruments Auto Merger
     
  • Pull in the updated rpmsg base feature branch that fixes the
    rpmsg communication issues on AM437x PRUSS. The fixes are based
    on enhancements to the virtio_ring and virtio_rpmsg_bus drivers
    to work properly for buffers allocated from CMA pools from HIGHMEM
    or carveouts.

    The default CMA pools in Linux are allocated from HIGHMEM range
    since 3.18 if the platform has large enough memory for HIGHMEM.

    * 'rpmsg-linux-4.1.y' of git://git.ti.com/rpmsg/rpmsg:
    rpmsg: fill in dma fields for sgs passed to virtio
    virtio_ring: add virtqueue_add_inbuf/outbuf_rpmsg API
    virtio_ring: revise descriptor addition logic for virtio_rpmsg
    virtio_ring: break out vring descriptor setup code

    Signed-off-by: Suman Anna

    Suman Anna
     
  • Pull in the updated remoteproc feature branch that includes a
    minor debugfs fix in OMAP IOMMU driver.

    * 'rproc-linux-4.1.y' of git://git.ti.com/rpmsg/remoteproc:
    iommu/omap: Fix debug_read_tlb() to use seq_printf()

    Signed-off-by: Suman Anna

    Suman Anna
     

13 Oct, 2015

6 commits

  • Merge in the updated iommu feature branch into remoteproc tree to
    pull in a minor OMAP IOMMU debugfs fix from upstream.

    * 'iommu-linux-4.1.y' of git://git.ti.com/rpmsg/iommu:
    iommu/omap: Fix debug_read_tlb() to use seq_printf()

    Signed-off-by: Suman Anna

    Suman Anna
     
  • …o-stable into ti-lsk-linux-4.1.y

    TI-Feature: linaro-stable-4-1
    TI-Tree: http://git.linaro.org/kernel/linux-linaro-stable.git
    TI-Branch: linux-linaro-lsk-v4.1

    * 'linux-linaro-lsk-v4.1' of http://git.linaro.org/kernel/linux-linaro-stable:

    Signed-off-by: Texas Instruments Auto Merger <lcpd_integration@list.ti.com>

    Texas Instruments Auto Merger
     
  • The virtio_rpmsg bus allocates the vring buffers using the
    dma_alloc_coherent() API, and passes them to the virtio core
    using the virtqueue_add_inbuf/outbuf() API. This API takes in a
    scatterlist which is prepared using the returned virtual address
    from the above dma allocation API. The virtio core expects the
    descriptors to be allocated from linear address space in general,
    but the dma_alloc_coherent() API can return virtual addresses from
    the vmalloc range if the underlying memory is allocated from a
    carveout or a CMA pool in highmem.

    This patch fills in the dma fields of the scatterlist structure,
    and uses the newly added virtqueue_add_inbuf/outbuf_rpmsg() API
    to pass these to the virtio core, so that the virtio core can
    use sg_dma_address() API instead of sg_phys() API and thereby
    fill in properly the physical addresses of the vring buffers in
    the vring transport.

    Based on a RFC patch from Edgar E. Iglesias ,
    http://marc.info/?l=linux-virtualization&m=143047903512230&w=2

    Suggested-by: Russell King
    Signed-off-by: Suman Anna

    Suman Anna
     
  • Expose new variants of virtqueue_add_inbuf() & virtqueue_add_outbuf()
    API specifically to deal with virtio_rpmsg. The virtio core in general
    expects all the vring buffers to be allocated from linear addresses,
    but the virtio_rpmsg can have the buffers in non-linear space due to
    its usage of the dma_alloc_coherent() API.

    Based on a RFC patch from Edgar E. Iglesias ,
    http://marc.info/?l=linux-virtualization&m=143047902512226&w=2

    Signed-off-by: Suman Anna

    Suman Anna
     
  • The virtio core expects the vring buffers to be allocated from
    linear address space in general, but this may not be true always
    with virtio_rpmsg. The virtio_rpmsg bus allocates the vring buffers
    using the dma_alloc_coherent() API, and this API can return virtual
    addresses from the vmalloc range if the underlying memory is allocated
    from a carveout (physical contiguous memory not mapped into kernel) or
    a CMA pool in highmem. For more details, please see the discussion
    thread, http://marc.info/?l=linux-arm-kernel&m=142738673019657&w=2.

    This patch adds a 'rpmsg' flag to the internal virtqueue_add function
    and leverages this flag to revise the descriptor preparation when
    adding the buffers. The revised logic uses the sg_dma_address() and
    sg_dma_len() helpers instead of relying on sg_phys() and sg->length
    fields, so that the remote side sees the physical addresses of the
    vring buffers properly. The virtio rpmsg core is expected to prepare
    the scatterlist structures with the dma fields filled in properly, and
    use a new API (will be added in following patch) to add the virtqueue
    buffers.

    Signed-off-by: Edgar E. Iglesias
    [s-anna@ti.com: rename dma variable to use rpmsg, add commit description]
    Signed-off-by: Suman Anna

    Edgar E. Iglesias
     
  • Break out the vring descriptor setup into a separate inline
    function. No functional change. This will be used later to
    deal with potential non-linear addresses used by virtio-rpmsg.

    Signed-off-by: Edgar E. Iglesias
    [s-anna@ti.com: fixup flags type, revise commit log]
    Signed-off-by: Suman Anna

    Edgar E. Iglesias
     

09 Oct, 2015

14 commits

  • TI-Feature: ti_linux_base_lsk
    TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
    TI-Branch: ti-linux-4.1.y

    * 'ti-linux-4.1.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel:
    dmaengine: edma: Optimize memcpy operation
    dmaengine: edma: Remove alignment constraint for memcpy
    ARM: cmpxchg: avoid warnings from macro-ized cmpxchg() implementations
    ARM: dts: omap5-uevm: Add Uart wakeup interrupt
    ARM: dts: omap5-uevm.dts: fix i2c5 pinctrl offsets
    PM / Runtime: Update last_busy in rpm_resume
    ARM: dts: keystone: Update SoC specific compatible flags
    ARM: keystone: Update compatible to have SoC specific matches
    Documentation: dt: keystone: provide SoC specific compatible flags
    ARM: 8422/1: enable imprecise aborts during early kernel startup
    ti_config_fragments/baseport.cfg: Support Ramdisk

    Signed-off-by: Texas Instruments Auto Merger

    Texas Instruments Auto Merger
     
  • …nel/platform-linux-feature-tree into ti-linux-4.1.y

    TI-Feature: platform_base
    TI-Tree: git://git.ti.com/~rrnayak/ti-linux-kernel/platform-linux-feature-tree.git
    TI-Branch: platform-ti-linux-4.1.y

    * 'platform-ti-linux-4.1.y' of git://git.ti.com/~rrnayak/ti-linux-kernel/platform-linux-feature-tree:
    dmaengine: edma: Optimize memcpy operation
    dmaengine: edma: Remove alignment constraint for memcpy
    ARM: cmpxchg: avoid warnings from macro-ized cmpxchg() implementations
    ARM: dts: omap5-uevm: Add Uart wakeup interrupt
    ARM: dts: omap5-uevm.dts: fix i2c5 pinctrl offsets
    PM / Runtime: Update last_busy in rpm_resume
    ARM: dts: keystone: Update SoC specific compatible flags
    ARM: keystone: Update compatible to have SoC specific matches
    Documentation: dt: keystone: provide SoC specific compatible flags
    ARM: 8422/1: enable imprecise aborts during early kernel startup
    ti_config_fragments/baseport.cfg: Support Ramdisk

    Signed-off-by: Texas Instruments Auto Merger <lcpd_integration@list.ti.com>

    Texas Instruments Auto Merger
     
  • If the transfer is shorted then 64K we can complete it with one ACNT burst
    by configuring ACNT to the length of the copy, this require one paRAM slot.
    Otherwise we use two paRAM slots for the copy:
    slot1: will copy (length / 32767) number of 32767 byte long blocks
    slot2: will be configured to copy the remaining data.

    Signed-off-by: Peter Ujfalusi
    Tested-by: Vignesh R

    Peter Ujfalusi
     
  • Despite the claim by the original commit adding the memcpy support, eDMA
    does not have constraint on the alignment of src, dst or length in increment
    mode.

    Signed-off-by: Peter Ujfalusi
    Tested-by: Vignesh R

    Peter Ujfalusi
     
  • commit e001bbae7147b111fe1aa42beaf835635f3c016e upstream.

    A recent change in kernel/acct.c added a new warning for many
    configurations on ARM:

    kernel/acct.c: In function 'acct_pin_kill':
    arch/arm/include/asm/cmpxchg.h:122:3: warning: value computed is not used [-Wunused-value]

    The code is in fact correct, it's just a cmpxchg() call that
    intentionally ignores the result, and no other code does that. The
    warning does not show up on x86 because of the way that its cmpxchg()
    macro is written. This changes the ARM implementation to use a similar
    construct with a compound expression instead of a typecast, which causes
    the compiler to not complain about an unused result.

    Fix the other macros in this file in a similar way, and place them
    just below their function implementations.

    Signed-off-by: Russell King
    Signed-off-by: Dan Murphy

    Russell King
     
  • commit ba6304609879c6e342cfb8bbdc8b0dc71344c17b upstream

    UART3 wakeup takes place with iodaisy chain. enable the wakeup pin.

    Reported-by: Suman Anna
    Signed-off-by: Nishanth Menon
    [tony@atomide.com: tabify uart pins properly while at it]
    Signed-off-by: Tony Lindgren

    Nishanth Menon
     
  • commit 1dbdad75074d16c3e3005180f81a01cdc04a7872 upstream

    The i2c5 pinctrl offsets are wrong. If the bootloader doesn't set the
    pins up, communication with tca6424a doesn't work (controller timeouts)
    and it is not possible to enable HDMI.

    Fixes: 9be495c42609 ("ARM: dts: omap5-evm: Add I2c pinctrl data")
    Signed-off-by: Grazvydas Ignotas
    Signed-off-by: Tony Lindgren

    Grazvydas Ignotas
     
  • commit 56f487c78015936097474fd89b2ccb229d500d0f upstream.

    If we don't update last_busy in rpm_resume, devices can go back
    to sleep immediately after resume. This happens at least in
    cases where the device has been powered off and does not have
    any interrupt pending until there's something in the FIFO.

    Signed-off-by: Tony Lindgren
    Signed-off-by: Rafael J. Wysocki
    Signed-off-by: Sekhar Nori

    Tony Lindgren
     
  • commit fa46296bf5ebfed8a24dc1ba5d617ede599771e4 upstream.

    Update the compatible flags to allow specific SoC identification.

    Signed-off-by: Nishanth Menon
    Signed-off-by: Santosh Shilimkar

    Nishanth Menon
     
  • commit 9c92287ae4090052e60df8b834cd6000116036f9 upstream.

    With future SoCs of keystone2 family, the generic compatible match
    may not be sufficient to handle SoC specific handling. So introduce
    matches based on SoC compatiblity.

    Signed-off-by: Nishanth Menon
    Signed-off-by: Santosh Shilimkar

    Nishanth Menon
     
  • commit 8841cbf666d63e6b108ba741aa07e06ac7171de1 upstream.

    Keystone2 devices are used on more platforms than just Texas
    Instruments reference evaluation platforms called EVMs. Providing a
    generic compatible "ti,keystone" is not sufficient to differentiate
    various SoC definitions possible on various platforms for the
    following reasons:
    a) Userspace applications have no way of knowing which SoC they are
    functioning, providing the compatible matches provide a mechanism for
    them to enable SoC specific functionality. Such userspace applications
    are typically automated test framework or SoC custom hardware
    acceleration entitlement from a common file system.
    b) Provides an accurate hardware description. This allows
    SoC specific logic to be run time handled based on
    of_machine_is_compatible("ti,k2hk") or as needed for the dependent
    processor instead of needing to use board dependent compatibles that
    are needed now.

    Hence, provide compatible matches for each SoC in the Keystone family.

    Acked-By: Murali Karicheri
    Signed-off-by: Nishanth Menon
    Signed-off-by: Santosh Shilimkar

    Nishanth Menon
     
  • commit bbeb9209515989ff47802d4e5d5702178c8e42c4 upstream.

    This patch adds imprecise abort enable/disable macros and uses them to
    enable imprecise aborts early when starting the kernel.

    This helps in tracking down the real cause for such imprecise abort, as
    they are handled as soon as they occur. Until now those aborts would
    only be enabled when entering the userspace and as a consequence crash
    the first userspace process if any abort had been raised during kernel
    startup.

    Signed-off-by: Fabrice Gasnier
    Signed-off-by: Lucas Stach
    Signed-off-by: Russell King
    Signed-off-by: Nishanth Menon

    Lucas Stach
     
  • Support Ramdisk with defconfigs such as keystone defconfig which does
    not enable the support by default. setup for 8MB default

    Signed-off-by: Nishanth Menon
    Tested-by: Lokesh Vutla

    Nishanth Menon
     
  • This is the 4.1.10 stable release

    Alex Shi
     

08 Oct, 2015

8 commits

  • TI-Feature: ti_linux_base_lsk
    TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
    TI-Branch: ti-linux-4.1.y

    * 'ti-linux-4.1.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel:
    Input: edt-ft5x06 - Work around FT5506 firmware bug
    Input: edt-ft5x06 - Add support for 10 touch points for FT5506
    Input: edt-ft5x06 - Add support for variable amount of max support points
    Input: edt-ft5x06 - Use max support points to determine read length
    Input: edt-ft5x06 - do not call desc_to_gpio for invalid gpios

    Signed-off-by: Texas Instruments Auto Merger

    Texas Instruments Auto Merger
     
  • …gration-tree/connectivity-ti-linux-kernel into ti-linux-4.1.y

    TI-Feature: connectivity
    TI-Tree: git://git.ti.com/connectivity-integration-tree/connectivity-ti-linux-kernel.git
    TI-Branch: connectivity-ti-linux-4.1.y

    * 'connectivity-ti-linux-4.1.y' of git://git.ti.com/connectivity-integration-tree/connectivity-ti-linux-kernel:
    Input: edt-ft5x06 - Work around FT5506 firmware bug
    Input: edt-ft5x06 - Add support for 10 touch points for FT5506
    Input: edt-ft5x06 - Add support for variable amount of max support points
    Input: edt-ft5x06 - Use max support points to determine read length
    Input: edt-ft5x06 - do not call desc_to_gpio for invalid gpios

    Signed-off-by: Texas Instruments Auto Merger <lcpd_integration@list.ti.com>

    Texas Instruments Auto Merger
     
  • In the touchscreen controller ISR, reading the tsc starting from
    register 0x2 causes the tsc to very infrequently update the detected
    finger movement coordinates. The irq pin toogles at a fast rate to
    indicate touch events are happening but when reading the coordinates
    from the tsc the are only updated/change at at rate of ~100 ms.

    Example:
    X: 10 , Y: 30
    X: 10 , Y: 30
    X: 10, Y: 30
    ..
    // After 100 ms
    X: 300, Y: 300
    X: 300, y: 300
    ..
    // After 100 ms
    X: 1743, Y: 621
    X: 1743, Y: 621

    For some reason if instead of starting to read at register 0x2 you
    start reading at register 0x0 this issue isn't seen. This seems like
    a quirk only seen in the EDT FT5506 so to fix this issue simply
    adjust the code to start reading from 0x0. Since there is technically
    nothing wrong with doing this no regressions should be seen with other
    touchscreen controllers supported by this driver.

    Signed-off-by: Franklin S Cooper Jr
    Signed-off-by: Sekhar Nori

    Franklin S Cooper Jr
     
  • FT5506 supports up to 10 touch points so increase the maximum support
    points to 10.

    Signed-off-by: Franklin S Cooper Jr
    Signed-off-by: Sekhar Nori

    Franklin S Cooper Jr
     
  • Update code so that the maximum supported points aren't hard coded but can
    be changed.

    Set the maximum support points based on the data passed along side the
    compatible field.

    Signed-off-by: Franklin S Cooper Jr
    Signed-off-by: Sekhar Nori

    Franklin S Cooper Jr
     
  • Calculate the amount of data that needs to be read for specified max number
    of support points. If the maximum number of support points changes then the
    amount that is read from the touch screen controller should reflect this.

    Signed-off-by: Franklin S Cooper Jr
    Signed-off-by: Sekhar Nori

    Franklin S Cooper Jr
     
  • Since reset and wake pin are optional the gpio structure for those
    pins may be null. Therefore, they can't be blindly passed to
    desc_to_gpio.

    Reported-by: Dan Carpenter
    Signed-off-by: Franklin S Cooper Jr
    Signed-off-by: Dmitry Torokhov
    Signed-off-by: Sekhar Nori

    Franklin S Cooper Jr
     
  • [ Upstream commit e203db293863fa15b4b1917d4398fb5bd63c4e88 ]

    The debug_read_tlb() uses the sprintf() functions directly on the buffer
    allocated by buf = kmalloc(count), without taking into account the size
    of the buffer, with the consequence corrupting the heap, depending on
    the count requested by the user.

    The patch fixes the issue replacing sprintf() by seq_printf().

    Signed-off-by: Salva Peiró
    Signed-off-by: Joerg Roedel
    [s-anna@ti.com: cherry-pick commit 'e203db293863' from v4.3]
    Signed-off-by: Suman Anna

    Salva Peiró
     

07 Oct, 2015

1 commit