27 Jul, 2016

1 commit


01 Jun, 2015

1 commit


04 Feb, 2015

1 commit

  • This change addresses following problem:

    [ 2.560726] ------------[ cut here ]------------
    [ 2.565341] WARNING: CPU: 0 PID: 1 at kernel/locking/lockdep.c:2744 lockdep_trace_alloc+0xec/0x118()
    [ 2.574439] DEBUG_LOCKS_WARN_ON(irqs_disabled_flags(flags))
    [ 2.579821] Modules linked in:
    [ 2.583038] CPU: 0 PID: 1 Comm: swapper/0 Tainted: G W 3.18.0-next-20141216-00002-g4ff197fc1902-dirty #1318
    [ 2.593796] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
    [ 2.599892] [] (unwind_backtrace) from [] (show_stack+0x10/0x14)
    [ 2.607612] [] (show_stack) from [] (dump_stack+0x70/0xbc)
    [ 2.614822] [] (dump_stack) from [] (warn_slowpath_common+0x74/0xb0)
    [ 2.622885] [] (warn_slowpath_common) from [] (warn_slowpath_fmt+0x30/0x40)
    [ 2.631569] [] (warn_slowpath_fmt) from [] (lockdep_trace_alloc+0xec/0x118)
    [ 2.640246] [] (lockdep_trace_alloc) from [] (__kmalloc+0x3c/0x1cc)
    [ 2.648240] [] (__kmalloc) from [] (clk_fetch_parent_index+0xb8/0xd4)
    [ 2.656390] [] (clk_fetch_parent_index) from [] (clk_calc_new_rates+0xe0/0x1fc)
    [ 2.665415] [] (clk_calc_new_rates) from [] (clk_calc_new_rates+0x1b4/0x1fc)
    [ 2.674181] [] (clk_calc_new_rates) from [] (clk_set_rate+0x50/0xc8)
    [ 2.682265] [] (clk_set_rate) from [] (sdhci_cmu_set_clock+0x68/0x16c)
    [ 2.690503] [] (sdhci_cmu_set_clock) from [] (sdhci_do_set_ios+0xf0/0x64c)
    [ 2.699095] [] (sdhci_do_set_ios) from [] (sdhci_set_ios+0x20/0x2c)
    [ 2.707080] [] (sdhci_set_ios) from [] (mmc_power_up+0x118/0x1fc)
    [ 2.714889] [] (mmc_power_up) from [] (mmc_start_host+0x44/0x6c)
    [ 2.722615] [] (mmc_start_host) from [] (mmc_add_host+0x58/0x7c)
    [ 2.730341] [] (mmc_add_host) from [] (sdhci_add_host+0x968/0xd94)
    [ 2.738240] [] (sdhci_add_host) from [] (sdhci_s3c_probe+0x354/0x52c)
    [ 2.746406] [] (sdhci_s3c_probe) from [] (platform_drv_probe+0x48/0xa4)
    [ 2.754733] [] (platform_drv_probe) from [] (driver_probe_device+0x13c/0x37c)
    [ 2.763585] [] (driver_probe_device) from [] (__driver_attach+0x94/0x98)
    [ 2.772003] [] (__driver_attach) from [] (bus_for_each_dev+0x54/0x88)
    [ 2.780163] [] (bus_for_each_dev) from [] (bus_add_driver+0xe4/0x200)
    [ 2.788322] [] (bus_add_driver) from [] (driver_register+0x78/0xf4)
    [ 2.796308] [] (driver_register) from [] (do_one_initcall+0xac/0x1f0)
    [ 2.804473] [] (do_one_initcall) from [] (kernel_init_freeable+0x10c/0x1d8)
    [ 2.813153] [] (kernel_init_freeable) from [] (kernel_init+0x28/0x108)
    [ 2.821398] [] (kernel_init) from [] (ret_from_fork+0x14/0x2c)
    [ 2.828939] ---[ end trace 03cc00e539849d1f ]---

    clk_set_rate() tries to take clk's prepare_lock mutex while being in atomic
    context entered in sdhci_do_set_ios().

    The solution is inspired by similar situation in sdhci_set_power() also called
    from sdhci_do_set_ios():

    spin_unlock_irq(&host->lock);
    mmc_regulator_set_ocr(mmc, mmc->supply.vmmc, vdd);
    spin_lock_irq(&host->lock);

    Note that since sdhci_s3c_set_clock() sets SDHCI_CLOCK_CARD_EN, proposed change
    first resets this bit. It is reset anyway (by setting SDHCI_CLOCK_INT_EN bit
    only) after call to clk_set_rate() in order to wait for the clock to stabilize
    and is set again as soon as the clock becomes stable.

    Signed-off-by: Paul Osmialowski
    Tested-by: Jaehoon Chung
    Acked-by: Jaehoon Chung
    Signed-off-by: Ulf Hansson

    Paul Osmialowski
     

