24 Mar, 2014

1 commit

  • Fixes a build break due to the undeclared use of irq_of_parse_and_map()
    and of_iomap(). This build break was apparently introduced while the
    driver was unbuildable due to the bug fixed by
    62c19c9d29e65086e5ae76df371ed2e6b23f00cd ("i2c: Remove usage of
    orphaned symbol OF_I2C"). When 62c19c was added in v3.14-rc7,
    the driver was enabled again, breaking the powerpc mpc85xx_defconfig
    and mpc85xx_smp_defconfig.

    62c19c is marked for stable, so this should go there as well.

    Reported-by: Geert Uytterhoeven
    Signed-off-by: Scott Wood
    Signed-off-by: Wolfram Sang
    Cc: stable@kernel.org

    Scott Wood
     

14 Mar, 2014

1 commit


15 Feb, 2014

1 commit

  • Because the offload mechanism can fall back to a standard transfer,
    having two seperate initialization states is unfortunate. Let's just
    have one state which does things consistently. This fixes a bug where
    some preparation was missing when the fallback happened. And it makes
    the code much easier to follow. To implement this, we put the check
    if offload is possible at the top of the offload setup function.

    Signed-off-by: Wolfram Sang
    Tested-by: Gregory CLEMENT
    Cc: stable@vger.kernel.org # v3.12+
    Fixes: 930ab3d403ae (i2c: mv64xxx: Add I2C Transaction Generator support)

    Wolfram Sang
     

30 Jan, 2014

3 commits


27 Jan, 2014

3 commits

  • The response to a bus NACK is to return -ENXIO instead of the
    -EREMOTEIO being currently returned by the driver.

    Signed-off-by: Ben Dooks
    Signed-off-by: Wolfram Sang

    Ben Dooks
     
  • The current i2c-rcar driver does clk_get() without a corresponding
    clk_put(). Add the clk to the driver private data and then get it
    with the devm functions so that it is released when the driver is
    unbound.

    Note, we do not call clk_prepare_enable() at this point due to the
    very possible magic that is being done by the pm_runtime system
    underneath the driver.

    Signed-off-by: Ben Dooks
    Signed-off-by: Wolfram Sang

    Ben Dooks
     
  • The i2c-rcar driver currently prints an error message if the master_xfer
    callback fails. However if the bus is being probed then lots of NAKs
    will be generated, causing the output of a number of errors printed.

    To solve this, disable the print if the error is not -EREMOTEIO.

    An example of running i2cdetect:

    10: i2c-rcar e6530000.i2c: error -121 : 15
    -- i2c-rcar e6530000.i2c: error -121 : 15
    -- 12 i2c-rcar e6530000.i2c: error -121 : 15
    -- i2c-rcar e6530000.i2c: error -121 : 15
    -- i2c-rcar e6530000.i2c: error -121 : 15
    -- i2c-rcar e6530000.i2c: error -121 : 15
    -- i2c-rcar e6530000.i2c: error -121 : 15
    -- i2c-rcar e6530000.i2c: error -121 : 15

    Signed-off-by: Ben Dooks
    Signed-off-by: Wolfram Sang

    Ben Dooks
     

25 Jan, 2014

7 commits

  • Pull ACPI and power management updates from Rafael Wysocki:
    "As far as the number of commits goes, the top spot belongs to ACPI
    this time with cpufreq in the second position and a handful of PM
    core, PNP and cpuidle updates. They are fixes and cleanups mostly, as
    usual, with a couple of new features in the mix.

    The most visible change is probably that we will create struct
    acpi_device objects (visible in sysfs) for all devices represented in
    the ACPI tables regardless of their status and there will be a new
    sysfs attribute under those objects allowing user space to check that
    status via _STA.

    Consequently, ACPI device eject or generally hot-removal will not
    delete those objects, unless the table containing the corresponding
    namespace nodes is unloaded, which is extremely rare. Also ACPI
    container hotplug will be handled quite a bit differently and cpufreq
    will support CPU boost ("turbo") generically and not only in the
    acpi-cpufreq driver.

    Specifics:

    - ACPI core changes to make it create a struct acpi_device object for
    every device represented in the ACPI tables during all namespace
    scans regardless of the current status of that device. In
    accordance with this, ACPI hotplug operations will not delete those
    objects, unless the underlying ACPI tables go away.

    - On top of the above, new sysfs attribute for ACPI device objects
    allowing user space to check device status by triggering the
    execution of _STA for its ACPI object. From Srinivas Pandruvada.

    - ACPI core hotplug changes reducing code duplication, integrating
    the PCI root hotplug with the core and reworking container hotplug.

    - ACPI core simplifications making it use ACPI_COMPANION() in the
    code "glueing" ACPI device objects to "physical" devices.

    - ACPICA update to upstream version 20131218. This adds support for
    the DBG2 and PCCT tables to ACPICA, fixes some bugs and improves
    debug facilities. From Bob Moore, Lv Zheng and Betty Dall.

    - Init code change to carry out the early ACPI initialization
    earlier. That should allow us to use ACPI during the timekeeping
    initialization and possibly to simplify the EFI initialization too.
    From Chun-Yi Lee.

    - Clenups of the inclusions of ACPI headers in many places all over
    from Lv Zheng and Rashika Kheria (work in progress).

    - New helper for ACPI _DSM execution and rework of the code in
    drivers that uses _DSM to execute it via the new helper. From
    Jiang Liu.

    - New Win8 OSI blacklist entries from Takashi Iwai.

    - Assorted ACPI fixes and cleanups from Al Stone, Emil Goode, Hanjun
    Guo, Lan Tianyu, Masanari Iida, Oliver Neukum, Prarit Bhargava,
    Rashika Kheria, Tang Chen, Zhang Rui.

    - intel_pstate driver updates, including proper Baytrail support,
    from Dirk Brandewie and intel_pstate documentation from Ramkumar
    Ramachandra.

    - Generic CPU boost ("turbo") support for cpufreq from Lukasz
    Majewski.

    - powernow-k6 cpufreq driver fixes from Mikulas Patocka.

    - cpufreq core fixes and cleanups from Viresh Kumar, Jane Li, Mark
    Brown.

    - Assorted cpufreq drivers fixes and cleanups from Anson Huang, John
    Tobias, Paul Bolle, Paul Walmsley, Sachin Kamat, Shawn Guo, Viresh
    Kumar.

    - cpuidle cleanups from Bartlomiej Zolnierkiewicz.

    - Support for hibernation APM events from Bin Shi.

    - Hibernation fix to avoid bringing up nonboot CPUs with ACPI EC
    disabled during thaw transitions from Bjørn Mork.

    - PM core fixes and cleanups from Ben Dooks, Leonardo Potenza, Ulf
    Hansson.

    - PNP subsystem fixes and cleanups from Dmitry Torokhov, Levente
    Kurusa, Rashika Kheria.

    - New tool for profiling system suspend from Todd E Brandt and a
    cpupower tool cleanup from One Thousand Gnomes"

    * tag 'pm+acpi-3.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (153 commits)
    thermal: exynos: boost: Automatic enable/disable of BOOST feature (at Exynos4412)
    cpufreq: exynos4x12: Change L0 driver data to CPUFREQ_BOOST_FREQ
    Documentation: cpufreq / boost: Update BOOST documentation
    cpufreq: exynos: Extend Exynos cpufreq driver to support boost
    cpufreq / boost: Kconfig: Support for software-managed BOOST
    acpi-cpufreq: Adjust the code to use the common boost attribute
    cpufreq: Add boost frequency support in core
    intel_pstate: Add trace point to report internal state.
    cpufreq: introduce cpufreq_generic_get() routine
    ARM: SA1100: Create dummy clk_get_rate() to avoid build failures
    cpufreq: stats: create sysfs entries when cpufreq_stats is a module
    cpufreq: stats: free table and remove sysfs entry in a single routine
    cpufreq: stats: remove hotplug notifiers
    cpufreq: stats: handle cpufreq_unregister_driver() and suspend/resume properly
    cpufreq: speedstep: remove unused speedstep_get_state
    platform: introduce OF style 'modalias' support for platform bus
    PM / tools: new tool for suspend/resume performance optimization
    ACPI: fix module autoloading for ACPI enumerated devices
    ACPI: add module autoloading support for ACPI enumerated devices
    ACPI: fix create_modalias() return value handling
    ...

    Linus Torvalds
     
  • Commit 0998d0631001 (device-core: Ensure drvdata = NULL when no driver
    is bound) modified the driver core to always clear .driver and .drvdata
    on remove or probe error. No need for the I2C core to do it.

    Reported-by: Linus Torvalds
    Reported-by: Mika Westerberg
    Signed-off-by: Wolfram Sang

    Wolfram Sang
     
  • None of these files are actually using any __init type directives
    and hence don't need to include . Most are just a
    left over from __devinit and __cpuinit removal, or simply due to
    code getting copied from one driver to the next.

    Signed-off-by: Paul Gortmaker
    Acked-by: Jean Delvare
    Signed-off-by: Wolfram Sang

    Paul Gortmaker
     
  • This file is controlled by a tristate Kconfig option, and hence
    needs to include module.h so that it can get module_init() once
    we relocate it from init.h into module.h in the future.

    Note that module_exit() appears to be missing from the driver, so
    it is questionable whether it would actually work for a removal
    and reload cycle if it was configured for a modular build.

    Signed-off-by: Paul Gortmaker
    Signed-off-by: Wolfram Sang

    Paul Gortmaker
     
  • Use exactly the same log messages in the legacy setup function and the
    SB800+ setup function. This way strings can be reused, which saves
    some bytes in the generated binary.

    Signed-off-by: Jean Delvare
    Signed-off-by: Wolfram Sang

    Jean Delvare
     
  • Same messages for AMD main and auxiliary SMBus controllers lead to confusion,
    this patch is to remove confusion and keep consistent with non-AMD products.

    Signed-off-by: Shane Huang
    Reviewed-by: Jean Delvare
    Signed-off-by: Wolfram Sang

    Shane Huang
     
  • The locations of SMBus register base address and enablement bit are changed
    from AMD ML, which need this patch to be supported.

    Signed-off-by: Shane Huang
    Reviewed-by: Jean Delvare
    Signed-off-by: Wolfram Sang
    Cc: stable@vger.kernel.org

    Shane Huang
     

24 Jan, 2014

2 commits

  • Pull ARM SoC cleanups from Olof Johansson:
    "This is the branch where we usually queue up cleanup efforts, moving
    drivers out of the architecture directory, header file restructuring,
    etc. Sometimes they tangle with new development so it's hard to keep
    it strictly to cleanups.

    Some of the things included in this branch are:

    * Atmel SAMA5 conversion to common clock
    * Reset framework conversion for tegra platforms
    - Some of this depends on tegra clock driver reworks that are shared
    with Mike Turquette's clk tree.
    * Tegra DMA refactoring, which are shared branches with the DMA tree.
    * Removal of some header files on exynos to prepare for
    multiplatform"

    * tag 'cleanup-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (169 commits)
    ARM: mvebu: move Armada 370/XP specific definitions to armada-370-xp.h
    ARM: mvebu: remove prototypes of non-existing functions from common.h
    ARM: mvebu: move ARMADA_XP_MAX_CPUS to armada-370-xp.h
    serial: sh-sci: Rework baud rate calculation
    serial: sh-sci: Compute overrun_bit without using baud rate algo
    serial: sh-sci: Remove unused GPIO request code
    serial: sh-sci: Move overrun_bit and error_mask fields out of pdata
    serial: sh-sci: Support resources passed through platform resources
    serial: sh-sci: Don't check IRQ in verify port operation
    serial: sh-sci: Set the UPF_FIXED_PORT flag
    serial: sh-sci: Remove duplicate interrupt check in verify port op
    serial: sh-sci: Simplify baud rate calculation algorithms
    serial: sh-sci: Remove baud rate calculation algorithm 5
    serial: sh-sci: Sort headers alphabetically
    ARM: EXYNOS: Kill exynos_pm_late_initcall()
    ARM: EXYNOS: Consolidate selection of PM_GENERIC_DOMAINS for Exynos4
    ARM: at91: switch Calao QIL-A9260 board to DT
    clk: at91: fix pmc_clk_ids data type attriubte
    PM / devfreq: use inclusion instead of
    ARM: EXYNOS: remove for exynos
    ...

    Linus Torvalds
     
  • Pull ARM SoC non-critical fixes from Olof Johansson:
    "As usual, we have a batch of fixes that weren't considered significant
    enough to warrant going into the later -rcs for previous release, so
    they are queued up on this branch.

    A handful of these are for various DT fixups for Samsung platforms,
    and a handful of other minor things.

    There are also a couple of stable-marked patches for mvebu -- they
    came in quite late and we decided to keep them deferred until the
    first -stable release to get more coverage instead of squeezing them
    into 3.13"

    * tag 'fixes-nc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (32 commits)
    ARM: at91: smc: bug fix in sam9_smc_cs_read()
    i2c: mv64xxx: Document the newly introduced Armada XP A0 compatible
    i2c: mv64xxx: Fix bus hang on A0 version of the Armada XP SoCs
    ARM: mvebu: Add quirk for i2c for the OpenBlocks AX3-4 board
    ARM: mvebu: Add support to get the ID and the revision of a SoC
    ARM: dts: msm: Fix gpio interrupt and reg length
    irqchip: sirf: set IRQ_LEVEL status_flags
    ARM: OMAP2+: gpmc: Move legacy GPMC width setting
    ARM: OMAP2+: gpmc: Introduce gpmc_set_legacy()
    ARM: OMAP2+: gpmc: Move initialization outside the gpmc_t condition
    ARM: OMAP2+: board-generic: update SoC compatibility strings
    Documentation: dt: OMAP: explicitly state SoC compatible strings
    ARM: OMAP2+: enable AM33xx SOC EVM audio
    ARM: OMAP2+: Select USB PHY for AM335x SoC
    ARM: bcm2835: Fix grammar in help message
    ARM: msm: trout: fix uninit var warning
    ARM: dts: Use MSHC controller for eMMC memory for exynos4412-trats2
    ARM: dts: Fix definition of MSHC device tree nodes for exynos4x12
    ARM: dts: add clock provider for mshc node for Exynos4412 SOC
    clk: samsung: exynos4: Fix definition of div_mmc_pre4 divider
    ...

    Linus Torvalds
     

23 Jan, 2014

1 commit

  • Pull trivial tree updates from Jiri Kosina:
    "Usual rocket science stuff from trivial.git"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (39 commits)
    neighbour.h: fix comment
    sched: Fix warning on make htmldocs caused by wait.h
    slab: struct kmem_cache is protected by slab_mutex
    doc: Fix typo in USB Gadget Documentation
    of/Kconfig: Spelling s/one/once/
    mkregtable: Fix sscanf handling
    lp5523, lp8501: comment improvements
    thermal: rcar: comment spelling
    treewide: fix comments and printk msgs
    IXP4xx: remove '1 &&' from a condition check in ixp4xx_restart()
    Documentation: update /proc/uptime field description
    Documentation: Fix size parameter for snprintf
    arm: fix comment header and macro name
    asm-generic: uaccess: Spelling s/a ny/any/
    mtd: onenand: fix comment header
    doc: driver-model/platform.txt: fix a typo
    drivers: fix typo in DEVTMPFS_MOUNT Kconfig help text
    doc: Fix typo (acces_process_vm -> access_process_vm)
    treewide: Fix typos in printk
    drivers/gpu/drm/qxl/Kconfig: reformat the help text
    ...

    Linus Torvalds
     

17 Jan, 2014

1 commit

  • ACPI enumerated devices has ACPI style _HID and _CID strings,
    all of these strings can be used for both driver loading and matching.

    Currently, in Platform, I2C and SPI bus, the ACPI style driver matching
    is supported by invoking acpi_driver_match_device() in bus .match() callback.
    But, the module autoloading is still broken.

    For example, there is any ACPI device with _HID "INTABCD" that is
    enumerated to platform bus, and we have a driver that can probe it.

    The driver exports its module_alias as "acpi:INTABCD" use the following code
    static const struct acpi_device_id xxx_acpi_match[] = {
    { "INTABCD", 0 },
    { }
    };
    MODULE_DEVICE_TABLE(acpi, xxx_acpi_match);

    But, unfortunately, the device' modalias is shown as "platform:INTABCD:00",
    please refer to modalias_show() and platform_uevent() in
    drivers/base/platform.c.
    This results in that the driver will not be loaded automatically when the
    device node is created, because their modalias do not match.

    This also applies to I2C and SPI bus.

    With this patch, the device' modalias will be shown as "acpi:INTABCD" as well.

    Signed-off-by: Zhang Rui
    Acked-by: Mark Brown
    Acked-by: Wolfram Sang
    Signed-off-by: Rafael J. Wysocki

    Zhang Rui
     

16 Jan, 2014

3 commits


15 Jan, 2014

1 commit

  • From Jason Cooper:
    mvebu late fixes for v3.13

    - mvebu
    - fix boot hang on Armada XP due to broken i2c offloading in A0 SoC revision
    (specifically experienced on some early OpenBlocks AX3-4 boards)

    * tag 'mvebu-fixes-3.13' of git://git.infradead.org/linux-mvebu:
    i2c: mv64xxx: Document the newly introduced Armada XP A0 compatible
    i2c: mv64xxx: Fix bus hang on A0 version of the Armada XP SoCs
    ARM: mvebu: Add quirk for i2c for the OpenBlocks AX3-4 board
    ARM: mvebu: Add support to get the ID and the revision of a SoC

    Signed-off-by: Kevin Hilman

    Kevin Hilman
     

14 Jan, 2014

2 commits

  • The first variants of Armada XP SoCs (A0 stepping) have issues related
    to the i2c controller which prevent to use the offload mechanism and
    lead to a kernel hang during boot.

    The commit introduces a new the compatible string
    marvell,mv78230-a0-i2c for the i2c controller. When this compatible
    string is used the driver disables the offload mechanism and the
    kernel no more hangs on these SoCs.

    Signed-off-by: Gregory CLEMENT
    Reported-by: Andrew Lunn
    Acked-by: Wolfram Sang
    Acked-by: Arnd Bergmann
    Cc: stable@vger.kernel.org # v3.12+: af8d1c63afcb: ARM: mvebu: Add support to get the ID and the revision of a SoC
    Cc: stable@vger.kernel.org # v3.12+: 85e618a1be2b: ARM: mvebu: Add quirk for i2c for the OpenBlocks AX3-4 board
    Cc: stable@vger.kernel.org # v3.12+
    Fixes: 930ab3d403ae (i2c: mv64xxx: Add I2C Transaction Generator support)
    Signed-off-by: Jason Cooper

    Gregory CLEMENT
     
  • This patch adds the support of the I2C_SMBUS_I2C_BLOCK_DATA transaction
    type for the iSMT SMBus Controller.

    Signed-off-by: Robert Valiquette
    Acked-by: Seth Heasley
    Signed-off-by: Wolfram Sang

    robert.valiquette@intel.com
     

13 Jan, 2014

3 commits


10 Jan, 2014

3 commits

  • The Nomadik I2C is now configured from the device tree on all platforms
    using this controller. Delete the platform data header and move the
    definitions into the driver so it is all contained in one single file.

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

    Linus Walleij
     
  • The Nomadik I2C controller needs to have the slave set-up time
    configured based off the clock used to drive the I2C bus block.
    Currently this is done with static assignments assuming that the
    block is clocked 48MHz which is pretty likely to be bug-prone.
    Calculate the SLSU from the equation given in the datasheet
    instead.

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

    Linus Walleij
     
  • cppcheck rightfully says:

    drivers/i2c/busses/i2c-viperboard.c:169: style: Variable 'bytes_xfer' is assigned a value that is never used.

    Signed-off-by: Wolfram Sang
    Acked-by: Lars Poeschel

    Wolfram Sang
     

07 Jan, 2014

1 commit


05 Jan, 2014

5 commits


04 Jan, 2014

2 commits

  • smatch rightfully says:
    drivers/i2c/busses/i2c-imx.c:610 i2c_imx_probe() info: why not propagate 'irq' from platform_get_irq() instead of (-2)?

    Signed-off-by: Wolfram Sang

    Wolfram Sang
     
  • For Exynos4 and Exynos5 SoCs from Samsung the i2c clock is based
    on a fixed 66 MHz peripheral clock, and therefore is completely
    independent of the cpu frequency.
    Thus, registering for a CPU freq notifier is very wasteful.

    This patch modifes the code such that, i2c bus registers to
    cpu_freq_transition only if CONFIG_CPU_FREQ_S3C24XX is enabled.

    This change should save a bunch of cpufreq transitions calls
    which does not apply to exynos SoCs.

    Signed-off-by: Naveen Krishna Chatradhi
    Acked-by: Kyungmin Park
    Reviewed-by: Doug Anderson
    Reviewed-by: Tomasz Figa
    Signed-off-by: Wolfram Sang

    Naveen Krishna Ch