20 Jul, 2017

1 commit


29 Mar, 2017

1 commit


29 Dec, 2016

2 commits


16 Dec, 2016

2 commits

  • Pull virtio updates from Michael Tsirkin:
    "virtio, vhost: new device, fixes, speedups

    This includes the new virtio crypto device, and fixes all over the
    place. In particular enabling endian-ness checks for sparse builds
    found some bugs which this fixes. And it appears that everyone is in
    agreement that disabling endian-ness sparse checks shouldn't be
    necessary any longer.

    So this enables them for everyone, and drops the __CHECK_ENDIAN__ and
    __bitwise__ APIs.

    IRQ handling in virtio has been refactored somewhat, the larger switch
    to IRQ_SHARED will have to wait as it proved too aggressive"

    * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost: (34 commits)
    Makefile: drop -D__CHECK_ENDIAN__ from cflags
    fs/logfs: drop __CHECK_ENDIAN__
    Documentation/sparse: drop __CHECK_ENDIAN__
    linux: drop __bitwise__ everywhere
    checkpatch: replace __bitwise__ with __bitwise
    Documentation/sparse: drop __bitwise__
    tools: enable endian checks for all sparse builds
    linux/types.h: enable endian checks for all sparse builds
    virtio_mmio: Set dev.release() to avoid warning
    vhost: remove unused feature bit
    virtio_ring: fix description of virtqueue_get_buf
    vhost/scsi: Remove unused but set variable
    tools/virtio: use {READ,WRITE}_ONCE() in uaccess.h
    vringh: kill off ACCESS_ONCE()
    tools/virtio: fix READ_ONCE()
    crypto: add virtio-crypto driver
    vhost: cache used event for better performance
    vsock: lookup and setup guest_cid inside vhost_vsock_lock
    virtio_pci: split vp_try_to_find_vqs into INTx and MSI-X variants
    virtio_pci: merge vp_free_vectors into vp_del_vqs
    ...

    Linus Torvalds
     
  • __bitwise__ used to mean "yes, please enable sparse checks
    unconditionally", but now that we dropped __CHECK_ENDIAN__
    __bitwise is exactly the same.
    There aren't many users, replace it by __bitwise everywhere.

    Signed-off-by: Michael S. Tsirkin
    Acked-by: Greg Kroah-Hartman
    Acked-by: Stefan Schmidt
    Acked-by: Krzysztof Kozlowski
    Akced-by: Lee Duncan

    Michael S. Tsirkin
     

17 Nov, 2016

1 commit


24 Aug, 2016

1 commit


02 Aug, 2016