19 Jan, 2015

1 commit


11 Dec, 2014

1 commit

  • Pull ACPI and power management updates from Rafael Wysocki:
    "This time we have some more new material than we used to have during
    the last couple of development cycles.

    The most important part of it to me is the introduction of a unified
    interface for accessing device properties provided by platform
    firmware. It works with Device Trees and ACPI in a uniform way and
    drivers using it need not worry about where the properties come from
    as long as the platform firmware (either DT or ACPI) makes them
    available. It covers both devices and "bare" device node objects
    without struct device representation as that turns out to be necessary
    in some cases. This has been in the works for quite a few months (and
    development cycles) and has been approved by all of the relevant
    maintainers.

    On top of that, some drivers are switched over to the new interface
    (at25, leds-gpio, gpio_keys_polled) and some additional changes are
    made to the core GPIO subsystem to allow device drivers to manipulate
    GPIOs in the "canonical" way on platforms that provide GPIO
    information in their ACPI tables, but don't assign names to GPIO lines
    (in which case the driver needs to do that on the basis of what it
    knows about the device in question). That also has been approved by
    the GPIO core maintainers and the rfkill driver is now going to use
    it.

    Second is support for hardware P-states in the intel_pstate driver.
    It uses CPUID to detect whether or not the feature is supported by the
    processor in which case it will be enabled by default. However, it
    can be disabled entirely from the kernel command line if necessary.

    Next is support for a platform firmware interface based on ACPI
    operation regions used by the PMIC (Power Management Integrated
    Circuit) chips on the Intel Baytrail-T and Baytrail-T-CR platforms.
    That interface is used for manipulating power resources and for
    thermal management: sensor temperature reporting, trip point setting
    and so on.

    Also the ACPI core is now going to support the _DEP configuration
    information in a limited way. Basically, _DEP it supposed to reflect
    off-the-hierarchy dependencies between devices which may be very
    indirect, like when AML for one device accesses locations in an
    operation region handled by another device's driver (usually, the
    device depended on this way is a serial bus or GPIO controller). The
    support added this time is sufficient to make the ACPI battery driver
    work on Asus T100A, but it is general enough to be able to cover some
    other use cases in the future.

    Finally, we have a new cpufreq driver for the Loongson1B processor.

    In addition to the above, there are fixes and cleanups all over the
    place as usual and a traditional ACPICA update to a recent upstream
    release.

    As far as the fixes go, the ACPI LPSS (Low-power Subsystem) driver for
    Intel platforms should be able to handle power management of the DMA
    engine correctly, the cpufreq-dt driver should interact with the
    thermal subsystem in a better way and the ACPI backlight driver should
    handle some more corner cases, among other things.

    On top of the ACPICA update there are fixes for race conditions in the
    ACPICA's interrupt handling code which might lead to some random and
    strange looking failures on some systems.

    In the cleanups department the most visible part is the series of
    commits targeted at getting rid of the CONFIG_PM_RUNTIME configuration
    option. That was triggered by a discussion regarding the generic
    power domains code during which we realized that trying to support
    certain combinations of PM config options was painful and not really
    worth it, because nobody would use them in production anyway. For
    this reason, we decided to make CONFIG_PM_SLEEP select
    CONFIG_PM_RUNTIME and that lead to the conclusion that the latter
    became redundant and CONFIG_PM could be used instead of it. The
    material here makes that replacement in a major part of the tree, but
    there will be at least one more batch of that in the second part of
    the merge window.

    Specifics:

    - Support for retrieving device properties information from ACPI _DSD
    device configuration objects and a unified device properties
    interface for device drivers (and subsystems) on top of that. As
    stated above, this works with Device Trees and ACPI and allows
    device drivers to be written in a platform firmware (DT or ACPI)
    agnostic way. The at25, leds-gpio and gpio_keys_polled drivers are
    now going to use this new interface and the GPIO subsystem is
    additionally modified to allow device drivers to assign names to
    GPIO resources returned by ACPI _CRS objects (in case _DSD is not
    present or does not provide the expected data). The changes in
    this set are mostly from Mika Westerberg, Rafael J Wysocki, Aaron
    Lu, and Darren Hart with some fixes from others (Fabio Estevam,
    Geert Uytterhoeven).

    - Support for Hardware Managed Performance States (HWP) as described
    in Volume 3, section 14.4, of the Intel SDM in the intel_pstate
    driver. CPUID is used to detect whether or not the feature is
    supported by the processor. If supported, it will be enabled
    automatically unless the intel_pstate=no_hwp switch is present in
    the kernel command line. From Dirk Brandewie.

    - New Intel Broadwell-H ID for intel_pstate (Dirk Brandewie).

    - Support for firmware interface based on ACPI operation regions used
    by the PMIC chips on the Intel Baytrail-T and Baytrail-T-CR
    platforms for power resource control and thermal management (Aaron
    Lu).

    - Limited support for retrieving off-the-hierarchy dependencies
    between devices from ACPI _DEP device configuration objects and
    deferred probing support for the ACPI battery driver based on the
    _DEP information to make that driver work on Asus T100A (Lan
    Tianyu).

    - New cpufreq driver for the Loongson1B processor (Kelvin Cheung).

    - ACPICA update to upstream revision 20141107 which only affects
    tools (Bob Moore).

    - Fixes for race conditions in the ACPICA's interrupt handling code
    and in the ACPI code related to system suspend and resume (Lv Zheng
    and Rafael J Wysocki).

    - ACPI core fix for an RCU-related issue in the ioremap() regions
    management code that slowed down significantly after CPUs had been
    allowed to enter idle states even if they'd had RCU callbakcs
    queued and triggered some problems in certain proprietary graphics
    driver (and elsewhere). The fix replaces synchronize_rcu() in that
    code with synchronize_rcu_expedited() which makes the issue go
    away. From Konstantin Khlebnikov.

    - ACPI LPSS (Low-Power Subsystem) driver fix to handle power
    management of the DMA engine included into the LPSS correctly. The
    problem is that the DMA engine doesn't have ACPI PM support of its
    own and it simply is turned off when the last LPSS device having
    ACPI PM support goes into D3cold. To work around that, the PM
    domain used by the ACPI LPSS driver is redesigned so at least one
    device with ACPI PM support will be on as long as the DMA engine is
    in use. From Andy Shevchenko.

    - ACPI backlight driver fix to avoid using it on "Win8-compatible"
    systems where it doesn't work and where it was used by default by
    mistake (Aaron Lu).

    - Assorted minor ACPI core fixes and cleanups from Tomasz Nowicki,
    Sudeep Holla, Huang Rui, Hanjun Guo, Fabian Frederick, and Ashwin
    Chaugule (mostly related to the upcoming ARM64 support).

    - Intel RAPL (Running Average Power Limit) power capping driver fixes
    and improvements including new processor IDs (Jacob Pan).

    - Generic power domains modification to power up domains after
    attaching devices to them to meet the expectations of device
    drivers and bus types assuming devices to be accessible at probe
    time (Ulf Hansson).

    - Preliminary support for controlling device clocks from the generic
    power domains core code and modifications of the ARM/shmobile
    platform to use that feature (Ulf Hansson).

    - Assorted minor fixes and cleanups of the generic power domains core
    code (Ulf Hansson, Geert Uytterhoeven).

    - Assorted minor fixes and cleanups of the device clocks control code
    in the PM core (Geert Uytterhoeven, Grygorii Strashko).

    - Consolidation of device power management Kconfig options by making
    CONFIG_PM_SLEEP select CONFIG_PM_RUNTIME and removing the latter
    which is now redundant (Rafael J Wysocki and Kevin Hilman). That
    is the first batch of the changes needed for this purpose.

    - Core device runtime power management support code cleanup related
    to the execution of callbacks (Andrzej Hajda).

    - cpuidle ARM support improvements (Lorenzo Pieralisi).

    - cpuidle cleanup related to the CPUIDLE_FLAG_TIME_VALID flag and a
    new MAINTAINERS entry for ARM Exynos cpuidle (Daniel Lezcano and
    Bartlomiej Zolnierkiewicz).

    - New cpufreq driver callback (->ready) to be executed when the
    cpufreq core is ready to use a given policy object and cpufreq-dt
    driver modification to use that callback for cooling device
    registration (Viresh Kumar).

    - cpufreq core fixes and cleanups (Viresh Kumar, Vince Hsu, James
    Geboski, Tomeu Vizoso).

    - Assorted fixes and cleanups in the cpufreq-pcc, intel_pstate,
    cpufreq-dt, pxa2xx cpufreq drivers (Lenny Szubowicz, Ethan Zhao,
    Stefan Wahren, Petr Cvek).

    - OPP (Operating Performance Points) framework modification to allow
    OPPs to be removed too and update of a few cpufreq drivers
    (cpufreq-dt, exynos5440, imx6q, cpufreq) to remove OPPs (added
    during initialization) on driver removal (Viresh Kumar).

    - Hibernation core fixes and cleanups (Tina Ruchandani and Markus
    Elfring).

    - PM Kconfig fix related to CPU power management (Pankaj Dubey).

    - cpupower tool fix (Prarit Bhargava)"

    * tag 'pm+acpi-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (120 commits)
    i2c-omap / PM: Drop CONFIG_PM_RUNTIME from i2c-omap.c
    dmaengine / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    tools: cpupower: fix return checks for sysfs_get_idlestate_count()
    drivers: sh / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    e1000e / igb / PM: Eliminate CONFIG_PM_RUNTIME
    MMC / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    MFD / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    misc / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    media / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    input / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    leds: leds-gpio: Fix multiple instances registration without 'label' property
    iio / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    hsi / OMAP / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    i2c-hid / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    drm / exynos / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    gpio / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    hwrandom / exynos / PM: Use CONFIG_PM in #ifdef
    block / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    USB / PM: Drop CONFIG_PM_RUNTIME from the USB core
    PM: Merge the SET*_RUNTIME_PM_OPS() macros
    ...

    Linus Torvalds
     

