10 Jan, 2012

3 commits

  • clock management changes for i.MX

    Another simple series related to clock management, this time only for
    imx.

    * tag 'clk' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
    ARM: mxs: select HAVE_CLK_PREPARE for clock
    clk: add config option HAVE_CLK_PREPARE into Kconfig
    ASoC: mxs-saif: convert to clk_prepare/clk_unprepare
    video: mxsfb: convert to clk_prepare/clk_unprepare
    serial: mxs-auart: convert to clk_prepare/clk_unprepare
    net: flexcan: convert to clk_prepare/clk_unprepare
    mtd: gpmi-lib: convert to clk_prepare/clk_unprepare
    mmc: mxs-mmc: convert to clk_prepare/clk_unprepare
    dma: mxs-dma: convert to clk_prepare/clk_unprepare
    net: fec: add clk_prepare/clk_unprepare
    ARM: mxs: convert platform code to clk_prepare/clk_unprepare
    clk: add helper functions clk_prepare_enable and clk_disable_unprepare

    Fix up trivial conflicts in drivers/net/ethernet/freescale/fec.c due to
    commit 0ebafefcaa7a ("net: fec: add clk_prepare/clk_unprepare") clashing
    trivially with commit e163cc97f9ac ("net/fec: fix the .remove code").

    Linus Torvalds
     
  • New feature development

    This adds support for new features, and contains stuff from most
    platforms. A number of these patches could have fit into other
    branches, too, but were small enough not to cause too much
    confusion here.

    * tag 'devel' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (28 commits)
    mfd/db8500-prcmu: remove support for early silicon revisions
    ARM: ux500: fix the smp_twd clock calculation
    ARM: ux500: remove support for early silicon revisions
    ARM: ux500: update register files
    ARM: ux500: register DB5500 PMU dynamically
    ARM: ux500: update ASIC detection for U5500
    ARM: ux500: support DB8520
    ARM: picoxcell: implement watchdog restart
    ARM: OMAP3+: hwmod data: Add the default clockactivity for I2C
    ARM: OMAP3: hwmod data: disable multiblock reads on MMC1/2 on OMAP34xx/35xx <= ES2.1
    ARM: OMAP: USB: EHCI and OHCI hwmod structures for OMAP4
    ARM: OMAP: USB: EHCI and OHCI hwmod structures for OMAP3
    ARM: OMAP: hwmod data: Add support for AM35xx UART4/ttyO3
    ARM: Orion: Remove address map info from all platform data structures
    ARM: Orion: Get address map from plat-orion instead of via platform_data
    ARM: Orion: mbus_dram_info consolidation
    ARM: Orion: Consolidate the address map setup
    ARM: Kirkwood: Add configuration for MPP12 as GPIO
    ARM: Kirkwood: Recognize A1 revision of 6282 chip
    ARM: ux500: update the MOP500 GPIO assignments
    ...

    Linus Torvalds
     
  • 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
     

09 Jan, 2012

1 commit

  • * 'pm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (76 commits)
    PM / Hibernate: Implement compat_ioctl for /dev/snapshot
    PM / Freezer: fix return value of freezable_schedule_timeout_killable()
    PM / shmobile: Allow the A4R domain to be turned off at run time
    PM / input / touchscreen: Make st1232 use device PM QoS constraints
    PM / QoS: Introduce dev_pm_qos_add_ancestor_request()
    PM / shmobile: Remove the stay_on flag from SH7372's PM domains
    PM / shmobile: Don't include SH7372's INTCS in syscore suspend/resume
    PM / shmobile: Add support for the sh7372 A4S power domain / sleep mode
    PM: Drop generic_subsys_pm_ops
    PM / Sleep: Remove forward-only callbacks from AMBA bus type
    PM / Sleep: Remove forward-only callbacks from platform bus type
    PM: Run the driver callback directly if the subsystem one is not there
    PM / Sleep: Make pm_op() and pm_noirq_op() return callback pointers
    PM/Devfreq: Add Exynos4-bus device DVFS driver for Exynos4210/4212/4412.
    PM / Sleep: Merge internal functions in generic_ops.c
    PM / Sleep: Simplify generic system suspend callbacks
    PM / Hibernate: Remove deprecated hibernation snapshot ioctls
    PM / Sleep: Fix freezer failures due to racy usermodehelper_is_disabled()
    ARM: S3C64XX: Implement basic power domain support
    PM / shmobile: Use common always on power domain governor
    ...

    Fix up trivial conflict in fs/xfs/xfs_buf.c due to removal of unused
    XBT_FORCE_SLEEP bit

    Linus Torvalds
     

07 Jan, 2012

