16 Mar, 2012

1 commit

  • The header includes a lot of stuff, and
    it in turn gets a lot of use just for the basic "struct device"
    which appears so often.

    Clean up the users as follows:

    1) For those headers only needing "struct device" as a pointer
    in fcn args, replace the include with exactly that.

    2) For headers not really using anything from device.h, simply
    delete the include altogether.

    3) For headers relying on getting device.h implicitly before
    being included themselves, now explicitly include device.h

    4) For files in which doing #1 or #2 uncovers an implicit
    dependency on some other header, fix by explicitly adding
    the required header(s).

    Any C files that were implicitly relying on device.h to be
    present have already been dealt with in advance.

    Total removals from #1 and #2: 51. Total additions coming
    from #3: 9. Total other implicit dependencies from #4: 7.

    As of 3.3-rc1, there were 110, so a net removal of 42 gives
    about a 38% reduction in device.h presence in include/*

    Signed-off-by: Paul Gortmaker

    Paul Gortmaker
     

18 Jan, 2012

1 commit

  • * 'next' of git://git.infradead.org/users/vkoul/slave-dma: (53 commits)
    ARM: mach-shmobile: specify CHCLR registers on SH7372
    dma: shdma: fix runtime PM: clear channel buffers on reset
    dma/imx-sdma: save irq flags when use spin_lock in sdma_tx_submit
    dmaengine/ste_dma40: clear LNK on channel startup
    dmaengine: intel_mid_dma: remove legacy pm interface
    ASoC: mxs: correct 'direction' of device_prep_dma_cyclic
    dmaengine: intel_mid_dma: error path fix
    dmaengine: intel_mid_dma: locking and freeing fixes
    mtd: gpmi-nand: move to dma_transfer_direction
    mtd: fix compile error for gpmi-nand
    mmc: mxs-mmc: fix the dma_transfer_direction migration
    dmaengine: add DMA_TRANS_NONE to dma_transfer_direction
    dma: mxs-dma: Don't use CLKGATE bits in CTRL0 to disable DMA channels
    dma: mxs-dma: make mxs_dma_prep_slave_sg() multi user safe
    dma: mxs-dma: Always leave mxs_dma_init() with the clock disabled.
    dma: mxs-dma: fix a typo in comment
    DMA: PL330: Remove pm_runtime_xxx calls from pl330 probe/remove
    video i.MX IPU: Fix display connections
    i.MX IPU DMA: Fix wrong burstsize settings
    dmaengine/ste_dma40: allow fixed physical channel
    ...

    Fix up conflicts in drivers/dma/{Kconfig,mxs-dma.c,pl330.c}

    The conflicts looked pretty trivial, but I'll ask people to verify them.

    Linus Torvalds
     

15 Jan, 2012

1 commit

  • 2nd round of GPIO changes for v3.3 merge window

    * tag 'gpio-for-linus' of git://git.secretlab.ca/git/linux-2.6:
    GPIO: sa1100: implement proper gpiolib gpio_to_irq conversion
    gpio: pl061: remove combined interrupt
    gpio: pl061: convert to use generic irq chip
    GPIO: add bindings for managed devices
    ARM: realview: convert pl061 no irq to 0 instead of -1
    gpio: pl061: convert to use 0 for no irq
    gpio: pl061: use chained_irq_* functions in irq handler
    GPIO/pl061: Add suspend resume capability
    drivers/gpio/gpio-tegra.c: use devm_request_and_ioremap

    Linus Torvalds
     

14 Jan, 2012

1 commit

  • MMC highlights for 3.3:

    Core:
    * Support for the HS200 high-speed eMMC mode.
    * Support SDIO 3.0 Ultra High Speed cards.
    * Kill pending block requests immediately if card is removed.
    * Enable the eMMC feature for locking boot partitions read-only
    until next power on, exposed via sysfs.

    Drivers:
    * Runtime PM support for Intel Medfield SDIO.
    * Suspend/resume support for sdhci-spear.
    * sh-mmcif now processes requests asynchronously.

    * tag 'mmc-merge-for-3.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc: (58 commits)
    mmc: fix a deadlock between system suspend and MMC block IO
    mmc: sdhci: restore the enabled dma when do reset all
    mmc: dw_mmc: miscaculated the fifo-depth with wrong bit operation
    mmc: host: Adds support for eMMC 4.5 HS200 mode
    mmc: core: HS200 mode support for eMMC 4.5
    mmc: dw_mmc: fixed wrong bit operation for SDMMC_GET_FCNT()
    mmc: core: Separate the timeout value for cache-ctrl
    mmc: sdhci-spear: Fix compilation error
    mmc: sdhci: Deal with failure case in sdhci_suspend_host
    mmc: dw_mmc: Clear the DDR mode for non-DDR
    mmc: sd: Fix SDR12 timing regression
    mmc: sdhci: Fix tuning timer incorrect setting when suspending host
    mmc: core: Add option to prevent eMMC sleep command
    mmc: omap_hsmmc: use threaded irq handler for card-detect.
    mmc: sdhci-pci: enable runtime PM for Medfield SDIO
    mmc: sdhci: Always pass clock request value zero to set_clock host op
    mmc: sdhci-pci: remove SDHCI_QUIRK2_OWN_CARD_DETECTION
    mmc: sdhci-pci: get gpio numbers from platform data
    mmc: sdhci-pci: add platform data
    mmc: sdhci: prevent card detection activity for non-removable cards
    ...

    Linus Torvalds
     

12 Jan, 2012

1 commit


10 Jan, 2012

1 commit

  • Device tree conversions for samsung and tegra

    Both platforms had some initial device tree support, but this adds
    much more to actually make it usable.

    * tag 'dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (45 commits)
    ARM: dts: Add intial dts file for EXYNOS4210 SoC, SMDKV310 and ORIGEN
    ARM: EXYNOS: Add Exynos4 device tree enabled board file
    rtc: rtc-s3c: Add device tree support
    input: samsung-keypad: Add device tree support
    ARM: S5PV210: Modify platform data for pl330 driver
    ARM: S5PC100: Modify platform data for pl330 driver
    ARM: S5P64x0: Modify platform data for pl330 driver
    ARM: EXYNOS: Add a alias for pdma clocks
    ARM: EXYNOS: Limit usage of pl330 device instance to non-dt build
    ARM: SAMSUNG: Add device tree support for pl330 dma engine wrappers
    DMA: PL330: Add device tree support
    ARM: EXYNOS: Modify platform data for pl330 driver
    DMA: PL330: Infer transfer direction from transfer request instead of platform data
    DMA: PL330: move filter function into driver
    serial: samsung: Fix build for non-Exynos4210 devices
    serial: samsung: add device tree support
    serial: samsung: merge probe() function from all SoC specific extensions
    serial: samsung: merge all SoC specific port reset functions
    ARM: SAMSUNG: register uart clocks to clock lookup list
    serial: samsung: remove all uses of get_clksrc and set_clksrc
    ...

    Fix up fairly trivial conflicts in arch/arm/mach-s3c2440/clock.c and
    drivers/tty/serial/Kconfig both due to just adding code close to
    changes.

    Linus Torvalds
     

08 Jan, 2012

1 commit

  • Changes queued in gpio/next for the start of the 3.3 merge window

    * tag 'gpio-for-linus-20120104' of git://git.secretlab.ca/git/linux-2.6:
    gpio: Add decode of WM8994 GPIO configuration
    gpio: Convert GPIO drivers to module_platform_driver
    gpio: Fix typo in comment in Samsung driver
    gpio: Explicitly index samsung_gpio_cfgs
    gpio: Add Linus Walleij as gpio co-maintainer
    of: Add device tree selftests
    of: create of_phandle_args to simplify return of phandle parsing data
    gpio/powerpc: Eliminate duplication of of_get_named_gpio_flags()
    gpio/microblaze: Eliminate duplication of of_get_named_gpio_flags()
    gpiolib: output basic details and consolidate gpio device drivers
    pch_gpio: Change company name OKI SEMICONDUCTOR to LAPIS Semiconductor
    pch_gpio: Support new device LAPIS Semiconductor ML7831 IOH
    spi/pl022: make the chip deselect handling thread safe
    spi/pl022: add support for pm_runtime autosuspend
    spi/pl022: disable the PL022 block when unused
    spi/pl022: move device disable to workqueue thread
    spi/pl022: skip default configuration before suspending
    spi/pl022: fix build warnings
    spi/pl022: only enable RX interrupts when TX is complete

    Linus Torvalds
     

06 Jan, 2012

1 commit


05 Jan, 2012

1 commit


23 Dec, 2011

2 commits

  • The transfer direction for a channel can be inferred from the transfer
    request and the need for specifying transfer direction in platfrom data
    can be eliminated. So the structure definition 'struct dma_pl330_peri'
    is no longer required.

    The channel's private data is set to point to a channel id specified in
    the platform data (instead of an instance of type 'struct dma_pl330_peri').
    The filter function is correspondingly modified to match the channel id.

    With the 'struct dma_pl330_peri' removed from platform data, the dma
    controller transfer capabilities cannot be inferred any more. Hence,
    the dma controller capabilities is specified using platform data.

    Acked-by: Jassi Brar
    Acked-by: Boojin Kim
    Signed-off-by: Thomas Abraham
    Acked-by: Grant Likely
    Acked-by: Vinod Koul
    Signed-off-by: Kukjin Kim

    Thomas Abraham
     
  • The dma channel selection filter function is moved from plat-samsung
    into the pl330 driver. In additon to that, a check is added in the
    filter function to ensure that the channel on which the filter has
    been invoked is pl330 channel instance (and avoid any incorrect
    access of chan->private in a system with multiple types of DMA
    drivers).

    Suggested-by: Russell King
    Signed-off-by: Thomas Abraham
    Acked-by: Jassi Brar
    Acked-by: Grant Likely
    Acked-by: Vinod Koul
    Signed-off-by: Kukjin Kim

    Thomas Abraham
     

02 Dec, 2011

1 commit

  • Adds support for configuring the spi bus to use autosuspend for
    runtime power management. This can reduce the latency in starting an
    spi transfer by not suspending the device immediately following
    completion of a transfer. If another transfer then takes place before
    the autosuspend timeout, the call to resume the device can return
    immediately rather than needing to risk sleeping in order to resume
    the device.

    Reviewed-by: Viresh Kumar
    Signed-off-by: Chris Blair
    Signed-off-by: Linus Walleij

    Chris Blair
     

22 Nov, 2011

1 commit


17 Nov, 2011

1 commit


05 Nov, 2011

1 commit

  • * 'next' of git://git.infradead.org/users/vkoul/slave-dma: (63 commits)
    dmaengine: mid_dma: mask_peripheral_interrupt only when dmac is idle
    dmaengine/ep93xx_dma: add module.h include
    pch_dma: Reduce wasting memory
    pch_dma: Fix suspend issue
    dma/timberdale: free_irq() on an error path
    dma: shdma: transfer based runtime PM
    dmaengine: shdma: protect against the IRQ handler
    dmaengine i.MX DMA/SDMA: add missing include of linux/module.h
    dmaengine: delete redundant chan_id and chancnt initialization in dma drivers
    dmaengine/amba-pl08x: Check txd->llis_va before freeing dma_pool
    dmaengine/amba-pl08x: Add support for sg len greater than one for slave transfers
    serial: sh-sci: don't filter on DMA device, use only channel ID
    ARM: SAMSUNG: Remove Samsung specific enum type for dma direction
    ASoC: Samsung: Update DMA interface
    spi/s3c64xx: Merge dma control code
    spi/s3c64xx: Add support DMA engine API
    ARM: SAMSUNG: Remove S3C-PL330-DMA driver
    ARM: S5P64X0: Use generic DMA PL330 driver
    ARM: S5PC100: Use generic DMA PL330 driver
    ARM: S5PV210: Use generic DMA PL330 driver
    ...

    Fix up fairly trivial conflicts in
    - arch/arm/mach-exynos4/{Kconfig,clock.c}
    - arch/arm/mach-s5p64x0/dma.c

    Linus Torvalds
     

27 Oct, 2011

2 commits

  • fixup usage of dma direction by introducing dma_transfer_direction,
    this patch moves dma/drivers/* to use new enum

    Cc: Jassi Brar
    Cc: Russell King
    Cc: Viresh Kumar
    Cc: Linus Walleij
    Cc: Nicolas Ferre
    Cc: Mika Westerberg
    Cc: H Hartley Sweeten
    Cc: Li Yang
    Cc: Zhang Wei
    Cc: Sascha Hauer
    Cc: Guennadi Liakhovetski
    Cc: Shawn Guo
    Cc: Yong Wang
    Cc: Tomoya MORINAGA
    Cc: Boojin Kim
    Cc: Barry Song
    Acked-by: Mika Westerberg
    Acked-by: Linus Walleij
    Acked-by: Viresh Kumar
    Acked-by: Nicolas Ferre
    Signed-off-by: Vinod Koul

    Vinod Koul
     
  • This adds devicetree binding support to the ARM pl061 driver removing the
    platform_data dependency. When DT binding is used, the gpio numbering is
    assigned dynamically. For now, interrupts are not supported with DT until
    irqdomains learn dynamic irq assignment.

    Rather than add another case of -1, updating the driver to use NO_IRQ.

    Signed-off-by: Rob Herring
    Acked-by: Baruch Siach
    Signed-off-by: Grant Likely

    Rob Herring
     

21 Sep, 2011

1 commit


19 Sep, 2011

1 commit


14 Sep, 2011

1 commit

  • This patch updates following 3 items.
    1. Removes unneccessary code.
    2. Add AMBA, PL330 configuration
    3. Change the meaning of 'peri_id' variable
    from PL330 event number to specific dma id by user.

    Signed-off-by: Boojin Kim
    Acked-by: Linus Walleij
    Acked-by: Vinod Koul
    Cc: Dan Williams
    Signed-off-by: Kukjin Kim
    Signed-off-by: Vinod Koul

    Boojin Kim
     

25 Aug, 2011

3 commits

  • At least, on SPEAr platforms there is one peripheral, JPEG, which can be flow
    controller for DMA transfer. Currently DMA controller driver didn't support
    peripheral flow controller configurations.

    This patch adds device_fc field in struct pl08x_channel_data, which will be used
    only for slave transfers and is not used in case of mem2mem transfers.

    Signed-off-by: Viresh Kumar
    Acked-by: Linus Walleij
    Signed-off-by: Vinod Koul

    Viresh Kumar
     
  • Pl080 Manual says: "Bursts do not cross the 1KB address boundary"

    We can program the controller to cross 1 KB boundary on a burst and controller
    can take care of this boundary condition by itself.

    Following is the discussion with ARM Technical Support Guys (David):
    [Viresh] Manual says: "Bursts do not cross the 1KB address boundary"

    What does that actually mean? As, Maximum size transferable with a single LLI is
    4095 * 4 =16380 ~ 16KB. So, if we don't have src/dest address aligned to burst
    size, we can't use this big of an LLI.

    [David] There is a difference between bursts describing the total data
    transferred by the DMA controller and AHB bursts. Bursts described by the
    programmable parameters in the PL080 have no direct connection with the bursts
    that are seen on the AHB bus.

    The statement that "Bursts do not cross the 1KB address boundary" in the TRM is
    referring to AHB bursts, where this limitation is a requirement of the AHB spec.
    You can still issue bursts within the PL080 that are in excess of 1KB. The
    PL080 will make sure that its bursts are broken down into legal AHB bursts which
    will be formatted to ensure that no AHB burst crosses a 1KB boundary.

    Based on above discussion, this patch removes all code related to 1 KB boundary
    as we are not required to handle this in driver.

    Signed-off-by: Viresh Kumar
    Acked-by: Linus Walleij
    Signed-off-by: Vinod Koul

    Viresh Kumar
     
  • Doc comment for struct pl08x_txd was incomplete. Complete that.

    Signed-off-by: Viresh Kumar
    Acked-by: Linus Walleij
    Signed-off-by: Vinod Koul

    Viresh Kumar
     

27 Jul, 2011

1 commit


26 Jul, 2011

3 commits


17 Jun, 2011

1 commit

  • This workaround aims to break the deadlock situation
    which raises during continuous transfer of data for long
    duration over uart with hardware flow control. It is
    observed that CTS interrupt cannot be cleared in uart
    interrupt register (ICR). Hence further transfer over
    uart gets blocked.

    It is seen that during such deadlock condition ICR
    don't get cleared even on multiple write. This leads
    pass_counter to decrease and finally reach zero. This
    can be taken as trigger point to run this UART_BT_WA.

    Workaround backups the register configuration, does soft
    reset of UART using BIT-0 of PRCC_K_SOFTRST_SET/CLEAR
    registers and restores the registers.

    This patch also provides support for uart init and exit
    function calls if present.

    Signed-off-by: Shreshtha Kumar Sahu
    Signed-off-by: Linus Walleij
    Signed-off-by: Greg Kroah-Hartman

    Shreshtha Kumar Sahu
     

31 Mar, 2011

1 commit


20 Mar, 2011

1 commit


17 Mar, 2011

1 commit


24 Feb, 2011

4 commits


19 Feb, 2011

2 commits

  • The ARM CLCD PL110 controller in TFT mode provides two output formats
    based on whether the controller is in 24bpp mode or not - either 5551
    or 888. PL111 augments this with a 444 and 565 modes.

    Some implementations provide an external MUX on the PL110 output to
    reassign the bits to achieve 565 mode.

    Provide a system of capability flags to allow the CLCD driver to work
    out what is supported by each panel and board, and therefore which
    display formats are permitted.

    Acked-by: Catalin Marinas
    Signed-off-by: Russell King

    Russell King
     
  • Instead of matching the entire peripheral ID, match against
    just the part number using the amba_xxx() macros.

    Acked-by: Catalin Marinas
    Signed-off-by: Russell King

    Russell King
     

04 Feb, 2011

1 commit

  • Based on a patch from Linus Walleij.

    Add dmaengine based support for DMA to the MMCI driver, using the
    Primecell DMA engine interface. The changes over Linus' driver are:

    - rename txsize_threshold to dmasize_threshold, as this reflects the
    purpose more.
    - use 'mmci_dma_' as the function prefix rather than 'dma_mmci_'.
    - clean up requesting of dma channels.
    - don't release a single channel twice when it's shared between tx and rx.
    - get rid of 'dma_enable' bool - instead check whether the channel is NULL.
    - detect incomplete DMA at the end of a transfer. Some DMA controllers
    (eg, PL08x) are unable to be configured for scatter DMA and also listen
    to all four DMA request signals [BREQ,SREQ,LBREQ,LSREQ] from the MMCI.
    They can do one or other but not both. As MMCI uses LBREQ/LSREQ for the
    final burst/words, PL08x does not transfer the last few words.
    - map and unmap DMA buffers using the DMA engine struct device, not the
    MMCI struct device - the DMA engine is doing the DMA transfer, not us.
    - avoid double-unmapping of the DMA buffers on MMCI data errors.
    - don't check for negative values from the dmaengine tx submission
    function - Dan says this must never fail.
    - use new dmaengine helper functions rather than using the ugly function
    pointers directly.
    - allow DMA code to be fully optimized away using dma_inprogress() which
    is defined to constant 0 if DMA engine support is disabled.
    - request maximum segment size from the DMA engine struct device and
    set this appropriately.
    - removed checking of buffer alignment - the DMA engine should deal with
    its own restrictions on buffer alignment, not the individual DMA engine
    users.
    - removed setting DMAREQCTL - this confuses some DMA controllers as it
    causes LBREQ to be asserted for the last seven transfers, rather than
    six SREQ and one LSREQ.
    - removed burst setting - the DMA controller should not burst past the
    transfer size required to complete the DMA operation.

    Tested-by: Linus Walleij
    Signed-off-by: Russell King

    Russell King
     

18 Jan, 2011

1 commit

  • * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx: (63 commits)
    ARM: PL08x: cleanup comments
    Update CONFIG_MD_RAID6_PQ to CONFIG_RAID6_PQ in drivers/dma/iop-adma.c
    ARM: PL08x: fix a warning
    Fix dmaengine_submit() return type
    dmaengine: at_hdmac: fix race while monitoring channel status
    dmaengine: at_hdmac: flags located in first descriptor
    dmaengine: at_hdmac: use subsys_initcall instead of module_init
    dmaengine: at_hdmac: no need set ACK in new descriptor
    dmaengine: at_hdmac: trivial add precision to unmapping comment
    dmaengine: at_hdmac: use dma_address to program DMA hardware
    pch_dma: support new device ML7213 IOH
    ARM: PL08x: prevent dma_set_runtime_config() reconfiguring memcpy channels
    ARM: PL08x: allow dma_set_runtime_config() to return errors
    ARM: PL08x: fix locking between prepare function and submit function
    ARM: PL08x: introduce 'phychan_hold' to hold on to physical channels
    ARM: PL08x: put txd's on the pending list in pl08x_tx_submit()
    ARM: PL08x: rename 'desc_list' as 'pend_list'
    ARM: PL08x: implement unmapping of memcpy buffers
    ARM: PL08x: store prep_* flags in async_tx structure
    ARM: PL08x: shrink srcbus/dstbus in txd structure
    ...

    Linus Torvalds
     

17 Jan, 2011

1 commit