05 Dec, 2014

1 commit

  • After commit b2b49ccbdd54 (PM: Kconfig: Set PM_RUNTIME if PM_SLEEP is
    selected) PM_RUNTIME is always set if PM is set, so #ifdef blocks
    depending on CONFIG_PM_RUNTIME may now be changed to depend on
    CONFIG_PM.

    Replace CONFIG_PM_RUNTIME with CONFIG_PM everywhere under
    drivers/mmc/.

    Signed-off-by: Rafael J. Wysocki
    Acked-by: Ulf Hansson

    Rafael J. Wysocki
     

10 Nov, 2014

1 commit


09 Sep, 2014

1 commit


08 Sep, 2014

1 commit

  • Runtime Power Management handling for the sdhci_add_host() failure
    case in sdhci_s3c_probe() should match the code in sdhci_s3c_remove()
    (which uses pm_runtime_disable() call which matches the earlier
    pm_runtime_enable() one). Fix it.

    This patch fixes "BUG: spinlock bad magic on CPU#0, swapper/0/1" and
    "Unbalanced pm_runtime_enable!" warnings.

    >From the kernel log:
    ...
    [ 1.659631] s3c-sdhci 12530000.sdhci: sdhci_add_host() failed
    [ 1.665096] BUG: spinlock bad magic on CPU#0, swapper/0/1
    [ 1.670433] lock: 0xea01e484, .magic: 00000000, .owner: /-1, .owner_cpu: 0
    [ 1.677895] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.16.0-next-20140804-00008-ga59480f-dirty #707
    [ 1.687037] [] (unwind_backtrace) from [] (show_stack+0x10/0x14)
    [ 1.694740] [] (show_stack) from [] (dump_stack+0x68/0xb8)
    [ 1.701948] [] (dump_stack) from [] (do_raw_spin_lock+0x15c/0x1a4)
    [ 1.709848] [] (do_raw_spin_lock) from [] (_raw_spin_lock_irqsave+0x20/0x28)
    [ 1.718619] [] (_raw_spin_lock_irqsave) from [] (sdhci_do_set_ios+0x1c/0x5cc)
    [ 1.727464] [] (sdhci_do_set_ios) from [] (sdhci_runtime_resume_host+0x50/0x104)
    [ 1.736574] [] (sdhci_runtime_resume_host) from [] (pm_generic_runtime_resume+0x2c/0x40)
    [ 1.746383] [] (pm_generic_runtime_resume) from [] (__rpm_callback+0x34/0x70)
    [ 1.755233] [] (__rpm_callback) from [] (rpm_callback+0x28/0x88)
    [ 1.762958] [] (rpm_callback) from [] (rpm_resume+0x384/0x4ec)
    [ 1.770511] [] (rpm_resume) from [] (pm_runtime_forbid+0x58/0x64)
    [ 1.778325] [] (pm_runtime_forbid) from [] (sdhci_s3c_probe+0x4a4/0x540)
    [ 1.786749] [] (sdhci_s3c_probe) from [] (platform_drv_probe+0x2c/0x5c)
    [ 1.795076] [] (platform_drv_probe) from [] (driver_probe_device+0x114/0x234)
    [ 1.803929] [] (driver_probe_device) from [] (__driver_attach+0x8c/0x90)
    [ 1.812347] [] (__driver_attach) from [] (bus_for_each_dev+0x54/0x88)
    [ 1.820506] [] (bus_for_each_dev) from [] (bus_add_driver+0xd8/0x1cc)
    [ 1.828665] [] (bus_add_driver) from [] (driver_register+0x78/0xf4)
    [ 1.836652] [] (driver_register) from [] (do_one_initcall+0x80/0x1d0)
    [ 1.844816] [] (do_one_initcall) from [] (kernel_init_freeable+0x108/0x1d4)
    [ 1.853503] [] (kernel_init_freeable) from [] (kernel_init+0x8/0xe4)
    [ 1.861568] [] (kernel_init) from [] (ret_from_fork+0x14/0x3c)
    [ 1.869582] platform 12530000.sdhci: Driver s3c-sdhci requests probe deferral
    ...
    [ 1.997047] s3c-sdhci 12530000.sdhci: Unbalanced pm_runtime_enable!
    ...
    [ 2.027235] s3c-sdhci 12530000.sdhci: sdhci_add_host() failed
    [ 2.032884] platform 12530000.sdhci: Driver s3c-sdhci requests probe deferral
    ...

    Tested on Hardkernel's Exynos4412 based ODROID-U3 board.

    Fixes: 9f4e8151dbbc ("mmc: sdhci-s3c: Enable runtime power management")
    Cc: Mark Brown
    Cc: Jaehoon Chung
    Cc: Ben Dooks
    Signed-off-by: Bartlomiej Zolnierkiewicz
    Acked-by: Kyungmin Park
    Signed-off-by: Ulf Hansson

    Bartlomiej Zolnierkiewicz
     