2 commits

  • Pull ARM SoC platform updates from Olof Johansson:
    "Improved and new platform support for various SoCs:

    New SoC support:
    - Broadcom BCM23550
    - Freescale i.MX7Solo
    - Qualcomm MDM9615
    - Renesas r8a7792

    Improvements:
    - convert clps711x to multiplatform
    - debug uart improvements for Atmel platforms
    - Tango platform improvements: HOTPLUG_CPU, Suspend-to-ram
    - OMAP tweaks and improvements to hwmod
    - OMAP support for kexec on SMP"

    * tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (109 commits)
    ARM: davinci: fix build break because of undeclared dm365_evm_snd_data
    ARM: s3c64xx: smartq: Avoid sparse warnings
    ARM: sti: Implement dummy L2 cache's write_sec
    ARM: STi: Update machine _namestr to be more generic.
    arm: meson: explicitly select clk drivers
    ARM: tango: add Suspend-to-RAM support
    ARM: hisi: consolidate the hisilicon machine entries
    ARM: tango: fix CONFIG_HOTPLUG_CPU=n build
    MAINTAINERS: Update BCM281XX/BCM11XXX/BCM216XX entry
    MAINTAINERS: Update BCM63XX entry
    MAINTAINERS: Add NS2 entry
    MAINTAINERS: Fix nsp false-positives
    MAINTAINERS: Change L to M for Broadcom ARM/ARM64 SoC entries
    ARM: debug: Enable DEBUG_BCM_5301X for Northstar Plus SoCs
    ARM: clps711x: Switch to MULTIPLATFORM
    ARM: clps711x: Remove boards support
    ARM: clps711x: Add basic DT support
    ARM: clps711x: Reduce static map size
    ARM: SAMSUNG: Constify iomem address passed to s5p_init_cpu
    ARM: oxnas: Change OX810SE default driver config
    ...

    Linus Torvalds
     
  • Pull ARM SoC cleanups from Olof Johansson:
    "The cleanup branch keeps going down in size as we've completed a lot
    of the major legacy platform removals and conversions.

    A handful of changes this time around, some of the themes or larger
    sets are:

    - A bunch of i.MX cleanups around platform detection, init call cleanups
    - Misc fixes of missing/implicit includes
    - Removal of ARCH_[WANT_OPTIONAL|REQUIRE]_GPIOLIB"

    * tag 'armsoc-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (40 commits)
    ARM: mps2: fix typo
    ARM: s3c64xx: avoid warning about 'struct device_node'
    bus: mvebu-mbus: make mvebu_mbus_syscore_ops static
    bus: mvebu-mbus: fix __iomem on register pointers
    ARM: tegra: Remove board_init_funcs array
    ARM: iop: Fix indentation
    ARM: imx: remove cpu_is_mx*()
    ARM: imx: remove last call to cpu_is_mx5*
    ARM: imx: rework mx27_pm_init() call
    ARM: imx: deconstruct mx3_idle
    ARM: imx: deconstruct mxc_rnga initialization
    ARM: imx: remove cpu_is_mx1 check
    ARM: i.MX: Do not explicitly call l2x0_of_init()
    ARM: i.MX: system.c: Tweak prefetch settings for performance
    ARM: i.MX: system.c: Replace magic numbers
    ARM: i.MX: system.c: Remove redundant errata 752271 code
    ARM: i.MX: system.c: Convert goto to if statement
    ARM: Kirkwood: fix kirkwood_pm_init() declaration/type
    ARM: Kirkwood: make kirkwood_disable_mbus_error_propagation() static
    ARM: orion5x: make orion5x_legacy_handle_irq static
    ...

    Linus Torvalds
     

06 Jul, 2016

1 commit


22 Jun, 2016

1 commit

  • The declaration of s5p_init_cpu() in arch/arm/mach-exynos/common.h
    is not included in the platform file arch/arm/plat-samsung/cpu.c
    which generates a warning.

    Fix the following warning by moving the declaration to somewhere
    both the machine and platform code can get to it, and including
    the right files as necessary:

    arch/arm/plat-samsung/cpu.c:47:13: warning: symbol 's5p_init_cpu' was not declared. Should it be static?

    Signed-off-by: Ben Dooks
    Signed-off-by: Krzysztof Kozlowski

    Ben Dooks
     

21 Jun, 2016

2 commits


04 Jun, 2016

1 commit


30 May, 2016

1 commit


18 May, 2016

1 commit

  • When no DMA master devices are part of the kernel configuration,
    we get a warning about the unused dma mask definition:

    arch/arm/plat-samsung/devs.c:71:12: error: 'samsung_device_dma_mask' defined but not used [-Werror=unused-variable]
    static u64 samsung_device_dma_mask = DMA_BIT_MASK(32);

    We could simply mark this as __maybe_unused to shut up that warning,
    but a nicer solution seems to be to have a separate mask for each
    device. The advantage is that a driver that happens to call
    dma_set_mask() on one device doesn't implicitly change the mask
    for the other devices as well. This is more of a theoretical
    problem, as obviously nothing does it for the devices in this
    file (or they would have always been broken), but it feels
    cleaner that way.

    The definition works by creating an array in place so we can take
    the address of it and let the compiler generate a hidden symbol
    for it at compile time.

    Signed-off-by: Arnd Bergmann
    Signed-off-by: Krzysztof Kozlowski

    Arnd Bergmann
     