2 commits

  • Conflicts:
    arch/arm/mach-exynos/Makefile
    arch/arm/mach-exynos/cpu.c -> common.c
    arch/arm/mach-exynos/include/mach/entry-macro.S
    arch/arm/mach-exynos/init.c -> common.c
    arch/arm/mach-s5p64x0/init.c -> common.c
    arch/arm/mach-s5pv210/init.c -> common.c

    Multiple files were moved into common.c files in the rmk/for-linus
    branch, so this moves over the samsung/dt changes to the new
    files.

    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     
  • …git-cur/linux-2.6-arm

    * 'amba-modalias' of git://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm:
    sound: aaci: Enable module alias autogeneration for AMBA drivers
    watchdog: sp805: Enable module alias autogeneration for AMBA drivers
    fbdev: amba: Enable module alias autogeneration for AMBA drivers
    serial: pl011: Enable module alias autogeneration for AMBA drivers
    serial: pl010: Enable module alias autogeneration for AMBA drivers
    spi: pl022: Enable module alias autogeneration for AMBA drivers
    rtc: pl031: Enable module alias autogeneration for AMBA drivers
    rtc: pl030: Enable module alias autogeneration for AMBA drivers
    mmc: mmci: Enable module alias autogeneration for AMBA drivers
    input: ambakmi: Enable module alias autogeneration for AMBA drivers
    gpio: pl061: Enable module alias autogeneration for AMBA drivers
    dmaengine: pl330: Enable module alias autogeneration for AMBA drivers
    dmaengine: pl08x: Enable module alias autogeneration for AMBA drivers
    hwrng: nomadik: Enable module alias autogeneration for AMBA drivers
    ARM: amba: Auto-generate AMBA driver module aliases during modpost
    ARM: amba: Move definition of struct amba_id to mod_devicetable.h

    Linus Torvalds
     

28 Dec, 2011

1 commit


23 Dec, 2011

3 commits

  • For PL330 dma controllers instantiated from device tree, the channel
    lookup is based on phandle of the dma controller and dma request id
    specified by the client node. During probe, the private data of each
    channel of the controller is set to point to the device node of the
    dma controller. The 'chan_id' of the each channel is used as the
    dma request id.

    Client driver requesting dma channels specify the phandle of the
    dma controller and the request id. The pl330 filter function
    converts the phandle to the device node pointer and matches that
    with channel's private data. If a match is found, the request id
    from the client node and the 'chan_id' of the channel is matched.
    A channel is found if both the values match.

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

    Thomas Abraham
     
  • 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
     

19 Dec, 2011

1 commit

  • ARCH_MX3 was removed in commit a89cf59 :
    "arm/imx: merge i.MX3 and i.MX6"
    thus preventing to select MX3_IPU, thus preventing IPU and display
    to work on i.MX3x SOC.
    i.MX SDMA support is also affected.

    Signed-off-by: Eric Bénard
    Cc: Sascha Hauer
    Cc: Vinod Koul
    Cc: Dan Williams
    Signed-off-by: Sascha Hauer

    Eric Bénard
     

14 Dec, 2011

1 commit


24 Nov, 2011

1 commit

  • Commit 981ed70d8e (dmatest: make dmatest threads freezable) made
    dmatest kthread use set_freezable_with_signal(); however, the
    interface is scheduled to be removed in the next merge window.

    The problem is that unlike userland tasks there's no default place
    which handles signal pending state and it isn't clear who owns and/or
    is responsible for clearing TIF_SIGPENDING. For example, in the
    current code, try_to_freeze() clears TIF_SIGPENDING but it isn't sure
    whether it actually owns the TIF_SIGPENDING nor is it race-free -
    ie. the task may continue to run with TIF_SIGPENDING set after the
    freezable section.

    Unfortunately, we don't have wait_for_completion_freezable_timeout().
    This patch open codes it and uses wait_event_freezable_timeout()
    instead and removes timeout reloading - wait_event_freezable_timeout()
    won't return across freezing events (currently racy but fix scheduled)
    and timer doesn't decrement while the task is in freezer. Although
    this does lose timer-reset-over-freezing, given that timeout is
    supposed to be long enough and failure to finish inside is considered
    irrecoverable, I don't think this is worth the complexity.

    While at it, move completion to outer scope and explain that we're
    ignoring dangling pointer problem after timeout. This should give
    slightly better chance at avoiding oops after timeout.

    Signed-off-by: Tejun Heo
    Acked-by: Dan Williams
    Cc: Guennadi Liakhovetski
    Cc: Nicolas Ferre

    Tejun Heo
     

22 Nov, 2011

2 commits


07 Nov, 2011