05 Jun, 2014

1 commit

  • Fix the compile error.
    (Removed the card_tasklet at "mmc: sdhci: push card_tasklet into treaded irq handler")

    drivers/mmc/host/sdhci-s3c.c: In function ‘sdhci_s3c_notify_change’:
    drivers/mmc/host/sdhci-s3c.c:402:25: error: ‘struct sdhci_host’ has no member named ‘card_tasklet’

    Signed-off-by: Jaehoon Chung
    Signed-off-by: Ulf Hansson
    Signed-off-by: Chris Ball

    Jaehoon Chung
     

22 May, 2014

6 commits


13 May, 2014

1 commit


03 Mar, 2014

6 commits

  • This patch modifies sdhci_s3c_consider_clock() to fail if bus clock
    being considered can not provide frequency lower or equal requested,
    instead of returning the lowest supported.

    Signed-off-by: Tomasz Figa
    Tested-by: Heiko Stuebner
    Acked-by: Heiko Stuebner
    Tested-by: Jaehoon Chung
    Acked-by; Jaehoon Chung
    Signed-off-by: Chris Ball

    Tomasz Figa
     
  • Currently the driver assumes at probe that controller is configured for
    last valid enumerated bus clock. This assumption is completely wrong, as
    there is no way to ensure such configuration until the hardware gets
    first configured (by calling sdhci_s3c_set_clock()).

    This patch modifies the driver to set current clock at probe to unknown
    state (represented by negative value) and make sure that the hardware
    gets actually configured to selected clock in sdhci_s3c_set_clock().

    Signed-off-by: Tomasz Figa
    Tested-by: Heiko Stuebner
    Acked-by: Heiko Stuebner
    Tested-by: Jaehoon Chung
    Acked-by; Jaehoon Chung
    Signed-off-by: Chris Ball

    Tomasz Figa
     
  • This patch reimplements functions calculating minimum and maximum clock
    rates to leverage clock rate cache introduced by previous patches.

    In addition, the calculation is simplified to just comparing input
    clock rates (max case) or input clock rates divided by maximum divisor
    (min case), which is basically what the original code did, but with much
    more unnecessary work.

    Signed-off-by: Tomasz Figa
    Tested-by: Heiko Stuebner
    Acked-by: Heiko Stuebner
    Tested-by: Jaehoon Chung
    Acked-by; Jaehoon Chung
    Signed-off-by: Chris Ball

    Tomasz Figa
     
  • IS_ERR() must be used to make sure that not a valid clock was returned
    by clk_get() and company.

    Signed-off-by: Tomasz Figa
    Tested-by: Heiko Stuebner
    Acked-by: Heiko Stuebner
    Tested-by: Jaehoon Chung
    Acked-by; Jaehoon Chung
    Signed-off-by: Chris Ball

    Tomasz Figa
     
  • To fix scheduling while atomic happening in sdhci_s3c_set_clock() caused
    by calling clk_get_rate() that might sleep, this patch modifies the
    driver to cache rates of all bus clocks at probe time and then only use
    those cache values.

    Signed-off-by: Tomasz Figa
    Tested-by: Heiko Stuebner
    Acked-by: Heiko Stuebner
    Tested-by: Jaehoon Chung
    Acked-by; Jaehoon Chung
    Signed-off-by: Chris Ball

    Tomasz Figa
     
  • Current implementation of sdhci_s3c_consider_clock() is highly
    inefficient due to multiple integer divisions by variable performed in a
    loop. Since only divisors that are powers of two are considered, this
    patch replaces them with respective shifts, removing all the integer
    divisions.

    Signed-off-by: Tomasz Figa
    Tested-by: Heiko Stuebner
    Acked-by: Heiko Stuebner
    Tested-by: Jaehoon Chung
    Acked-by; Jaehoon Chung
    Signed-off-by: Chris Ball

    Tomasz Figa
     