18 Apr, 2016

1 commit


25 Mar, 2016

1 commit

  • Pull MTD updates from Brian Norris:
    "NAND:
    - Add sunxi_nand randomizer support
    - begin refactoring NAND ecclayout structs
    - fix pxa3xx_nand dmaengine usage
    - brcmnand: fix support for v7.1 controller
    - add Qualcomm NAND controller driver

    SPI NOR:
    - add new ls1021a, ls2080a support to Freescale QuadSPI
    - add new flash ID entries
    - support bottom-block protection for Winbond flash
    - support Status Register Write Protect
    - remove broken QPI support for Micron SPI flash

    JFFS2:
    - improve post-mount CRC scan efficiency

    General:
    - refactor bcm63xxpart parser, to later extend for NAND
    - add writebuf size parameter to mtdram

    Other minor code quality improvements"

    * tag 'for-linus-20160324' of git://git.infradead.org/linux-mtd: (72 commits)
    mtd: nand: remove kerneldoc for removed function parameter
    mtd: nand: Qualcomm NAND controller driver
    dt/bindings: qcom_nandc: Add DT bindings
    mtd: nand: don't select chip in nand_chip's block_bad op
    mtd: spi-nor: support lock/unlock for a few Winbond chips
    mtd: spi-nor: add TB (Top/Bottom) protect support
    mtd: spi-nor: add SPI_NOR_HAS_LOCK flag
    mtd: spi-nor: use BIT() for flash_info flags
    mtd: spi-nor: disallow further writes to SR if WP# is low
    mtd: spi-nor: make lock/unlock bounds checks more obvious and robust
    mtd: spi-nor: silently drop lock/unlock for already locked/unlocked region
    mtd: spi-nor: wait for SR_WIP to clear on initial unlock
    mtd: nand: simplify nand_bch_init() usage
    mtd: mtdswap: remove useless if (!mtd->ecclayout) test
    mtd: create an mtd_oobavail() helper and make use of it
    mtd: kill the ecclayout->oobavail field
    mtd: nand: check status before reporting timeout
    mtd: bcm63xxpart: give width specifier an 'int', not 'size_t'
    mtd: mtdram: Add parameter for setting writebuf size
    mtd: nand: pxa3xx_nand: kill unused field 'drcmr_cmd'
    ...

    Linus Torvalds
     

21 Mar, 2016

1 commit

  • Pull ARM SoC platform updates from Arnd Bergmann:
    "Newly added support for additional SoCs:
    - Axis Artpec-6 SoC family
    - Allwinner A83T SoC
    - Mediatek MT7623
    - NXP i.MX6QP SoC
    - ST Microelectronics stm32f469 microcontroller

    New features:
    - SMP support for Mediatek mt2701
    - Big-endian support for NXP i.MX
    - DaVinci now uses the new DMA engine dma_slave_map
    - OMAP now uses the new DMA engine dma_slave_map
    - earlyprintk support for palmchip uart on mach-tango
    - delay timer support for orion

    Other:
    - Exynos PMU driver moved out to drivers/soc/
    - Various smaller updates for Renesas, Xilinx, PXA, AT91, OMAP,
    uniphier"

    * tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (83 commits)
    ARM: uniphier: rework SMP code to support new System Bus binding
    ARM: uniphier: add missing of_node_put()
    ARM: at91: avoid defining CONFIG_* symbols in source code
    ARM: DRA7: hwmod: Add data for eDMA tpcc, tptc0, tptc1
    ARM: imx: Make reset_control_ops const
    ARM: imx: Do L2 errata only if the L2 cache isn't enabled
    ARM: imx: select ARM_CPU_SUSPEND only for imx6
    dmaengine: pxa_dma: fix the maximum requestor line
    ARM: alpine: select the Alpine MSI controller driver
    ARM: pxa: add the number of DMA requestor lines
    dmaengine: mmp-pdma: add number of requestors
    dma: mmp_pdma: Add the #dma-requests DT property documentation
    ARM: OMAP2+: Add rtc hwmod configuration for ti81xx
    ARM: s3c24xx: Avoid warning for inb/outb
    ARM: zynq: Move early printk virtual address to vmalloc area
    ARM: DRA7: hwmod: Add custom reset handler for PCIeSS
    ARM: SAMSUNG: Remove unused register offset definition
    ARM: EXYNOS: Cleanup header files inclusion
    drivers: soc: samsung: Enable COMPILE_TEST
    MAINTAINERS: Add maintainers entry for drivers/soc/samsung
    ...

    Linus Torvalds
     

