05 Aug, 2013

2 commits

  • Add some necessary braces that have been removed during driver cleanup.
    This fixes the I2C prescaler calculation.

    Signed-off-by: Michael Brunner
    Tested-by: Guenter Roeck
    Reviewed-by: Guenter Roeck
    Signed-off-by: Wolfram Sang

    Michael Brunner
     
  • Recently we have been seing some reports about PIO mode not working properly.

    - http://www.spinics.net/lists/linux-i2c/msg11985.html
    - http://marc.info/?l=linux-i2c&m=137235593101385&w=2
    - https://lkml.org/lkml/2013/6/24/430

    Let's use DMA mode even for small transfers.

    Without this patch, i2c reads the incorrect sgtl5000 version on a mx28evk when
    touchscreen is enabled:

    [ 5.856270] sgtl5000 0-000a: Device with ID register 0 is not a sgtl5000
    [ 9.877307] sgtl5000 0-000a: ASoC: failed to probe CODEC -19
    [ 9.883528] mxs-sgtl5000 sound.12: ASoC: failed to instantiate card -19
    [ 9.892955] mxs-sgtl5000 sound.12: snd_soc_register_card failed (-19)

    Cc:
    Signed-off-by: Fabio Estevam
    Acked-by: Shawn Guo
    Acked-by: Lucas Stach
    Acked-by: Marek Vasut

    [wsa: we have a proper solution for -next, so this non intrusive
    solution is OK for now]

    Signed-off-by: Wolfram Sang

    Fabio Estevam
     

14 Jul, 2013

1 commit

  • Pull MIPS updates from Ralf Baechle:
    "MIPS updates:

    - All the things that didn't make 3.10.
    - Removes the Windriver PPMC platform. Nobody will miss it.
    - Remove a workaround from kernel/irq/irqdomain.c which was there
    exclusivly for MIPS. Patch by Grant Likely.
    - More small improvments for the SEAD 3 platform
    - Improvments on the BMIPS / SMP support for the BCM63xx series.
    - Various cleanups of dead leftovers.
    - Platform support for the Cavium Octeon-based EdgeRouter Lite.

    Two large KVM patchsets didn't make it for this pull request because
    their respective authors are vacationing"

    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (124 commits)
    MIPS: Kconfig: Add missing MODULES dependency to VPE_LOADER
    MIPS: BCM63xx: CLK: Add dummy clk_{set,round}_rate() functions
    MIPS: SEAD3: Disable L2 cache on SEAD-3.
    MIPS: BCM63xx: Enable second core SMP on BCM6328 if available
    MIPS: BCM63xx: Add SMP support to prom.c
    MIPS: define write{b,w,l,q}_relaxed
    MIPS: Expose missing pci_io{map,unmap} declarations
    MIPS: Malta: Update GCMP detection.
    Revert "MIPS: make CAC_ADDR and UNCAC_ADDR account for PHYS_OFFSET"
    MIPS: APSP: Remove
    SSB: Kconfig: Amend SSB_EMBEDDED dependencies
    MIPS: microMIPS: Fix improper definition of ISA exception bit.
    MIPS: Don't try to decode microMIPS branch instructions where they cannot exist.
    MIPS: Declare emulate_load_store_microMIPS as a static function.
    MIPS: Fix typos and cleanup comment
    MIPS: Cleanup indentation and whitespace
    MIPS: BMIPS: support booting from physical CPU other than 0
    MIPS: Only set cpu_has_mmips if SYS_SUPPORTS_MICROMIPS
    MIPS: GIC: Fix gic_set_affinity infinite loop
    MIPS: Don't save/restore OCTEON wide multiplier state on syscalls.
    ...

    Linus Torvalds
     

05 Jul, 2013