30 Aug, 2013

2 commits


27 May, 2013

1 commit

  • The driver core clears the driver data to NULL after device_release
    or on probe failure, since commit 0998d0631001288a5974afc0b2a5f568bcdecb4d
    (device-core: Ensure drvdata = NULL when no driver is bound).
    Thus, it is not needed to manually clear the device driver data to NULL.

    Signed-off-by: Jingoo Han
    Acked-by: Sonic Zhang
    Acked-by: Seungwon Jeon
    Acked-by: Shawn Guo
    Acked-by: Adrian Hunter
    Acked-by: Haojian Zhuang
    Acked-by: Jaehoon Chung
    Acked-by: Viresh Kumar
    Acked-by: Tony Prisk
    Signed-off-by: Chris Ball

    Jingoo Han
     

05 May, 2013

1 commit

  • Pull MMC update from Chris Ball:
    "MMC highlights for 3.10:

    Core:
    - Introduce MMC_CAP2_NO_PRESCAN_POWERUP to allow skipping
    mmc_power_up() at boot/initialization time if it's already
    happened, for performance (faster boot time) reasons.
    - Fix a bit width test failure that resulted in old eMMC cards being
    put into 1-bit mode when 4-bit mode was available.
    - Expose fwrev/hwrev for MMCv4 parts.
    - Improve card removal logic in the case where the card's removed
    slowly; we were missing card removal events if the card retained
    contact with the slot pads for long enough to reply to a CMD13
    while being removed.

    Drivers:
    - davinci_mmc: Support using PIO instead of DMA.
    - dw_mmc: Add support for Exynos4412.
    - mxcmmc: DT support, use slot-gpio API.
    - mxs-mmc: Add broken-cd/cd-inverted/non-removable DT property
    support.
    - sdhci-sirf: New sdhci-pltfm driver for CSR SiRF SoCs:
    SiRFprimaII: unicore ARM Cortex-A9
    SiRFatlas6: unicore ARM Cortex-A9
    SiRFmarco: dual core ARM Cortex-A9 SMP
    - sdhci-tegra: Add support for Tegra114 platforms, use
    mmc_of_parse()"

    * tag 'mmc-updates-for-3.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc: (66 commits)
    mmc: sdhci-tegra: fix MODULE_DEVICE_TABLE
    mmc: core: fix init controller performance regression, updated patch
    mmc: mxcmmc: enable DMA support on mpc512x
    mmc: mxcmmc: constify mxcmci_devtype
    mmc: mxcmmc: use slot-gpio API for write-protect detection
    mmc: mxcmmc: add mpc512x SDHC support
    mmc: mxcmmc: fix race conditions for host->req and host->data access
    mmc: mxcmmc: DT support
    mmc: dw_mmc: let device core setup the default pin configuration
    mmc: mxs-mmc: add broken-cd property
    mmc: mxs-mmc: add non-removable property
    mmc: mxs-mmc: add cd-inverted property
    mmc: core: call pm_runtime_put_noidle in pm_runtime_get_sync failed case
    mmc: mxcmmc: Fix bug when card is present during boot
    mmc: core: fix performance regression initializing MMC host controllers
    Revert "mmc: core: wait while adding MMC host to ensure root mounts successfully"
    mmc: atmel-mci: pio hang on block errors
    mmc: core: Fix bit width test failing on old eMMC cards
    mmc: dw_mmc: Use pr_info instead of printk
    mmc: dw_mmc: Check return value of regulator_enable
    ...

    Linus Torvalds
     