25 Feb, 2016

2 commits


30 Jan, 2016

1 commit

  • Change s3c_pm_run_res() to check with IORESOURCE_SYSTEM_RAM,
    instead of strcmp() with "System RAM", to walk through System
    RAM ranges in the iomem table.

    No functional change is made to the interface.

    Signed-off-by: Toshi Kani
    Signed-off-by: Borislav Petkov
    Reviewed-by: Krzysztof Kozlowski
    Cc: Andrew Morton
    Cc: Andy Lutomirski
    Cc: Borislav Petkov
    Cc: Brian Gerst
    Cc: Denys Vlasenko
    Cc: H. Peter Anvin
    Cc: Kukjin Kim
    Cc: Linus Torvalds
    Cc: Luis R. Rodriguez
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: Toshi Kani
    Cc: linux-arch@vger.kernel.org
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux-mm
    Cc: linux-samsung-soc@vger.kernel.org
    Link: http://lkml.kernel.org/r/1453841853-11383-12-git-send-email-bp@alien8.de
    Signed-off-by: Ingo Molnar

    Toshi Kani
     

27 Jan, 2016

1 commit

  • The s3c2410 is allowing board data to overload the default ECC layout
    defined inside the driver, but this feature is not used by board
    specific definitions.
    Kill this field so that we can easily move to a model where ecclayout
    are dynamically allocated by the NAND controller driver.

    Signed-off-by: Boris Brezillon
    Acked-by: Krzysztof Kozlowski
    Signed-off-by: Brian Norris

    Boris BREZILLON
     

21 Jan, 2016

1 commit

  • Pull ARM SoC multiplatform code updates from Arnd Bergmann:
    "This branch is the culmination of 5 years of effort to bring the ARMv6
    and ARMv7 platforms together such that they can all be enabled and
    boot the same kernel. It has been a tremendous amount of cleanup and
    refactoring by a huge number of people, and creation of several new
    (and major) subsystems to better abstract out all the platform details
    in an appropriate manner.

    The bulk of this branch is a large patchset from Arnd that brings
    several of the more minor and older platforms we have closer to
    multiplatform support. Among these are MMP, S3C64xx, Orion5x, mv78xx0
    and realview Much of this is moving around header files from old mach
    directories, but there are also some cleanup patches of debug_ll
    (lowlevel debug per-platform options) and other parts.

    Linus Walleij also has some patchs to clean up the older ARM Realview
    platforms by finally introducing DT support, and Rob Herring has some
    for ARM Versatile which is now DT-only. Both of these platforms are
    now multiplatform.

    Finally, a couple of patches from Russell for Dove PMU, and a fix from
    Valentin Rothberg for Exynos ADC, which were rebased on top of the
    series to avoid conflicts"

    * tag 'armsoc-multiplatform' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (75 commits)
    ARM: realview: don't select SMP_ON_UP for UP builds
    ARM: s3c: simplify s3c_irqwake_{e,}intallow definition
    ARM: s3c64xx: fix pm-debug compilation
    iio: exynos-adc: fix irqf_oneshot.cocci warnings
    ARM: realview: build realview-dt SMP support only when used
    ARM: realview: select apropriate targets
    ARM: realview: clean up header files
    ARM: realview: make all header files local
    ARM: no longer make CPU targets visible separately
    ARM: integrator: use explicit core module options
    ARM: realview: enable multiplatform
    ARM: make default platform work for NOMMU
    ARM: debug-ll: move DEBUG_LL_UART_EFM32 to correct Kconfig location
    ARM: defconfig: use correct debug_ll settings
    ARM: versatile: convert to multi-platform
    ARM: versatile: merge mach code into a single file
    ARM: versatile: switch to DT only booting and remove legacy code
    ARM: versatile: add DT based PCI detection
    ARM: pxa: mark ezx structures as __maybe_unused
    ARM: pxa: mark raumfeld init functions as __maybe_unused
    ...

    Linus Torvalds
     

