05 Aug, 2013

1 commit

  • regcache_sync_block_raw_flush() expects the address of the register after last
    register that needs to be synced as its parameter. But the last call to
    regcache_sync_block_raw_flush() in regcache_sync_block_raw() passes the address
    of the last register in the block. This effectively always skips over the last
    register in a block, even if it needs to be synced. In order to fix it increase
    the address by one register.

    The issue was introduced in commit 75a5f89 ("regmap: cache: Write consecutive
    registers in a single block write").

    Cc: stable@vger.kernel.org # 3.10+
    Signed-off-by: Lars-Peter Clausen
    Signed-off-by: Mark Brown

    Lars-Peter Clausen
     

19 Jul, 2013

2 commits

  • Pull driver core patches from Greg KH:
    "Here are some driver core patches for 3.11-rc2. They aren't really
    bugfixes, but a bunch of new helper macros for drivers to properly
    create attribute groups, which drivers and subsystems need to fix up a
    ton of race issues with incorrectly creating sysfs files (binary and
    normal) after userspace has been told that the device is present.

    Also here is the ability to create binary files as attribute groups,
    to solve that race condition, which was impossible to do before this,
    so that's my fault the drivers were broken.

    The majority of the .c changes is indenting and moving code around a
    bit. It affects no existing code, but allows the large backlog of 70+
    patches that I already have created to start flowing into the
    different subtrees, instead of having to live in my driver-core tree,
    causing merge nightmares in linux-next for the next few months.

    These were finalized too late for the -rc1 merge window, which is why
    they were didn't make that pull request, testing and review from
    others didn't happen until a few weeks ago, and then there's the whole
    distraction of the past few days, which prevented these from getting
    to you sooner, sorry about that.

    Oh, and there's a bugfix for the documentation build warning in here
    as well. All of these have been in linux-next this week, with no
    reported problems"

    * tag 'driver-core-3.11-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
    driver-core: fix new kernel-doc warning in base/platform.c
    sysfs: use file mode defines from stat.h
    sysfs: add more helper macro's for (bin_)attribute(_groups)
    driver core: add default groups to struct class
    driver core: Introduce device_create_groups
    sysfs: prevent warning when only using binary attributes
    sysfs: add support for binary attributes in groups
    driver core: device.h: add RW and RO attribute macros
    sysfs.h: add BIN_ATTR macro
    sysfs.h: add ATTRIBUTE_GROUPS() macro
    sysfs.h: add __ATTR_RW() macro

    Linus Torvalds
     
  • Pull phase two of __cpuinit removal from Paul Gortmaker:
    "With the __cpuinit infrastructure removed earlier, this group of
    commits only removes the function/data tagging that was done with the
    various (now no-op) __cpuinit related prefixes.

    Now that the dust has settled with yesterday's v3.11-rc1, there
    hopefully shouldn't be any new users leaking back in tree, but I think
    we can leave the harmless no-op stubs there for a release as a
    courtesy to those who still have out of tree stuff and weren't paying
    attention.

    Although the commits are against the recent tag to allow for minor
    context refreshes for things like yesterday's v3.11-rc1~ slab content,
    the patches have been largely unchanged for weeks, aside from such
    trivial updates.

    For detail junkies, the largely boring and mostly irrelevant history
    of the patches can be viewed at:

    http://git.kernel.org/cgit/linux/kernel/git/paulg/cpuinit-delete.git

    If nothing else, I guess it does at least demonstrate the level of
    involvement required to shepherd such a treewide change to completion.

    This is the same repository of patches that has been applied to the
    end of the daily linux-next branches for the past several weeks"

    * 'cpuinit_phase2' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux: (28 commits)
    block: delete __cpuinit usage from all block files
    drivers: delete __cpuinit usage from all remaining drivers files
    kernel: delete __cpuinit usage from all core kernel files
    rcu: delete __cpuinit usage from all rcu files
    net: delete __cpuinit usage from all net files
    acpi: delete __cpuinit usage from all acpi files
    hwmon: delete __cpuinit usage from all hwmon files
    cpufreq: delete __cpuinit usage from all cpufreq files
    clocksource+irqchip: delete __cpuinit usage from all related files
    x86: delete __cpuinit usage from all x86 files
    score: delete __cpuinit usage from all score files
    xtensa: delete __cpuinit usage from all xtensa files
    openrisc: delete __cpuinit usage from all openrisc files
    m32r: delete __cpuinit usage from all m32r files
    hexagon: delete __cpuinit usage from all hexagon files
    frv: delete __cpuinit usage from all frv files
    cris: delete __cpuinit usage from all cris files
    metag: delete __cpuinit usage from all metag files
    tile: delete __cpuinit usage from all tile files
    sh: delete __cpuinit usage from all sh files
    ...

    Linus Torvalds
     

17 Jul, 2013

3 commits

  • Fix new kernel-doc warning in drivers/base/platform.c:

    Warning(drivers/base/platform.c:528): No description found for parameter 'owner'

    Signed-off-by: Randy Dunlap
    Signed-off-by: Greg Kroah-Hartman

    Randy Dunlap
     
  • We should be using groups, not attribute lists, for classes to allow
    subdirectories, and soon, binary files. Groups are just more flexible
    overall, so add them.

    The dev_attrs list will go away after all in-kernel users are converted
    to use dev_groups.

    Reviewed-by: Guenter Roeck
    Tested-by: Guenter Roeck
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     
  • device_create_groups lets callers create devices as well as associated
    sysfs attributes with a single call. This avoids race conditions seen
    if sysfs attributes on new devices are created later.

    [fixed up comment block placement and add checks for printk buffer
    formats - gregkh]

    Signed-off-by: Guenter Roeck
    Cc: Jean Delvare
    Signed-off-by: Greg Kroah-Hartman

    Guenter Roeck
     

16 Jul, 2013

1 commit


15 Jul, 2013

1 commit

  • The __cpuinit type of throwaway sections might have made sense
    some time ago when RAM was more constrained, but now the savings
    do not offset the cost and complications. For example, the fix in
    commit 5e427ec2d0 ("x86: Fix bit corruption at CPU resume time")
    is a good example of the nasty type of bugs that can be created
    with improper use of the various __init prefixes.

    After a discussion on LKML[1] it was decided that cpuinit should go
    the way of devinit and be phased out. Once all the users are gone,
    we can then finally remove the macros themselves from linux/init.h.

    This removes all the remaining one-off uses of the __cpuinit macros
    from all C files in the drivers/* directory.

    [1] https://lkml.org/lkml/2013/5/20/589

    Cc: Greg Kroah-Hartman
    Acked-by: Greg Kroah-Hartman
    Signed-off-by: Paul Gortmaker

    Paul Gortmaker
     

14 Jul, 2013

1 commit

  • Pull media updates from Mauro Carvalho Chehab:
    "This series contain:
    - new i2c video drivers: ml86v7667 (video decoder),
    ths8200 (video encoder)
    - a new video driver for EasyCap cards based on Fushicai USBTV007
    - Improved support for OF and embedded systems, with V4L2 async
    initialization and a better support for clocks
    - API cleanups on the ioctls used by the v4l2 debug tool
    - Lots of cleanups
    - As usual, several driver improvements and new cards additions
    - Revert two changesets that change the minimal symbol rate for
    stv0399, as request by Manu
    - Update MAINTAINERS and other files to point to my new e-mail"

    * 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (378 commits)
    MAINTAINERS & ABI: Update to point to my new email
    [media] stb0899: restore minimal rate to 5Mbauds
    [media] exynos4-is: Correct colorspace handling at FIMC-LITE
    [media] exynos4-is: Set valid initial format on FIMC.n subdevs
    [media] exynos4-is: Set valid initial format on FIMC-IS-ISP subdev pads
    [media] exynos4-is: Fix format propagation on FIMC-IS-ISP subdev
    [media] exynos4-is: Set valid initial format at FIMC-LITE
    [media] exynos4-is: Fix format propagation on FIMC-LITE.n subdevs
    [media] MAINTAINERS: Update S5P/Exynos FIMC driver entry
    [media] Documentation: Update driver's directory in video4linux/fimc.txt
    [media] exynos4-is: Change fimc-is firmware file names
    [media] exynos4-is: Add support for Exynos5250 MIPI-CSIS
    [media] exynos4-is: Add Exynos5250 SoC support to fimc-lite driver
    [media] exynos4-is: Drop drvdata handling in fimc-lite for non-dt platforms
    [media] media: i2c: tvp514x: remove manual setting of subdev name
    [media] media: i2c: tvp7002: remove manual setting of subdev name
    [media] mem2mem: set missing v4l2_dev pointer
    [media] wl128x: add missing struct v4l2_device
    [media] tvp514x: Fix init seqeunce
    [media] saa7134: Fix sparse warnings by adding __user annotation
    ...

    Linus Torvalds
     

10 Jul, 2013

1 commit

  • Pull drm updates from Dave Airlie:
    "Okay this is the big one, I was stalled on the fbdev pull req as I
    stupidly let fbdev guys merge a patch I required to fix a warning with
    some patches I had, they ended up merging the patch from the wrong
    place, but the warning should be fixed. In future I'll just take the
    patch myself!

    Outside drm:

    There are some snd changes for the HDMI audio interactions on haswell,
    they've been acked for inclusion via my tree. This relies on the
    wound/wait tree from Ingo which is already merged.

    Major changes:

    AMD finally released the dynamic power management code for all their
    GPUs from r600->present day, this is great, off by default for now but
    also a huge amount of code, in fact it is most of this pull request.

    Since it landed there has been a lot of community testing and Alex has
    sent a lot of fixes for any bugs found so far. I suspect radeon might
    now be the biggest kernel driver ever :-P p.s. radeon.dpm=1 to enable
    dynamic powermanagement for anyone.

    New drivers:

    Renesas r-car display unit.

    Other highlights:

    - core: GEM CMA prime support, use new w/w mutexs for TTM
    reservations, cursor hotspot, doc updates
    - dvo chips: chrontel 7010B support
    - i915: Haswell (fbc, ips, vecs, watermarks, audio powerwell),
    Valleyview (enabled by default, rc6), lots of pll reworking, 30bpp
    support (this time for sure)
    - nouveau: async buffer object deletion, context/register init
    updates, kernel vp2 engine support, GF117 support, GK110 accel
    support (with external nvidia ucode), context cleanups.
    - exynos: memory leak fixes, Add S3C64XX SoC series support, device
    tree updates, common clock framework support,
    - qxl: cursor hotspot support, multi-monitor support, suspend/resume
    support
    - mgag200: hw cursor support, g200 mode limiting
    - shmobile: prime support
    - tegra: fixes mostly

    I've been banging on this quite a lot due to the size of it, and it
    seems to okay on everything I've tested it on."

    * 'drm-next' of git://people.freedesktop.org/~airlied/linux: (811 commits)
    drm/radeon/dpm: implement vblank_too_short callback for si
    drm/radeon/dpm: implement vblank_too_short callback for cayman
    drm/radeon/dpm: implement vblank_too_short callback for btc
    drm/radeon/dpm: implement vblank_too_short callback for evergreen
    drm/radeon/dpm: implement vblank_too_short callback for 7xx
    drm/radeon/dpm: add checks against vblank time
    drm/radeon/dpm: add helper to calculate vblank time
    drm/radeon: remove stray line in old pm code
    drm/radeon/dpm: fix display_gap programming on rv7xx
    drm/nvc0/gr: fix gpc firmware regression
    drm/nouveau: fix minor thinko causing bo moves to not be async on kepler
    drm/radeon/dpm: implement force performance level for TN
    drm/radeon/dpm: implement force performance level for ON/LN
    drm/radeon/dpm: implement force performance level for SI
    drm/radeon/dpm: implement force performance level for cayman
    drm/radeon/dpm: implement force performance levels for 7xx/eg/btc
    drm/radeon/dpm: add infrastructure to force performance levels
    drm/radeon: fix surface setup on r1xx
    drm/radeon: add support for 3d perf states on older asics
    drm/radeon: set default clocks for SI when DPM is disabled
    ...

    Linus Torvalds
     

05 Jul, 2013

1 commit

  • Pull device tree updates from Grant Likely:
    "This branch contains the following changes:
    - Removal of CONFIG_OF_DEVICE, it is always enabled by CONFIG_OF
    - Remove #ifdef from linux/of_platform.h to increase compiler syntax
    coverage
    - Bug fix for address decoding on Bimini and js2x powerpc platforms.
    - miscellaneous binding changes

    One note on the above. The binding changes going in from all kinds of
    different trees has gotten rather out of hand. I picked up some
    during this cycle, but even going though my tree isn't a great fit.

    Ian Campbell has prototyped splitting the bindings and .dtb files into
    a separate repository. The plan is to migrate to using that sometime
    in the next few kernel releases which should get rid of a lot of the
    churn on binding docs and .dts files"

    * tag 'devicetree-for-linus' of git://git.secretlab.ca/git/linux:
    of: Fix address decoding on Bimini and js2x machines
    of: remove CONFIG_OF_DEVICE
    usb: chipidea: depend on CONFIG_OF instead of CONFIG_OF_DEVICE
    of: remove of_platform_driver
    ibmebus: convert of_platform_driver to platform_driver
    driver core: move to_platform_driver to platform_device.h
    mfd: DT bindings for the palmas family MFD
    ARM: dts: omap3-devkit8000: fix NAND memory binding
    of/base: fix typos
    of: remove #ifdef from linux/of_platform.h

    Linus Torvalds
     

04 Jul, 2013

6 commits

  • Commit f8bd822cb ("regmap: cache: Factor out block sync") made
    regcache_rbtree_sync() call regmap_async_complete(), which in turn does
    not check for map->bus before dereferencing it.

    This causes a NULL pointer dereference on bus-less maps.

    Signed-off-by: Daniel Mack
    Cc: stable@vger.kernel.org [v3.10 only]
    Signed-off-by: Mark Brown

    Daniel Mack
     
  • Merge first patch-bomb from Andrew Morton:
    - various misc bits
    - I'm been patchmonkeying ocfs2 for a while, as Joel and Mark have been
    distracted. There has been quite a bit of activity.
    - About half the MM queue
    - Some backlight bits
    - Various lib/ updates
    - checkpatch updates
    - zillions more little rtc patches
    - ptrace
    - signals
    - exec
    - procfs
    - rapidio
    - nbd
    - aoe
    - pps
    - memstick
    - tools/testing/selftests updates

    * emailed patches from Andrew Morton : (445 commits)
    tools/testing/selftests: don't assume the x bit is set on scripts
    selftests: add .gitignore for kcmp
    selftests: fix clean target in kcmp Makefile
    selftests: add .gitignore for vm
    selftests: add hugetlbfstest
    self-test: fix make clean
    selftests: exit 1 on failure
    kernel/resource.c: remove the unneeded assignment in function __find_resource
    aio: fix wrong comment in aio_complete()
    drivers/w1/slaves/w1_ds2408.c: add magic sequence to disable P0 test mode
    drivers/memstick/host/r592.c: convert to module_pci_driver
    drivers/memstick/host/jmb38x_ms: convert to module_pci_driver
    pps-gpio: add device-tree binding and support
    drivers/pps/clients/pps-gpio.c: convert to module_platform_driver
    drivers/pps/clients/pps-gpio.c: convert to devm_* helpers
    drivers/parport/share.c: use kzalloc
    Documentation/accounting/getdelays.c: avoid strncpy in accounting tool
    aoe: update internal version number to v83
    aoe: update copyright date
    aoe: perform I/O completions in parallel
    ...

    Linus Torvalds
     
  • Calling dev_set_name with a single paramter causes it to be handled as a
    format string. Many callers are passing potentially dynamic string
    content, so use "%s" in those cases to avoid any potential accidents,
    including wrappers like device_create*() and bdi_register().

    Signed-off-by: Kees Cook
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kees Cook
     
  • 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
     
  • …/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
     
  • Pull regmap updates from Mark Brown:
    "A small but useful set of regmap updates this time around:

    - An abstraction for bitfields within a register map contributed by
    Srinivas Kandagatla, allowing drivers to cope more easily when
    hardware designers randomly move things about (mainly when talking
    to things like system controllers).

    - Changes from Lars-Peter Clausen to allow the MMIO regmap to be used
    from hard IRQ context.

    - Small improvements to the cache infrastructure and performance,
    including a default cache sync operation so now all regmaps can
    sync easily.

    There's also a pinctrl driver making use of the new bitfield API,
    merged here for dependency reasons. There will be a simple add/add
    conflict with the pinctrl tree as a result."

    * tag 'regmap-v3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
    pinctrl: st: Remove unnecessary use of of_match_ptr macro
    pinctrl: st: fix return value check
    pinctrl: st: Add pinctrl and pinconf support.
    regmap: debugfs: Suppress cache for partial register files
    regmap: Add regmap_field APIs
    regmap: core: Cache all registers by default when cache is enabled
    regmap: Implemented default cache sync operation
    regmap: Make regmap-mmio usable from atomic contexts
    regmap: regcache: Fixup locking for custom lock callbacks
    regmap: debugfs: Fix return from regmap_debugfs_get_dump_start
    regmap: debugfs: Don't mark lockdep as broken due to debugfs write
    regmap: rbtree: Use range information to allocate nodes
    regmap: rbtree: Factor out node allocation
    regmap: Make regmap_check_range_table() a public API
    regmap: Add support for discarding parts of the register cache

    Linus Torvalds
     

30 Jun, 2013

4 commits


28 Jun, 2013

5 commits

  • * pm-assorted:
    PM / QoS: Add pm_qos and dev_pm_qos to events-power.txt
    PM / QoS: Add dev_pm_qos_request tracepoints
    PM / QoS: Add pm_qos_request tracepoints
    PM / QoS: Add pm_qos_update_target/flags tracepoints
    PM / QoS: Update Documentation/power/pm_qos_interface.txt
    PM / Sleep: Print last wakeup source on failed wakeup_count write
    PM / QoS: correct the valid range of pm_qos_class
    PM / wakeup: Adjust messaging for wake events during suspend
    PM / Runtime: Update .runtime_idle() callback documentation
    PM / Runtime: Rework the "runtime idle" helper routine
    PM / Hibernate: print physical addresses consistently with other parts of kernel

    Rafael J. Wysocki
     
  • * pm-cpufreq: (41 commits)
    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
    cpufreq: e_powersaver: call CPUFREQ_POSTCHANGE notfier in error cases
    cpufreq: ACPI: call CPUFREQ_POSTCHANGE notfier in error cases
    cpufreq: s3c2416: fix forgotten driver_data conversions
    cpufreq: make __cpufreq_notify_transition() static
    cpufreq: Fix minor formatting issues
    cpufreq: Fix governor start/stop race condition
    cpufreq: Simplify userspace governor
    cpufreq: X86_AMD_FREQ_SENSITIVITY: select CPU_FREQ_TABLE
    cpufreq: tegra: create CONFIG_ARM_TEGRA_CPUFREQ
    cpufreq: S3C2416/S3C64XX: select CPU_FREQ_TABLE
    ...

    Rafael J. Wysocki
     
  • * acpi-hotplug:
    ACPI: Do not use CONFIG_ACPI_HOTPLUG_MEMORY_MODULE
    ACPI / cpufreq: Add ACPI processor device IDs to acpi-cpufreq
    Memory hotplug: Move alternative function definitions to header
    ACPI / processor: Fix potential NULL pointer dereference in acpi_processor_add()
    Memory hotplug / ACPI: Simplify memory removal
    ACPI / scan: Add second pass of companion offlining to hot-remove code
    Driver core / MM: Drop offline_memory_block()
    ACPI / processor: Pass processor object handle to acpi_bind_one()
    ACPI: Drop removal_type field from struct acpi_device
    Driver core / memory: Simplify __memory_block_change_state()
    ACPI / processor: Initialize per_cpu(processors, pr->id) properly
    CPU: Fix sysfs cpu/online of offlined CPUs
    Driver core: Introduce offline/online callbacks for memory blocks
    ACPI / memhotplug: Bind removable memory blocks to ACPI device nodes
    ACPI / processor: Use common hotplug infrastructure
    ACPI / hotplug: Use device offline/online for graceful hot-removal
    Driver core: Use generic offline/online for CPU offline/online
    Driver core: Add offline/online device operations

    Rafael J. Wysocki
     
  • This adds support for a generic reservations framework that can be
    hooked up to ttm and dma-buf and allows easy sharing of reservations
    across devices.

    The idea is that a dma-buf and ttm object both will get a pointer
    to a struct reservation_object, which has to be reserved before
    anything is done with the contents of the dma-buf.

    Changes since v1:
    - Fix locking issue in ticket_reserve, which could cause mutex_unlock
    to be called too many times.
    Changes since v2:
    - All fence related calls and members have been taken out for now,
    what's left is the bare minimum to be useful for ttm locking conversion.
    Changes since v3:
    - Removed helper functions too. The documentation has an example
    implementation for locking. With the move to ww_mutex there is no
    need to have much logic any more.

    Signed-off-by: Maarten Lankhorst
    Reviewed-by: Jerome Glisse
    Signed-off-by: Dave Airlie

    Maarten Lankhorst
     
  • * pm-cpufreq-assorted: (21 commits)
    cpufreq: powernow-k8: call CPUFREQ_POSTCHANGE notfier in error cases
    cpufreq: pcc: call CPUFREQ_POSTCHANGE notfier in error cases
    cpufreq: e_powersaver: call CPUFREQ_POSTCHANGE notfier in error cases
    cpufreq: ACPI: call CPUFREQ_POSTCHANGE notfier in error cases
    cpufreq: make __cpufreq_notify_transition() static
    cpufreq: Fix minor formatting issues
    cpufreq: Fix governor start/stop race condition
    cpufreq: Simplify userspace governor
    cpufreq: powerpc: move cpufreq driver to drivers/cpufreq
    cpufreq: kirkwood: Select CPU_FREQ_TABLE option
    cpufreq: big.LITTLE needs cpufreq table
    cpufreq: SPEAr needs cpufreq table
    cpufreq: powerpc: Add cpufreq driver for Freescale e500mc SoCs
    cpufreq: remove unnecessary cpufreq_cpu_{get|put}() calls
    cpufreq: MAINTAINERS: Add git tree path for ARM specific updates
    cpufreq: rename index as driver_data in cpufreq_frequency_table
    cpufreq: Don't create empty /sys/devices/system/cpu/cpufreq directory
    cpufreq: Move get_cpu_idle_time() to cpufreq.c
    cpufreq: governors: Move get_governor_parent_kobj() to cpufreq.c
    cpufreq: Add EXPORT_SYMBOL_GPL for have_governor_per_policy
    ...

    Rafael J. Wysocki
     

26 Jun, 2013

1 commit

  • This patch fixes another compiling warning with PM_SLEEP unset:

    drivers/base/firmware_class.c:221:29: warning: 'fw_lookup_buf' defined
    but not used [-Wunused-function]

    This time I do build kernel with both PM_SLEEP set and unset, and no
    warning found any more with the patch.

    Reported-by: Stephen Rothwell
    Signed-off-by: Ming Lei
    Signed-off-by: Greg Kroah-Hartman

    Ming Lei
     

24 Jun, 2013

1 commit


22 Jun, 2013

1 commit

  • This patch fixes the below compile warning:

    drivers/base/firmware_class.c:1254:12: warning: 'cache_firmware' defined
    but not used [-Wunused-function]
    static int cache_firmware(const char *fw_name)
    ^
    drivers/base/firmware_class.c:1281:12: warning: 'uncache_firmware'
    defined but not used [-Wunused-function]
    static int uncache_firmware(const char *fw_name)
    ^

    Reported-by: Stephen Rothwell
    Signed-off-by: Ming Lei
    Signed-off-by: Greg Kroah-Hartman

    Ming Lei
     

21 Jun, 2013

1 commit

  • Commit a938da06 introduced a useful little log message to tell
    users/debuggers which wakeup source aborted a suspend. However,
    this message is only printed if the abort happens during the
    in-kernel suspend path (after writing /sys/power/state).

    The full specification of the /sys/power/wakeup_count facility
    allows user-space power managers to double-check if wakeups have
    already happened before it actually tries to suspend (e.g. while it
    was running user-space pre-suspend hooks), by writing the last known
    wakeup_count value to /sys/power/wakeup_count. This patch changes
    the sysfs handler for that node to also print said log message if
    that write fails, so that we can figure out the offending wakeup
    source for both kinds of suspend aborts.

    Signed-off-by: Julius Werner
    Signed-off-by: Rafael J. Wysocki

    Julius Werner
     

20 Jun, 2013

2 commits

  • * linus: (1465 commits)
    ARM: tegra30: clocks: Fix pciex clock registration
    lseek(fd, n, SEEK_END) does *not* go to eof - n
    Linux 3.10-rc6
    smp.h: Use local_irq_{save,restore}() in !SMP version of on_each_cpu().
    powerpc: Fix missing/delayed calls to irq_work
    powerpc: Fix emulation of illegal instructions on PowerNV platform
    powerpc: Fix stack overflow crash in resume_kernel when ftracing
    snd_pcm_link(): fix a leak...
    use can_lookup() instead of direct checks of ->i_op->lookup
    move exit_task_namespaces() outside of exit_notify()
    fput: task_work_add() can fail if the caller has passed exit_task_work()
    xfs: don't shutdown log recovery on validation errors
    xfs: ensure btree root split sets blkno correctly
    xfs: fix implicit padding in directory and attr CRC formats
    xfs: don't emit v5 superblock warnings on write
    mei: me: clear interrupts on the resume path
    mei: nfc: fix nfc device freeing
    mei: init: Flush scheduled work before resetting the device
    sctp: fully initialize sctp_outq in sctp_outq_init
    netiucv: Hold rtnl between name allocation and device registration.
    ...

    Mauro Carvalho Chehab
     
  • This resolves the merge issues with drivers/base/firmware_class.c

    Thanks to Ming Lei for the patch and hints on how to resolve it.

    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

19 Jun, 2013

2 commits

  • The cache is based on the full register map so confuses things if used
    for a partial map.

    Reported-by: Bard Liao
    Signed-off-by: Mark Brown

    Mark Brown
     
  • fw_priv->buf is accessed in both request_firmware_load() and
    writing to sysfs file of 'loading' context, but not protected
    by 'fw_lock' entirely. The patch makes sure that access on
    'fw_priv->buf' is protected by the lock.

    So fixes the double abort problem reported by nirinA raseliarison:

    http://lkml.org/lkml/2013/6/14/188

    Reported-and-tested-by: nirinA raseliarison
    Cc: Guenter Roeck
    Cc: Bjorn Helgaas
    Cc: stable # 3.9
    Signed-off-by: Ming Lei
    Signed-off-by: Greg Kroah-Hartman

    Ming Lei
     

18 Jun, 2013

1 commit


16 Jun, 2013

1 commit

  • If a device have sleep and idle states in addition to the
    default state, look up these in the core and stash them in
    the pinctrl state container.

    Add accessor functions for pinctrl consumers to put the pins
    into "default", "sleep" and "idle" states passing nothing but
    the struct device * affected.

    Solution suggested by Kevin Hilman, Mark Brown and Dmitry
    Torokhov in response to a patch series from Hebbar
    Gururaja.

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

    Linus Walleij
     

12 Jun, 2013

3 commits

  • It is common to access regmap registers at bit level, using
    regmap_update_bits or regmap_read functions, however the end user has to
    take care of a mask or shifting. This becomes overhead when such use
    cases are high. Having a common function to do this is much convenient
    and less error prone.

    The idea of regmap_field is simple, regmap_field gives a logical
    structure to bits of the regmap register, and the driver can use this
    logical entity without the knowledge of the bit positions and masks all
    over the code. This way code looks much neat and it need not handle the
    masks, shifts every time it access the those entities.

    With this new regmap_field_read/write apis the end user can setup a
    regmap field using regmap_field_init and use the return regmap_field to
    read write the register field without worrying about the masks or
    shifts.

    Also this apis will be useful for drivers which are based on regmaps,
    like some clocks or pinctrls which can work on the regmap_fields
    directly without having to worry about bit positions.

    Signed-off-by: Srinivas Kandagatla
    Signed-off-by: Mark Brown

    Srinivas Kandagatla
     
  • In converting the last remaining of_platform_driver (ibmebus) to a regular
    platform driver, to_platform_driver is needed to replace
    to_of_platform_driver.

    Signed-off-by: Rob Herring
    Acked-by: Arnd Bergmann
    Tested-by: Benjamin Herrenschmidt
    Signed-off-by: Grant Likely

    Rob Herring
     
  • This adds in a new message to the wakeup code which adds an
    indication to the log that suspend was cancelled due to a wake event
    occouring during the suspend sequence. It also adjusts the message
    printed in suspend.c to reflect the potential that a suspend was
    aborted, as opposed to a device failing to suspend.

    Without these message adjustments one can end up with a kernel log
    that says that a device failed to suspend with no actual device
    suspend failures, which can be confusing to the log examiner.

    Signed-off-by: Bernie Thompson
    Signed-off-by: Rafael J. Wysocki

    Bernie Thompson
     

09 Jun, 2013

1 commit