19 Apr, 2013

1 commit

  • plat/regs-sdhci.h is not used anywhere but in the sdhci-s3c
    driver, so it can become a local file there and all other
    inclusions removed.

    plat/sdhci.h is used only to define the platform devices,
    and with the exception of the platform_data structure not
    needed by the driver, so we can split out the platform_data
    definition instead and leave the rest to platform code.

    Signed-off-by: Arnd Bergmann
    Acked-by: Chris Ball

    Arnd Bergmann
     

23 Mar, 2013

1 commit


22 Mar, 2013

1 commit


27 Feb, 2013

1 commit

  • Pull MMC update from Chris Ball:
    "MMC highlights for 3.9:

    Core:
    - Support for packed commands in eMMC 4.5. (This requires a host
    capability to be turned on. It increases write throughput by 20%+,
    but may also increase average write latency; more testing needed.)
    - Add DT bindings for capability flags.
    - Add mmc_of_parse() for shared DT parsing between drivers.

    Drivers:
    - android-goldfish: New MMC driver for the Android Goldfish emulator.
    - mvsdio: Add DT bindings, pinctrl, use slot-gpio for card detection.
    - omap_hsmmc: Fix boot hangs with RPMB partitions.
    - sdhci-bcm2835: New driver for controller used by Raspberry Pi.
    - sdhci-esdhc-imx: Add 8-bit data, auto CMD23 support, use slot-gpio.
    - sh_mmcif: Add support for eMMC DDR, bundled MMCIF IRQs.
    - tmio_mmc: Add DT bindings, support for vccq regulator"

    * tag 'mmc-updates-for-3.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc: (92 commits)
    mmc: tegra: assume CONFIG_OF, remove platform data
    mmc: add DT bindings for more MMC capability flags
    mmc: tmio: add support for the VccQ regulator
    mmc: tmio: remove unused and deprecated symbols
    mmc: sh_mobile_sdhi: use managed resource allocations
    mmc: sh_mobile_sdhi: remove unused .pdata field
    mmc: tmio-mmc: parse device-tree bindings
    mmc: tmio-mmc: define device-tree bindings
    mmc: sh_mmcif: use mmc_of_parse() to parse standard MMC DT bindings
    mmc: (cosmetic) remove "extern" from function declarations
    mmc: provide a standard MMC device-tree binding parser centrally
    mmc: detailed definition of CD and WP MMC line polarities in DT
    mmc: sdhi, tmio: only check flags in tmio-mmc driver proper
    mmc: sdhci: Fix parameter of sdhci_do_start_signal_voltage_switch()
    mmc: sdhci: check voltage range only on regulators aware of voltage value
    mmc: bcm2835: set SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK
    mmc: support packed write command for eMMC4.5 devices
    mmc: add packed command feature of eMMC4.5
    mmc: rtsx: remove driving adjustment
    mmc: use regulator_can_change_voltage() instead of regulator_count_voltages
    ...

    Linus Torvalds
     