18 Jan, 2016

1 commit

  • Pull sound updates from Takashi Iwai:
    "We've had quite busy weeks in this cycle. Looking at ALSA core, the
    significant changes are a few fixes wrt timer and sequencer ioctls
    that have been revealed by fuzzer recently. Other than that, ASoC
    core got a few updates about DAI link handling, but these are rather
    straightforward refactoring.

    In drivers scene, ASoC received quite lots of new drivers in addition
    to bunch of updates for still ongoing Intel Skylake support and
    topology API. HD-audio gained a new HDMI/DP hotplug notification via
    component. FireWire got a pile of code refactoring/updates with
    SCS.1x driver integration.

    More highlights are shown below.

    [ NOTE: this contains also many commits for DRM. This is due to the
    pull of drm stable branch into sound tree, as the base of i915 audio
    component work for HD-audio. The highlights below don't contain
    these DRM changes, as these are supposed to be pulled via drm tree
    in anyway sooner or later. ]

    Core:
    - Handful fixes to harden ALSA timer and sequencer ioctls against
    races reported by syzkaller fuzzer
    - Irq description string can be unique to each card; only for
    HD-audio for now

    ASoC:
    - Conversion of the array of DAI links to a list for supporting
    dynamically adding and removing DAI links
    - Topology API enhancements to make everything more component based
    and being able to specify PCM links via topology
    - Some more fixes for the topology code, though it is still not final
    and ready for enabling in production; we really need to get to the
    point where that can be done
    - A pile of changes for Intel SkyLake drivers which hopefully deliver
    some useful initial functionality for systems with this chipset,
    though there is more work still to come
    - Lots of new features and cleanups for the Renesas drivers
    - ANC support for WM5110
    - New drivers: Imagination Technologies IPs, Atmel class D speaker,
    Cirrus CS47L24 and WM1831, Dialog DA7128, Realtek RT5659 and
    RT56156, Rockchip RK3036, TI PC3168A, and AMD ACP
    - Rename PCM1792a driver to be generic pcm179x

    HD-Audio:
    - Use audio component for i915 HDMI/DP hotplug handling
    - On-demand binding with i915 driver
    - bdl_pos_adj parameter adjustment for Baytrail controllers
    - Enable power_save_node for CX20722; this shouldn't lead to
    regression, hopefully
    - Kabylake HDMI/DP codec support
    - Quirks for Lenovo E50-80, Dell Latitude E-series, and other Dell
    machines
    - A few code refactoring

    FireWire:
    - Lots of code cleanup and refactoring
    - Integrate the support of SCS.1x devices into snd-oxfw driver;
    snd-scs1x driver is obsoleted

    USB-audio:
    - Fix possible NULL dereference at disconnection
    - A regression fix for Native Instruments devices

    Misc:
    - A few code cleanups of fm801 driver"

    * tag 'sound-4.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (722 commits)
    ALSA: timer: Code cleanup
    ALSA: timer: Harden slave timer list handling
    ALSA: hda - Add fixup for Dell Latitidue E6540
    ALSA: timer: Fix race among timer ioctls
    ALSA: hda - add codec support for Kabylake display audio codec
    ALSA: timer: Fix double unlink of active_list
    ALSA: usb-audio: Fix mixer ctl regression of Native Instrument devices
    ALSA: hda - fix the headset mic detection problem for a Dell laptop
    ALSA: hda - Fix white noise on Dell Latitude E5550
    ALSA: hda_intel: add card number to irq description
    ALSA: seq: Fix race at timer setup and close
    ALSA: seq: Fix missing NULL check at remove_events ioctl
    ALSA: usb-audio: Avoid calling usb_autopm_put_interface() at disconnect
    ASoC: hdac_hdmi: remove unused hdac_hdmi_query_pin_connlist
    ASoC: AMD: Add missing include file
    ALSA: hda - Fixup inverted internal mic for Lenovo E50-80
    ALSA: usb: Add native DSD support for Oppo HA-1
    ASoC: Make aux_dev more like a generic component
    ASoC: bcm2835: cleanup includes by ordering them alphabetically
    ASoC: AMD: Manage ACP 2.x SRAM banks power
    ...

    Linus Torvalds
     