1 commit

  • * 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux: (230 commits)
    Revert "tracing: Include module.h in define_trace.h"
    irq: don't put module.h into irq.h for tracking irqgen modules.
    bluetooth: macroize two small inlines to avoid module.h
    ip_vs.h: fix implicit use of module_get/module_put from module.h
    nf_conntrack.h: fix up fallout from implicit moduleparam.h presence
    include: replace linux/module.h with "struct module" wherever possible
    include: convert various register fcns to macros to avoid include chaining
    crypto.h: remove unused crypto_tfm_alg_modname() inline
    uwb.h: fix implicit use of asm/page.h for PAGE_SIZE
    pm_runtime.h: explicitly requires notifier.h
    linux/dmaengine.h: fix implicit use of bitmap.h and asm/page.h
    miscdevice.h: fix up implicit use of lists and types
    stop_machine.h: fix implicit use of smp.h for smp_processor_id
    of: fix implicit use of errno.h in include/linux/of.h
    of_platform.h: delete needless include
    acpi: remove module.h include from platform/aclinux.h
    miscdevice.h: delete unnecessary inclusion of module.h
    device_cgroup.h: delete needless include
    net: sch_generic remove redundant use of
    net: inet_timewait_sock doesnt need
    ...

    Fix up trivial conflicts (other header files, and removal of the ab3550 mfd driver) in
    - drivers/media/dvb/frontends/dibx000_common.c
    - drivers/media/video/{mt9m111.c,ov6650.c}
    - drivers/mfd/ab3550-core.c
    - include/linux/dmaengine.h

    Linus Torvalds
     

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
     

04 Nov, 2011

1 commit


01 Nov, 2011

3 commits


16 Oct, 2011

2 commits


12 Oct, 2011

2 commits

  • nr_channels is defined in "struct pch_dma".
    and struct pch_dma_chan is defined in "struct pch_dma".
    So, "sizeof(struct pch_dma_chan) * nr_channels" is unnecessary.

    Signed-off-by: Tomoya MORINAGA
    Signed-off-by: Vinod Koul

    Tomoya MORINAGA
     
  • Currently, executing suspend/hibernation,
    memory access violation occurs.

    In pch_dma_save_regs() called by suspend(),
    you can see the following code.

    static void pch_dma_save_regs(struct pch_dma *pd)
    {
    snip...
    list_for_each_entry_safe(chan, _c, &pd->dma.channels, device_node) {
    pd_chan = to_pd_chan(chan);

    pd->ch_regs[i].dev_addr = channel_readl(pd_chan, DEV_ADDR);
    pd->ch_regs[i].mem_addr = channel_readl(pd_chan, MEM_ADDR);
    pd->ch_regs[i].size = channel_readl(pd_chan, SIZE);
    pd->ch_regs[i].next = channel_readl(pd_chan, NEXT);

    i++;
    }
    }

    Max loop count is 12 defined at pci_table.
    So, this caused memory access violation.

    This patch fixes the issue
    - Modify array size (MAX_CHAN_NR)

    Signed-off-by: Tomoya MORINAGA
    Signed-off-by: Vinod Koul

    Tomoya MORINAGA
     

07 Oct, 2011

1 commit


28 Sep, 2011

2 commits

  • Currently the shdma dmaengine driver uses runtime PM to save power, when
    no channel on the specific controller is requested by a user. This patch
    switches the driver to count individual DMA transfers. That way the
    controller can be powered down between transfers, even if some of its
    channels are in use.

    Signed-off-by: Guennadi Liakhovetski
    Signed-off-by: Vinod Koul

    Guennadi Liakhovetski
     
  • The IRQ handler of the shdma driver accesses common hardware registers,
    that are also accessed from other contexts. Therefore access to them
    has to be performed with interrupts disabled, not only with disabled
    bottom halves.

    Signed-off-by: Guennadi Liakhovetski
    Signed-off-by: Vinod Koul

    Guennadi Liakhovetski
     

21 Sep, 2011

2 commits


20 Sep, 2011

1 commit


19 Sep, 2011

2 commits


14 Sep, 2011

5 commits

  • This patch adds DMA_CYCLIC capability that is used for audio driver.
    DMA driver activated with it reuses the dma requests that were submitted
    through tx_submit().

    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
     
  • Original code carries out the start operation after flush operation.
    But start operation is not required for DMA_TERMINATE_ALL command.
    So, this patch removes the unnecessary start operation and only carries out
    the flush operation for handling DMA_TERMINATE_ALL command.

    Signed-off-by: Boojin Kim
    Acked-by: Linus Walleij
    Acked-by: Vinod Koul
    Cc: Dan Williams
    Signed-off-by: Kukjin Kim
    [Fixed typos in changelog]
    Signed-off-by: Vinod Koul

    Boojin Kim
     
  • 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
     
  • 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
     
  • Signed-off-by: Boojin Kim
    Acked-by: Jassi Brar
    Acked-by: Linus Walleij
    Acked-by: Vinod Koul
    Cc: Dan Williams
    Signed-off-by: Kukjin Kim
    Signed-off-by: Vinod Koul

    Boojin Kim
     

13 Sep, 2011

1 commit

  • The bank_lock can be taken in atomic context (irq handling)
    and therefore cannot be preempted on -rt - annotate it.

    In mainline this change documents the low level nature of
    the lock - otherwise there's no functional difference. Lockdep
    and Sparse checking will work as usual.

    Signed-off-by: Uwe Kleine-König
    Cc: kernel@pengutronix.de
    Cc: Guennadi Liakhovetski
    Cc: Dan Williams
    Link: http://lkml.kernel.org/r/1311949627-13260-1-git-send-email-u.kleine-koenig@pengutronix.de
    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar

    Uwe Kleine-König
     

05 Sep, 2011

1 commit