25 Feb, 2013

1 commit


26 Jan, 2013

1 commit

  • Convert all uses of devm_request_and_ioremap() to the newly introduced
    devm_ioremap_resource() which provides more consistent error handling.

    devm_ioremap_resource() provides its own error messages so all explicit
    error messages can be removed from the failure code paths.

    Signed-off-by: Thierry Reding
    Cc: Chris Ball
    Cc: Ben Dooks
    Signed-off-by: Greg Kroah-Hartman

    Thierry Reding
     

12 Dec, 2012

1 commit

  • Pull driver core updates from Greg Kroah-Hartman:
    "Here's the large driver core updates for 3.8-rc1.

    The biggest thing here is the various __dev* marking removals. This
    is going to be a pain for the merge with different subsystem trees, I
    know, but all of the patches included here have been ACKed by their
    various subsystem maintainers, as they wanted them to go through here.

    If this is too much of a pain, I can pull all of them out of this tree
    and just send you one with the other fixes/updates and then, after
    3.8-rc1 is out, do the rest of the removals to ensure we catch them
    all, it's up to you. The merges should all be trivial, and Stephen
    has been doing them all in linux-next for a few weeks now quite
    easily.

    Other than the __dev* marking removals, there's nothing major here,
    some firmware loading updates and other minor things in the driver
    core.

    All of these have (much to Stephen's annoyance), been in linux-next
    for a while.

    Signed-off-by: Greg Kroah-Hartman "

    Fixed up trivial conflicts in drivers/gpio/gpio-{em,stmpe}.c due to gpio
    update.

    * tag 'driver-core-3.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (93 commits)
    modpost.c: Stop checking __dev* section mismatches
    init.h: Remove __dev* sections from the kernel
    acpi: remove use of __devinit
    PCI: Remove __dev* markings
    PCI: Always build setup-bus when PCI is enabled
    PCI: Move pci_uevent into pci-driver.c
    PCI: Remove CONFIG_HOTPLUG ifdefs
    unicore32/PCI: Remove CONFIG_HOTPLUG ifdefs
    sh/PCI: Remove CONFIG_HOTPLUG ifdefs
    powerpc/PCI: Remove CONFIG_HOTPLUG ifdefs
    mips/PCI: Remove CONFIG_HOTPLUG ifdefs
    microblaze/PCI: Remove CONFIG_HOTPLUG ifdefs
    dma: remove use of __devinit
    dma: remove use of __devexit_p
    firewire: remove use of __devinitdata
    firewire: remove use of __devinit
    leds: remove use of __devexit
    leds: remove use of __devinit
    leds: remove use of __devexit_p
    mmc: remove use of __devexit
    ...

    Linus Torvalds
     

08 Dec, 2012

1 commit

  • 'sc' is used only when CONFIG_PM_RUNTIME is defined. Hence define it
    conditionally.

    Silences the following warning:
    drivers/mmc/host/sdhci-s3c.c: In function ‘sdhci_s3c_notify_change’:
    drivers/mmc/host/sdhci-s3c.c:378:20: warning: unused variable ‘sc’ [-Wunused-variable]

    Signed-off-by: Sachin Kamat
    Acked-by: Jaehoon Chung
    Signed-off-by: Chris Ball

    Sachin Kamat
     

07 Dec, 2012

4 commits

  • This patch adds support for pin configuration using pinctrl subsystem
    to the sdhci-s3c driver.

    Signed-off-by: Tomasz Figa
    Acked-by: Thomas Abraham
    Signed-off-by: Chris Ball

    Tomasz Figa
     
  • The set of GPIO pins used by sdhci-s3c driver varies between
    configurations, such as card detect method, pinctrl availability, etc.
    This overly complicates the code requesting and freeing GPIO pins, which
    must check which pins are used, when freeing them.

    This patch modifies the sdhci-s3c driver to use devm_gpio_request to
    free requested pins automatically after unbinding the driver.

    Signed-off-by: Tomasz Figa
    Acked-by: Thomas Abraham
    Signed-off-by: Chris Ball

    Tomasz Figa
     
  • The third argument for of_get_property() is a pointer, hence pass
    NULL instead of 0.

    Fixes the following sparse warning:
    sdhci-s3c.c:452:48: warning: Using plain integer as NULL pointer
    sdhci-s3c.c:457:52: warning: Using plain integer as NULL pointer

    Signed-off-by: Tushar Behera
    Signed-off-by: Chris Ball

    Tushar Behera
     
  • 2abeb5c5ded2 ("Add clk_(enable/disable) in runtime suspend/resume")
    added the capability to stop the clocks when the device is runtime
    suspended, but forgot to handle the case of the card-detect using
    an external gpio.

    Therefore in the case that runtime-pm is enabled, start the io-clock
    when a card is inserted and stop it again once it is removed.

    Signed-off-by: Heiko Stuebner
    Signed-off-by: Chris Ball

    Heiko Stübner
     

29 Nov, 2012

1 commit

  • CONFIG_HOTPLUG is going away as an option so __devexit is no
    longer needed.

    Signed-off-by: Bill Pemberton
    Cc: Manuel Lauss
    Cc: Chris Ball
    Cc: "Michał Mirosław"
    Cc: Jarkko Lavinen
    Cc: Venkatraman S
    Cc: Viresh Kumar
    Cc: Ian Molton
    Cc: Bruce Chang
    Cc: Harald Welte
    Cc: Pierre Ossman
    Acked-by: Guennadi Liakhovetski
    Signed-off-by: Greg Kroah-Hartman

    Bill Pemberton