2 commits

  • Pull i2c updates from Wolfram Sang:
    - new drivers: Kontron PLD, Wondermedia VT
    - mv64xxx driver gained sun4i support and a bigger cleanup
    - duplicate driver 'intel-mid' removed
    - added generic device tree binding for sda holding time (and
    designware driver already uses it)
    - we tried to allow driver probing with only device tree and no i2c
    ids, but I had to revert it because of side effects. Needs some
    rethinking.
    - driver bugfixes, cleanups...

    * 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (34 commits)
    i2c-designware: use div_u64 to fix link
    i2c: Kontron PLD i2c bus driver
    i2c: iop3xxx: fix build failure after waitqueue changes
    i2c-designware: make SDA hold time configurable
    i2c: mv64xxx: Set bus frequency to 100kHz if clock-frequency is not provided
    i2c: imx: allow autoloading on dt ids
    i2c: mv64xxx: Fix transfer error code
    i2c: i801: SMBus patch for Intel Coleto Creek DeviceIDs
    i2c: omap: correct usage of the interrupt enable register
    i2c-pxa: prepare clock before use
    Revert "i2c: core: make it possible to match a pure device tree driver"
    i2c: nomadik: allocate adapter number dynamically
    i2c: nomadik: support elder Nomadiks
    i2c: mv64xxx: Add Allwinner sun4i compatible
    i2c: mv64xxx: make the registers offset configurable
    i2c: mv64xxx: Add macros to access parts of registers
    i2c: vt8500: Add support for I2C bus on Wondermedia SoCs
    i2c: designware: fix race between subsequent xfers
    i2c: bfin-twi: Read and write the FIFO in loop
    i2c: core: make it possible to match a pure device tree driver
    ...

    Linus Torvalds
     
  • Pull powerpc updates from Ben Herrenschmidt:
    "This is the powerpc changes for the 3.11 merge window. In addition to
    the usual bug fixes and small updates, the main highlights are:

    - Support for transparent huge pages by Aneesh Kumar for 64-bit
    server processors. This allows the use of 16M pages as transparent
    huge pages on kernels compiled with a 64K base page size.

    - Base VFIO support for KVM on power by Alexey Kardashevskiy

    - Wiring up of our nvram to the pstore infrastructure, including
    putting compressed oopses in there by Aruna Balakrishnaiah

    - Move, rework and improve our "EEH" (basically PCI error handling
    and recovery) infrastructure. It is no longer specific to pseries
    but is now usable by the new "powernv" platform as well (no
    hypervisor) by Gavin Shan.

    - I fixed some bugs in our math-emu instruction decoding and made it
    usable to emulate some optional FP instructions on processors with
    hard FP that lack them (such as fsqrt on Freescale embedded
    processors).

    - Support for Power8 "Event Based Branch" facility by Michael
    Ellerman. This facility allows what is basically "userspace
    interrupts" for performance monitor events.

    - A bunch of Transactional Memory vs. Signals bug fixes and HW
    breakpoint/watchpoint fixes by Michael Neuling.

    And more ... I appologize in advance if I've failed to highlight
    something that somebody deemed worth it."

    * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (156 commits)
    pstore: Add hsize argument in write_buf call of pstore_ftrace_call
    powerpc/fsl: add MPIC timer wakeup support
    powerpc/mpic: create mpic subsystem object
    powerpc/mpic: add global timer support
    powerpc/mpic: add irq_set_wake support
    powerpc/85xx: enable coreint for all the 64bit boards
    powerpc/8xx: Erroneous double irq_eoi() on CPM IRQ in MPC8xx
    powerpc/fsl: Enable CONFIG_E1000E in mpc85xx_smp_defconfig
    powerpc/mpic: Add get_version API both for internal and external use
    powerpc: Handle both new style and old style reserve maps
    powerpc/hw_brk: Fix off by one error when validating DAWR region end
    powerpc/pseries: Support compression of oops text via pstore
    powerpc/pseries: Re-organise the oops compression code
    pstore: Pass header size in the pstore write callback
    powerpc/powernv: Fix iommu initialization again
    powerpc/pseries: Inform the hypervisor we are using EBB regs
    powerpc/perf: Add power8 EBB support
    powerpc/perf: Core EBB support for 64-bit book3s
    powerpc/perf: Drop MMCRA from thread_struct
    powerpc/perf: Don't enable if we have zero events
    ...

    Linus Torvalds
     

04 Jul, 2013