14 Jan, 2016

1 commit

  • Pull spi updates from Mark Brown:
    "A quiet release for SPI, not even many driver updates:

    - Add a dummy loopback driver for use in exercising framework
    features during development.

    - Move the test utilities to tools/ and add support for transferring
    data to and from a file instead of stdin and stdout to spidev_test.

    - Support for Mediatek MT2701 and Renesas AG5 deices"

    * tag 'spi-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (69 commits)
    spi: loopback: fix typo in MODULE_PARM_DESC
    spi: sun4i: Prevent chip-select from being activated twice before a transfer
    spi: loopback-test: spi_check_rx_ranges can get always done
    spi: loopback-test: rename method spi_test_fill_tx to spi_test_fill_pattern
    spi: loopback-test: write rx pattern also when running without tx_buf
    spi: fsl-espi: expose maximum transfer size limit
    spi: expose master transfer size limitation.
    spi: zynq: use to_platform_device()
    spi: cadence: use to_platform_device()
    spi: mediatek: Add spi support for mt2701 IC
    spi: mediatek: merge all identical compat to mtk_common_compat
    spi: mtk: Add bindings for mediatek MT2701 soc platform
    spi: mediatek: Prevent overflows in FIFO transfers
    spi: s3c64xx: Remove unused platform_device_id entries
    spi: use to_spi_device
    spi: dw: Use SPI_TMOD_TR rather than magic const 0 to set tmode
    spi: imx: defer spi initialization, if DMA engine is
    spi: imx: return error from dma channel request
    spi: imx: enable loopback only for ECSPI controller family
    spi: imx: fix loopback mode setup after controller reset
    ...

    Linus Torvalds
     

01 Jan, 2016

1 commit

  • For a long time, gcc has warned about odd configurations on s3c64xx:

    In file included from arch/arm/plat-samsung/pm.c:34:0:
    arch/arm/mach-s3c64xx/include/mach/pm-core.h:61:0: warning: "s3c_irqwake_eintallow" redefined
    #define s3c_irqwake_eintallow ((1 << 28) - 1)
    In file included from arch/arm/plat-samsung/pm.c:33:0:
    arch/arm/plat-samsung/include/plat/pm.h:49:0: note: this is the location of the previous definition
    #define s3c_irqwake_eintallow 0

    The definitions of s3c_irqwake_intallow and s3c_irqwake_eintallow are a
    bit consistent between the various platforms. Things have become easier
    now that it's only s3c24xx and s3c64xx that use them at all, so I've tried
    to rearrange the definitions to make it more obvious what is going on.

    Signed-off-by: Arnd Bergmann
    Reviewed-by: Krzysztof Kozlowski

    Arnd Bergmann
     

02 Dec, 2015