4 commits

  • Pull PCI changes from Bjorn Helgaas:
    "PCI device hotplug
    - Add pci_alloc_dev() interface (Gu Zheng)
    - Add pci_bus_get()/put() for reference counting (Jiang Liu)
    - Fix SR-IOV reference count issues (Jiang Liu)
    - Remove unused acpi_pci_roots list (Jiang Liu)

    MSI
    - Conserve interrupt resources on x86 (Alexander Gordeev)

    AER
    - Force fatal severity when component has been reset (Betty Dall)
    - Reset link below Root Port as well as Downstream Port (Betty Dall)
    - Fix "Firmware first" flag setting (Bjorn Helgaas)
    - Don't parse HEST for non-PCIe devices (Bjorn Helgaas)

    ASPM
    - Warn when we can't disable ASPM as driver requests (Bjorn Helgaas)

    Miscellaneous
    - Add CircuitCo PCI IDs (Darren Hart)
    - Add AMD CZ SATA and SMBus PCI IDs (Shane Huang)
    - Work around Ivytown NTB BAR size issue (Jon Mason)
    - Detect invalid initial BAR values (Kevin Hao)
    - Add pcibios_release_device() (Sebastian Ott)
    - Fix powerpc & sparc PCI_UNKNOWN power state usage (Bjorn Helgaas)"

    * tag 'pci-v3.11-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (51 commits)
    MAINTAINERS: Add ACPI folks for ACPI-related things under drivers/pci
    PCI: Add CircuitCo vendor ID and subsystem ID
    PCI: Use pdev->pm_cap instead of pci_find_capability(..,PCI_CAP_ID_PM)
    PCI: Return early on allocation failures to unindent mainline code
    PCI: Simplify IOV implementation and fix reference count races
    PCI: Drop redundant setting of bus->is_added in virtfn_add_bus()
    unicore32/PCI: Remove redundant call of pci_bus_add_devices()
    m68k/PCI: Remove redundant call of pci_bus_add_devices()
    PCI / ACPI / PM: Use correct power state strings in messages
    PCI: Fix comment typo for pcie_pme_remove()
    PCI: Rename pci_release_bus_bridge_dev() to pci_release_host_bridge_dev()
    PCI: Fix refcount issue in pci_create_root_bus() error recovery path
    ia64/PCI: Clean up pci_scan_root_bus() usage
    PCI/AER: Reset link for devices below Root Port or Downstream Port
    ACPI / APEI: Force fatal AER severity when component has been reset
    PCI/AER: Remove "extern" from function declarations
    PCI/AER: Move AER severity defines to aer.h
    PCI/AER: Set dev->__aer_firmware_first only for matching devices
    PCI/AER: Factor out HEST device type matching
    PCI/AER: Don't parse HEST table for non-PCIe devices
    ...

    Linus Torvalds
     
  • Pull power management and ACPI updates from Rafael Wysocki:
    "This time the total number of ACPI commits is slightly greater than
    the number of cpufreq commits, but Viresh Kumar (who works on cpufreq)
    remains the most active patch submitter.

    To me, the most significant change is the addition of offline/online
    device operations to the driver core (with the Greg's blessing) and
    the related modifications of the ACPI core hotplug code. Next are the
    freezer updates from Colin Cross that should make the freezing of
    tasks a bit less heavy weight.

    We also have a couple of regression fixes, a number of fixes for
    issues that have not been identified as regressions, two new drivers
    and a bunch of cleanups all over.

    Highlights:

    - Hotplug changes to support graceful hot-removal failures.

    It sometimes is necessary to fail device hot-removal operations
    gracefully if they cannot be carried out completely. For example,
    if memory from a memory module being hot-removed has been allocated
    for the kernel's own use and cannot be moved elsewhere, it's
    desirable to fail the hot-removal operation in a graceful way
    rather than to crash the kernel, but currenty a success or a kernel
    crash are the only possible outcomes of an attempted memory
    hot-removal. Needless to say, that is not a very attractive
    alternative and it had to be addressed.

    However, in order to make it work for memory, I first had to make
    it work for CPUs and for this purpose I needed to modify the ACPI
    processor driver. It's been split into two parts, a resident one
    handling the low-level initialization/cleanup and a modular one
    playing the actual driver's role (but it binds to the CPU system
    device objects rather than to the ACPI device objects representing
    processors). That's been sort of like a live brain surgery on a
    patient who's riding a bike.

    So this is a little scary, but since we found and fixed a couple of
    regressions it caused to happen during the early linux-next testing
    (a month ago), nobody has complained.

    As a bonus we remove some duplicated ACPI hotplug code, because the
    ACPI-based CPU hotplug is now going to use the common ACPI hotplug
    code.

    - Lighter weight freezing of tasks.

    These changes from Colin Cross and Mandeep Singh Baines are
    targeted at making the freezing of tasks a bit less heavy weight
    operation. They reduce the number of tasks woken up every time
    during the freezing, by using the observation that the freezer
    simply doesn't need to wake up some of them and wait for them all
    to call refrigerator(). The time needed for the freezer to decide
    to report a failure is reduced too.

    Also reintroduced is the check causing a lockdep warining to
    trigger when try_to_freeze() is called with locks held (which is
    generally unsafe and shouldn't happen).

    - cpufreq updates

    First off, a commit from Srivatsa S Bhat fixes a resume regression
    introduced during the 3.10 cycle causing some cpufreq sysfs
    attributes to return wrong values to user space after resume. The
    fix is kind of fresh, but also it's pretty obvious once Srivatsa
    has identified the root cause.

    Second, we have a new freqdomain_cpus sysfs attribute for the
    acpi-cpufreq driver to provide information previously available via
    related_cpus. From Lan Tianyu.

    Finally, we fix a number of issues, mostly related to the
    CPUFREQ_POSTCHANGE notifier and cpufreq Kconfig options and clean
    up some code. The majority of changes from Viresh Kumar with bits
    from Jacob Shin, Heiko Stübner, Xiaoguang Chen, Ezequiel Garcia,
    Arnd Bergmann, and Tang Yuantian.

    - ACPICA update

    A usual bunch of updates from the ACPICA upstream.

    During the 3.4 cycle we introduced support for ACPI 5 extended
    sleep registers, but they are only supposed to be used if the
    HW-reduced mode bit is set in the FADT flags and the code attempted
    to use them without checking that bit. That caused suspend/resume
    regressions to happen on some systems. Fix from Lv Zheng causes
    those registers to be used only if the HW-reduced mode bit is set.

    Apart from this some other ACPICA bugs are fixed and code cleanups
    are made by Bob Moore, Tomasz Nowicki, Lv Zheng, Chao Guan, and
    Zhang Rui.

    - cpuidle updates

    New driver for Xilinx Zynq processors is added by Michal Simek.

    Multidriver support simplification, addition of some missing
    kerneldoc comments and Kconfig-related fixes come from Daniel
    Lezcano.

    - ACPI power management updates

    Changes to make suspend/resume work correctly in Xen guests from
    Konrad Rzeszutek Wilk, sparse warning fix from Fengguang Wu and
    cleanups and fixes of the ACPI device power state selection
    routine.

    - ACPI documentation updates

    Some previously missing pieces of ACPI documentation are added by
    Lv Zheng and Aaron Lu (hopefully, that will help people to
    uderstand how the ACPI subsystem works) and one outdated doc is
    updated by Hanjun Guo.

    - Assorted ACPI updates

    We finally nailed down the IA-64 issue that was the reason for
    reverting commit 9f29ab11ddbf ("ACPI / scan: do not match drivers
    against objects having scan handlers"), so we can fix it and move
    the ACPI scan handler check added to the ACPI video driver back to
    the core.

    A mechanism for adding CMOS RTC address space handlers is
    introduced by Lan Tianyu to allow some EC-related breakage to be
    fixed on some systems.

    A spec-compliant implementation of acpi_os_get_timer() is added by
    Mika Westerberg.

    The evaluation of _STA is added to do_acpi_find_child() to avoid
    situations in which a pointer to a disabled device object is
    returned instead of an enabled one with the same _ADR value. From
    Jeff Wu.

    Intel BayTrail PCH (Platform Controller Hub) support is added to
    the ACPI driver for Intel Low-Power Subsystems (LPSS) and that
    driver is modified to work around a couple of known BIOS issues.
    Changes from Mika Westerberg and Heikki Krogerus.

    The EC driver is fixed by Vasiliy Kulikov to use get_user() and
    put_user() instead of dereferencing user space pointers blindly.

    Code cleanups are made by Bjorn Helgaas, Nicholas Mazzuca and Toshi
    Kani.

    - Assorted power management updates

    The "runtime idle" helper routine is changed to take the return
    values of the callbacks executed by it into account and to call
    rpm_suspend() if they return 0, which allows us to reduce the
    overall code bloat a bit (by dropping some code that's not
    necessary any more after that modification).

    The runtime PM documentation is updated by Alan Stern (to reflect
    the "runtime idle" behavior change).

    New trace points for PM QoS are added by Sahara
    ().

    PM QoS documentation is updated by Lan Tianyu.

    Code cleanups are made and minor issues are addressed by Bernie
    Thompson, Bjorn Helgaas, Julius Werner, and Shuah Khan.

    - devfreq updates

    New driver for the Exynos5-bus device from Abhilash Kesavan.

    Minor cleanups, fixes and MAINTAINERS update from MyungJoo Ham,
    Abhilash Kesavan, Paul Bolle, Rajagopal Venkat, and Wei Yongjun.

    - OMAP power management updates

    Adaptive Voltage Scaling (AVS) SmartReflex voltage control driver
    updates from Andrii Tseglytskyi and Nishanth Menon."

    * tag 'pm+acpi-3.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (162 commits)
    cpufreq: Fix cpufreq regression after suspend/resume
    ACPI / PM: Fix possible NULL pointer deref in acpi_pm_device_sleep_state()
    PM / Sleep: Warn about system time after resume with pm_trace
    cpufreq: don't leave stale policy pointer in cdbs->cur_policy
    acpi-cpufreq: Add new sysfs attribute freqdomain_cpus
    cpufreq: make sure frequency transitions are serialized
    ACPI: implement acpi_os_get_timer() according the spec
    ACPI / EC: Add HP Folio 13 to ec_dmi_table in order to skip DSDT scan
    ACPI: Add CMOS RTC Operation Region handler support
    ACPI / processor: Drop unused variable from processor_perflib.c
    cpufreq: tegra: call CPUFREQ_POSTCHANGE notfier in error cases
    cpufreq: s3c64xx: call CPUFREQ_POSTCHANGE notfier in error cases
    cpufreq: omap: call CPUFREQ_POSTCHANGE notfier in error cases
    cpufreq: imx6q: call CPUFREQ_POSTCHANGE notfier in error cases
    cpufreq: exynos: call CPUFREQ_POSTCHANGE notfier in error cases
    cpufreq: dbx500: call CPUFREQ_POSTCHANGE notfier in error cases
    cpufreq: davinci: call CPUFREQ_POSTCHANGE notfier in error cases
    cpufreq: arm-big-little: call CPUFREQ_POSTCHANGE notfier in error cases
    cpufreq: powernow-k8: call CPUFREQ_POSTCHANGE notfier in error cases
    cpufreq: pcc: call CPUFREQ_POSTCHANGE notfier in error cases
    ...

    Linus Torvalds
     
  • This fixes the following link error:

    drivers/built-in.o: In function `dw_i2c_probe':
    of_iommu.c:(.text+0x18c8f0): undefined reference to `__aeabi_uldivmod'
    make: *** [vmlinux] Error 1

    Signed-off-by: Vincent Stehlé
    Tested-by: Kevin Hilman
    Reviewed-by: Christian Ruppert
    Acked-by: Arnd Bergmann
    Signed-off-by: Wolfram Sang

    Vincent Stehlé
     
  • …/linusw/linux-pinctrl

    Pull pin control changes from Linus Walleij:

    - A large slew of improvements of the Genric pin configuration support,
    and deployment in four different platforms: Rockchip, Super-H PFC,
    ABx500 and TZ1090. Support BIAS_BUS_HOLD, get device tree parsing
    and debugfs support into shape.

    - We also have device tree support with generic naming conventions for
    the generic pin configuration.

    - Delete the unused and confusing direct pinconf API. Now state
    transitions is *the* way to control pins and multiplexing.

    - New drivers for Rockchip, TZ1090, and TZ1090 PDC.

    - Two pin control states related to power management are now handled in
    the device core: "sleep" and "idle", removing a lot of boilerplate
    code in drivers. We do not yet know if this is the final word for
    pin PM, but it already make things a lot easier to handle.

    - Handle sparse GPIO ranges passing a list of disparate pins, and
    utilize these in the new BayTrail (x86 Atom SoC) driver.

    - Make the sunxi (AllWinner) driver handle external interrupts.

    - Make it possible for pinctrl-single to handle the case where several
    pins are managed by a single register, and augment it to handle sleep
    modes.

    - Cleanups and improvements for the abx500 drivers.

    - Move Sirf pin control drivers to their own directory, support
    save/restore of context and add support for the SiRFatlas6 SoC.

    - PMU muxing for the Dove pinctrl driver.

    - Finalization and support for VF610 in the i.MX6 pinctrl driver.

    - Smoothen out various Exynos rough edges.

    - Generic cleanups of various kinds.

    * tag 'pinctrl-for-v3.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (82 commits)
    pinctrl: vt8500: wmt: remove redundant dev_err call in wmt_pinctrl_probe()
    pinctrl: remove bindings for pinconf options needing more thought
    pinctrl: remove slew-rate parameter from tz1090
    pinctrl: set unit for debounce time pinconfig to usec
    pinctrl: more clarifications for generic pull configs
    pinctrl: rip out the direct pinconf API
    pinctrl-tz1090-pdc: add TZ1090 PDC pinctrl driver
    pinctrl-tz1090: add TZ1090 pinctrl driver
    pinctrl: samsung: Staticize drvdata_list
    pinctrl: rockchip: Add missing irq_gc_unlock() call before return error
    pinctrl: abx500: rework error path
    pinctrl: abx500: suppress hardcoded value
    pinctrl: abx500: factorize code
    pinctrl: abx500: fix abx500_gpio_get()
    pinctrl: abx500: fix abx500_pin_config_set()
    pinctrl: abx500: Add device tree support
    sh-pfc: Guard DT parsing with #ifdef CONFIG_OF
    pinctrl: add Intel BayTrail GPIO/pinctrl support
    pinctrl: fix pinconf_ops::pin_config_dbg_parse_modify kerneldoc
    pinctrl: Staticize local symbols
    ...

    Conflicts:
    drivers/net/ethernet/ti/davinci_mdio.c
    drivers/pinctrl/Makefile

    Linus Torvalds
     

03 Jul, 2013

1 commit

  • Pull ARM SoC specific changes from Arnd Bergmann:
    "These changes are all to SoC-specific code, a total of 33 branches on
    17 platforms were pulled into this. Like last time, Renesas sh-mobile
    is now the platform with the most changes, followed by OMAP and
    EXYNOS.

    Two new platforms, TI Keystone and Rockchips RK3xxx are added in this
    branch, both containing almost no platform specific code at all, since
    they are using generic subsystem interfaces for clocks, pinctrl,
    interrupts etc. The device drivers are getting merged through the
    respective subsystem maintainer trees.

    One more SoC (u300) is now multiplatform capable and several others
    (shmobile, exynos, msm, integrator, kirkwood, clps711x) are moving
    towards that goal with this series but need more work.

    Also noteworthy is the work on PCI here, which is traditionally part
    of the SoC specific code. With the changes done by Thomas Petazzoni,
    we can now more easily have PCI host controller drivers as loadable
    modules and keep them separate from the platform code in
    drivers/pci/host. This has already led to the discovery that three
    platforms (exynos, spear and imx) are actually using an identical PCIe
    host controller and will be able to share a driver once support for
    spear and imx is added."

    * tag 'soc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (480 commits)
    ARM: integrator: let pciv3 use mem/premem from device tree
    ARM: integrator: set local side PCI addresses right
    ARM: dts: Add pcie controller node for exynos5440-ssdk5440
    ARM: dts: Add pcie controller node for Samsung EXYNOS5440 SoC
    ARM: EXYNOS: Enable PCIe support for Exynos5440
    pci: Add PCIe driver for Samsung Exynos
    ARM: OMAP5: voltagedomain data: remove temporary OMAP4 voltage data
    ARM: keystone: Move CPU bringup code to dedicated asm file
    ARM: multiplatform: always pick one CPU type
    ARM: imx: select syscon for IMX6SL
    ARM: keystone: select ARM_ERRATA_798181 only for SMP
    ARM: imx: Synertronixx scb9328 needs to select SOC_IMX1
    ARM: OMAP2+: AM43x: resolve SMP related build error
    dmaengine: edma: enable build for AM33XX
    ARM: edma: Add EDMA crossbar event mux support
    ARM: edma: Add DT and runtime PM support to the private EDMA API
    dmaengine: edma: Add TI EDMA device tree binding
    arm: add basic support for Rockchip RK3066a boards
    arm: add debug uarts for rockchip rk29xx and rk3xxx series
    arm: Add basic clocks for Rockchip rk3066a SoCs
    ...

    Linus Torvalds
     

01 Jul, 2013

2 commits

  • Add i2c support for the on-board PLD found on some Kontron embedded
    modules.

    Originally-From: Michael Brunner
    Signed-off-by: Kevin Strasser
    Acked-by: Guenter Roeck
    Acked-by: Darren Hart
    Signed-off-by: Wolfram Sang

    Kevin Strasser
     
  • There has long been a syntax problem in iop3xx_i2c_wait_event() which
    has been somehow hidden by the macros in . After some
    recent cleanup/rework of the wait_event_* helpers, the bug has come
    out from hiding and now results in build failure:

    /work/kernel/next/drivers/i2c/busses/i2c-iop3xx.c: In function 'iop3xx_i2c_wait_event':
    /work/kernel/next/drivers/i2c/busses/i2c-iop3xx.c:176:143: error: expected ')' before ';' token
    /work/kernel/next/drivers/i2c/busses/i2c-iop3xx.c:176:157: error: expected ')' before ';' token
    /work/kernel/next/drivers/i2c/busses/i2c-iop3xx.c:176:213: error: expected ')' before ';' token
    /work/kernel/next/drivers/i2c/busses/i2c-iop3xx.c:176:291: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
    /work/kernel/next/drivers/i2c/busses/i2c-iop3xx.c:176:551: error: expected ')' before ';' token
    /work/kernel/next/drivers/i2c/busses/i2c-iop3xx.c:176:565: error: expected ')' before ';' token
    /work/kernel/next/drivers/i2c/busses/i2c-iop3xx.c:176:764: error: expected ')' before ';' token
    /work/kernel/next/drivers/i2c/busses/i2c-iop3xx.c:176:778: error: expected ')' b

    Fix by removing stray ';'

    Signed-off-by: Kevin Hilman
    Signed-off-by: Wolfram Sang

    Kevin Hilman
     

26 Jun, 2013

5 commits


21 Jun, 2013

1 commit


20 Jun, 2013

2 commits

  • …linusw/linux-stericsson into next/soc

    From Linus Walleij:

    Device Tree and Multiplatform support for U300:
    - Add devicetree support to timer, pinctrl (probe), I2C block,
    watchdog, DMA controller and clocks.
    - Piecewise add a device tree containing all peripherals.
    - Delete the ATAG boot path.
    - Delete redundant platform data and board files.
    - Convert to multiplatform.

    * tag 'u300-multiplatform' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson: (40 commits)
    ARM: u300: switch to using syscon regmap for board
    ARM: u300: Update MMC configs for u300 defconfig
    spi: pl022: use DMA by default when probing from DT
    pinctrl: get rid of all platform data for coh901
    ARM: u300: convert MMC/SD clock to device tree
    ARM: u300: move the gated system controller clocks to DT
    i2c: stu300: do not request a specific clock name
    clk: move the U300 fixed and fixed-factor to DT
    ARM: u300: remove register definition file
    ARM: u300: add syscon node
    ARM: u300 use module_spi_driver to register driver
    ARM: u300: delete remnant machine headers
    ARM: u300: convert to multiplatform
    ARM: u300: localize <mach/u300-regs.h>
    ARM: u300: delete <mach/irqs.h>
    ARM: u300: delete <mach/hardware.h>
    ARM: u300: push down syscon registers
    ARM: u300: remove deps from debug macro
    ARM: u300: move debugmacro to debug includes
    ARM: u300: delete all static board data
    ...

    Signed-off-by: Arnd Bergmann <arnd@arndb.de>

    Arnd Bergmann
     
  • I got a build error today that made me realize that it is not
    possible to build a kernel for a SiRF platform without enabling
    CONFIG_PRIMA2, since a lot of common code depends on CONFIG_PRIMA2.

    This fixes all occurences that appear like common SiRF code.

    Signed-off-by: Arnd Bergmann
    Acked-by: Wolfram Sang
    Acked-by: Mark Brown
    Acked-by: Greg Kroah-Hartman
    Acked-by: Barry Song
    Acked-by: Mike Turquette

    Arnd Bergmann
     

19 Jun, 2013

3 commits

  • We've been lucky not to have any interrupts fire during the suspend
    path, otherwise we would have unpredictable behaviour in the kernel.

    Based on the logic of the kernel code interrupts from i2c should be
    prohibited during suspend. Kernel writes 0 to the I2C_IE register in
    the omap_i2c_runtime_suspend() function. In the other side kernel
    writes saved interrupt flags to the I2C_IE register in
    omap_i2c_runtime_resume() function. I.e. interrupts should be disabled
    during suspend.

    This works for chips with version1 registers scheme. Interrupts are
    disabled during suspend. For chips with version2 scheme registers
    writting 0 to the I2C_IE register does nothing (because now the
    I2C_IRQENABLE_SET register is located at this address). This register
    is used to enable interrupts. For disabling interrupts
    I2C_IRQENABLE_CLR register should be used.

    Because the registers I2C_IRQENABLE_SET and I2C_IE have the same
    addresses, the interrupt enabling procedure is unchanged.

    I've checked that interrupts in the i2c controller are still enabled
    after writting 0 to the I2C_IRQENABLE_SET register. With this patch
    interrupts are disabled in the omap_i2c_runtime_suspend() function.

    Patch is based on:
    git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
    tag: v3.10-rc2

    Verified on OMAP4430.

    Signed-off-by: Oleksandr Dmytryshyn
    Signed-off-by: Wolfram Sang

    Oleksandr Dmytryshyn
     
  • On OLPC XO-1.75 (MMP2), a WARN_ON() was occurring during boot
    since the clock being enabled by i2c-pxa had not been prepared.

    Use clk_prepare_enable() to ensure that the prepare operation
    has taken place, and use clk_disable_unprepare() in the matching
    shutdown paths.

    Signed-off-by: Daniel Drake
    Signed-off-by: Wolfram Sang

    Daniel Drake
     
  • This reverts commit c80f52847c50109ca248c22efbf71ff10553dca4.
    Regressions have been found and also run time based instantiation would
    fail. We need more thoughts on this.

    Signed-off-by: Wolfram Sang

    Wolfram Sang
     

17 Jun, 2013

1 commit

  • We have used the default clock associated with the block
    for a long time, only heuristics in the clock system has
    made this work anyway. This needs to be done away with as
    we start probing this driver and its clocks exclusively
    from the device tree.

    Acked-by: Wolfram Sang
    Signed-off-by: Linus Walleij

    Linus Walleij
     

16 Jun, 2013

2 commits

  • This utilize the new pinctrl core PM helpers to transition
    the driver to "sleep" and "idle" states, cutting away some
    boilerplate code.

    Cc: Hebbar Gururaja
    Cc: Mark Brown
    Cc: Dmitry Torokhov
    Cc: Kevin Hilman
    Cc: Greg Kroah-Hartman
    Cc: Stephen Warren
    Acked-by: Wolfram Sang
    Signed-off-by: Linus Walleij

    Linus Walleij
     
  • The Nomadik I2C was using a local atomic counter to number
    the I2C adapters. This does not work on configurations where
    you also add, say a GPIO bit-banged adapter to the system.
    They will start to conflict about being adapter 0.

    There is no reason to use the numbered adapter function, and
    the semantic effect on systems with only Nomadik I2C blocks
    will be none - instead of increasing the number atomically
    in the driver itself, it is done in the I2C core.

    Signed-off-by: Linus Walleij
    Signed-off-by: Wolfram Sang

    Linus Walleij
     

15 Jun, 2013

6 commits

  • The Nomadik I2C block was introduced with the Nomadik STn8815
    SoC (the STn8810 incidentally is identical to the one named
    i2c-stu300.c). However as developments have only been tested
    on the DB8500 family, it was not properly working with the
    STn8815 anymore.

    Rectify this by adding some vendor variant data in the same
    manner as other PrimeCells, and switch code path depending
    on version.

    Tested on the S8815 Nomadik dongle.

    Signed-off-by: Linus Walleij
    Signed-off-by: Wolfram Sang

    Linus Walleij
     
  • Add the compatible string for the Allwinner A10 i2c controller and the
    associated register layout.

    Signed-off-by: Maxime Ripard
    Tested-by: Sebastian Hesselbarth
    Tested-by: Andrew Lunn
    Signed-off-by: Wolfram Sang

    Maxime Ripard
     
  • The Allwinner i2c controller uses the same logic as the Marvell one, but
    with slightly different register offsets.

    Introduce a structure that will be passed by either the pdata or
    associated to the compatible strings, and that holds the various
    registers that might be needed.

    Signed-off-by: Maxime Ripard
    Tested-by: Sebastian Hesselbarth
    Tested-by: Andrew Lunn
    Signed-off-by: Wolfram Sang

    Maxime Ripard
     
  • These macros make it more comprehensive to access to useful masked and
    shifted area of the various registers used.

    Signed-off-by: Maxime Ripard
    Tested-by: Sebastian Hesselbarth
    Tested-by: Andrew Lunn
    Signed-off-by: Wolfram Sang

    Maxime Ripard
     
  • This patch adds support for the I2C bus controllers found on Wondermedia
    8xxx-series SoCs. Only master-mode is supported.

    Signed-off-by: Tony Prisk
    [wsa: fixed one macro to shift 8 instead of 16]
    Signed-off-by: Wolfram Sang

    Tony Prisk
     
  • The designware block is not always properly disabled in the case of
    transfer errors. Interrupts from aborted transfers might be handled
    after the data structures for the following transfer are initialised but
    before the hardware is set up. This can corrupt the data structures to
    the point that the system is stuck in an infinite interrupt loop (where
    FIFOs are never emptied because dev->msg_read_idx == dev->msgs_num).

    This patch cleanly disables the designware-i2c hardware at the end of
    every transfer, be it successful or not.

    Signed-off-by: Christian Ruppert
    [wsa: extended the comment]
    Signed-off-by: Wolfram Sang

    Christian Ruppert
     

13 Jun, 2013

7 commits

  • TWI transfer interrupts may be lost when system is heavily handling other
    interrupts, while current transfer handler depends on each accurate interrupt
    and misses some data in this case. Because there are 2 2-byte FIFOs in blackfin
    TWI controller, the occurrence of the data loss can be reduced by reading till
    the RX FIFO is empty and writing till the TX FIFO is full.

    Reported-by: Bob Maris
    Signed-off-by: Sonic Zhang
    Signed-off-by: Wolfram Sang

    Sonic Zhang
     
  • This tries to address an issue found when writing an MFD driver
    for the Nomadik STw481x PMICs: as the platform is using device
    tree exclusively I want to specify the driver matching like
    this:

    static const struct of_device_id stw481x_match[] = {
    { .compatible = "st,stw4810", },
    { .compatible = "st,stw4811", },
    {},
    };

    static struct i2c_driver stw481x_driver = {
    .driver = {
    .name = "stw481x",
    .of_match_table = stw481x_match,
    },
    .probe = stw481x_probe,
    .remove = stw481x_remove,
    };

    However that turns out not to be possible: the I2C probe code
    is written so that the probe() call is always passed a match
    from i2c_match_id() using non-devicetree matches.

    This is probably why most devices using device tree for I2C
    clients currently will pass no .of_match_table *at all* but
    instead just use .id_table from struct i2c_driver to match
    the device. As you realize that means that the whole idea with
    compatible strings is discarded, and that is why we find strange
    device tree I2C device compatible strings like "product" instead
    of "vendor,product" as you could expect.

    Let's figure out how to fix this before the mess spreads. This
    patch will allow probeing devices with only an of_match_table
    as per above, and will pass NULL as the second argument to the
    probe() function. If the driver wants to deduce secondary info
    from the struct of_device_id .data field, it has to call
    of_match_device() on its own match table in the probe function
    device tree probe path.

    If drivers define both an .of_match_table *AND* a i2c_driver
    .id_table, the .of_match_table will take precedence, just
    as is done in the i2c_device_match() function in i2c-core.c.

    I2C devices probed from device tree should subsequently be
    fixed to handle the case where of_match_table() is
    used (I think none of them do that today), and platforms should
    fix their device trees to use compatible strings for I2C devices
    instead of setting the name to Linux device driver names as is
    done in multiple cases today.

    Cc: Rob Herring
    Cc: Grant Likely
    Signed-off-by: Linus Walleij
    Signed-off-by: Wolfram Sang

    Linus Walleij
     
  • Use the wrapper functions for getting and setting the driver data using
    platform_device instead of using dev_{get,set}_drvdata() with &pdev->dev,
    so we can directly pass a struct platform_device.

    Signed-off-by: Jingoo Han
    Signed-off-by: Wolfram Sang

    Jingoo Han
     
  • devm_ioremap_resource does sanity checks on the given resource. No need to
    duplicate this in the driver.

    Signed-off-by: Wolfram Sang

    Wolfram Sang
     
  • If a process receives signal while it is waiting for I2C transfer to
    complete, an error is returned to the caller and the transfer is aborted.
    This can cause the driver to fail subsequent transfers. Also according to
    commit d295a86eab2 (i2c: mv64xxx: work around signals causing I2C
    transactions to be aborted) I2C drivers aren't supposed to abort
    transactions on signals.

    To prevent this switch to use wait_for_completion_timeout() instead of
    wait_for_completion_interruptible_timeout() in the designware I2C driver.

    Signed-off-by: Mika Westerberg
    Reviewed-by: Christian Ruppert
    Signed-off-by: Wolfram Sang

    Mika Westerberg
     
  • Since commit ab78029 (drivers/pinctrl: grab default handles from device core),
    we can rely on device core for handling pinctrl.

    So remove devm_pinctrl_get_select_default() from the driver.

    Signed-off-by: Fabio Estevam
    Signed-off-by: Wolfram Sang

    Fabio Estevam
     
  • Since commit ab78029 (drivers/pinctrl: grab default handles from device core),
    we can rely on device core for handling pinctrl.

    So remove devm_pinctrl_get_select_default() from the driver.

    Signed-off-by: Fabio Estevam
    Signed-off-by: Wolfram Sang

    Fabio Estevam
     

11 Jun, 2013

1 commit

  • CAVIUM_OCTEON_SOC most place we used to use CPU_CAVIUM_OCTEON. This
    allows us to CPU_CAVIUM_OCTEON in places where we have no OCTEON SOC.

    Remove CAVIUM_OCTEON_SIMULATOR as it doesn't really do anything, we can
    get the same configuration with CAVIUM_OCTEON_SOC.

    Signed-off-by: David Daney
    Cc: linux-mips@linux-mips.org
    Cc: linux-ide@vger.kernel.org
    Cc: linux-edac@vger.kernel.org
    Cc: linux-i2c@vger.kernel.org
    Cc: netdev@vger.kernel.org
    Cc: spi-devel-general@lists.sourceforge.net
    Cc: devel@driverdev.osuosl.org
    Cc: linux-usb@vger.kernel.org
    Acked-by: Greg Kroah-Hartman
    Acked-by: Wolfram Sang
    Acked-by: Mauro Carvalho Chehab
    Patchwork: https://patchwork.linux-mips.org/patch/5295/
    Signed-off-by: Ralf Baechle

    David Daney