6 commits

  • Most of the code for the s3c64xx platform is only used when booting
    with ATAGS based board files, but not when using device-tree.

    This tries to identify all the s3c64xx specific code that is
    unneeded when CONFIG_ATAGS is not set, so we can build a smaller
    DT-only kernel if configured that way.

    All board support is still left intact but now depends on the
    CONFIG_ATAGS symbol that users may intentionally disable.

    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     
  • After all preparation work is done, we can finally move the Kconfig
    option for s3c64xx into ARCH_MULTIPLATFORM. This implies allowing
    SAMSUNG_ATAGS for multiplatform again, but now disallowing the
    ADC driver below it, as that still has dependencies on header files.

    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     
  • The old ADC and touchscreen drivers are not compatible with
    multiplatform support, but we can use the exynos-adc driver
    as a replacement.

    This changes the common device creation functions for s3c64xx
    (but not s3c24xx for now) to use the new driver. To do this,
    we have to pass the interrupt resources in the opposite order
    and pass the platform data in the adc device node.

    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     
  • This is another prerequisite for enabling multiplatform
    support, and it is the part I am least certain about.

    I assume it will cause the extra boot message "Cannot
    allocate irq_descs @ IRQ%d, assuming pre-allocated" to
    be printed, but otherwise work ok. This definitely needs
    to be tested on real hardware to see if it works.

    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     
  • In a multiplatform kernel, each initcall is run regardless
    of the platform it is meant for, so it must not attempt to
    access SoC-specific registers.

    This adds 'if (soc_is_s3c64xx)' to all initcalls that are
    specific to the s3c64xx platform, to prevent them from breaking
    other platforms once we can build them into a combined kernel.

    Signed-off-by: Arnd Bergmann
    Reviewed-by: Krzysztof Kozlowski

    Arnd Bergmann
     
  • The gpio-samsung driver is special in the sense that it
    interacts directly in multiple ways with the legacy platform
    code for the s3c24xx and s3c64xx platforms. In contrast,
    all devicetree based machines for Samsung, including the
    ones on those two SoC families use a different driver.

    The header files that define the interface between the platform
    code and the gpio driver are not visible when building a
    kernel for ARCH_MULTIPLATFORM, which prevents us from
    turning on this option for s3c64xx.

    To work around this, we now move the driver back into platform
    code, from where it was originally moved to as part of commit
    1b39d5f2cc5c28 ("gpio/samsung: gpio-samsung.c to support
    Samsung GPIOs").

    The long-term plan for this driver would be to remove it
    entirely, after all Samsung machines have been converted
    over to boot from DT, but there is currently no timeline
    for when that might happen.

    Signed-off-by: Arnd Bergmann
    Reviewed-by: Krzysztof Kozlowski

    Arnd Bergmann
     

21 Nov, 2015

1 commit

  • As we are now passing the filter data as pointers to the drivers,
    we can take the final step and also pass the filter function the
    same way. I'm keeping this change separate, as there it's less
    obvious that this is a net win.

    Upsides of this are:

    - The ASoC drivers are completely independent from the DMA engine
    implementation, which simplifies the Kconfig logic and in theory
    allows the same sound drivers to be built in a kernel that supports
    different kinds of dmaengine drivers.

    - Consistency with other subsystems and drivers

    On the other hand, we have a few downsides:

    - The s3c24xx-dma driver now needs to be built-in for the ac97 platform
    device to be instantiated on s3c2440.

    - samsung_dmaengine_pcm_config cannot be marked 'const' any more
    because the filter function pointer needs to be set at runtime.
    This is safe as long we don't have multiple different DMA engines
    in thet same system at runtime, but is nonetheless ugly.

    Signed-off-by: Arnd Bergmann
    Reviewed-by: Krzysztof Kozlowski
    Signed-off-by: Mark Brown

    Arnd Bergmann
     

19 Nov, 2015

3 commits

  • The s3c64xx platform data already contains a pointer to the
    DMA filter function, but not to the associated data.

    This simplifies the code and makes it more generic by
    passing the data along with the filter function like
    we do for other drivers.

    Signed-off-by: Arnd Bergmann
    Signed-off-by: Mark Brown

    Arnd Bergmann
     
  • This is a minor cleanup to make the s3c2412-i2s and s3c24xx-i2s
    drivers independent of the mach/dma.h header file and to allow
    removing the dependency on the specific dmaengine driver in the
    next patch.

    As a side not, only the s3c24xx-i2s driver seems to still be
    used, while the definition of the s3c2412-i2s platform device was
    removed in commit 6d259a25b56d ("ARM: SAMSUNG: use static
    declaration when it is not used in other files") after it had
    never been referenced since its introduction in f0fba2ad1b6b
    ("ASoC: multi-component - ASoC Multi-Component Support").

    Apparently it should have been used by mach-jive.c, but that
    never happened. My patch at this point leaves the current state
    unchanged, we can decide whether to fix or delete the jive
    driver and s3c2412-i2s another time.

    Signed-off-by: Arnd Bergmann
    Reviewed-by: Krzysztof Kozlowski
    Signed-off-by: Mark Brown

    Arnd Bergmann
     
  • ARM64 allmodconfig produces a bunch of warnings when building the
    samsung ASoC code:

    sound/soc/samsung/dmaengine.c: In function 'samsung_asoc_init_dma_data':
    sound/soc/samsung/dmaengine.c:53:32: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
    playback_data->filter_data = (void *)playback->channel;
    sound/soc/samsung/dmaengine.c:60:31: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
    capture_data->filter_data = (void *)capture->channel;

    We could easily shut up the warning by adding an intermediate cast,
    but there is a bigger underlying problem: The use of IORESOURCE_DMA
    to pass data from platform code to device drivers is dubious to start
    with, as what we really want is a pointer that can be passed into
    a filter function.

    Note that on s3c64xx, the pl08x DMA data is already a pointer, but
    gets cast to resource_size_t so we can pass it as a resource, and it
    then gets converted back to a pointer. In contrast, the data we pass
    for s3c24xx is an index into a device specific table, and we artificially
    convert that into a pointer for the filter function.

    Signed-off-by: Arnd Bergmann
    Reviewed-by: Krzysztof Kozlowski
    Signed-off-by: Mark Brown

    Arnd Bergmann
     

17 Nov, 2015

1 commit

  • Let's not mix platform_data headers with the core headers. Instead, let's
    create a subdir at linux/platform_data and move the headers to that
    common place, adding it to MAINTAINERS.

    The headers were moved with:
    mkdir include/linux/platform_data/media/; git mv include/media/gpio-ir-recv.h include/media/ir-rx51.h include/media/mmp-camera.h include/media/omap1_camera.h include/media/omap4iss.h include/media/s5p_hdmi.h include/media/si4713.h include/media/sii9234.h include/media/smiapp.h include/media/soc_camera.h include/media/soc_camera_platform.h include/media/timb_radio.h include/media/timb_video.h include/linux/platform_data/media/

    And the references fixed with this script:
    MAIN_DIR="linux/platform_data/"
    PREV_DIR="media/"
    DIRS="media/"

    echo "Checking affected files" >&2
    for i in $DIRS; do
    for j in $(find include/$MAIN_DIR/$i -type f -name '*.h'); do
    n=`basename $j`
    git grep -l $n
    done
    done|sort|uniq >files && (
    echo "Handling files..." >&2;
    echo "for i in \$(cat files|grep -v Documentation); do cat \$i | \\";
    (
    cd include/$MAIN_DIR;
    for j in $DIRS; do
    for i in $(ls $j); do
    echo "perl -ne 's,(include [\\\"\\&2;
    echo "for i in MAINTAINERS \$(cat files); do cat \$i | \\";
    (
    cd include/$MAIN_DIR;
    for j in $DIRS; do
    for i in $(ls $j); do
    echo " perl -ne 's,include/$PREV_DIR($i)\b,include/$MAIN_DIR$j\1,; print \$_' |\\";
    done;
    done;
    echo "cat > a && mv a \$i; done"
    );
    ) >script && . ./script

    Signed-off-by: Mauro Carvalho Chehab
    Acked-by: Arnd Bergmann
    Acked-by: Lee Jones
    Acked-by: Krzysztof Kozlowski

    Mauro Carvalho Chehab
     

27 Sep, 2015

1 commit