30 Sep, 2013

8 commits

  • Linus Torvalds
     
  • Pull USB fixes from Greg KH:
    "Here are a number of USB driver fixes for 3.12-rc3.

    These are all for host controller issues that have been reported, and
    there's a fix for an annoying error message that gets printed every
    time you remove a USB 3 device from the system that's been bugging me
    for a while"

    * tag 'usb-3.12-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
    usb: dwc3: add support for Merrifield
    USB: fsl/ehci: fix failure of checking PHY_CLK_VALID during reinitialization
    USB: Fix breakage in ffs_fs_mount()
    fsl/usb: Resolve PHY_CLK_VLD instability issue for ULPI phy
    usb/core/devio.c: Don't reject control message to endpoint with wrong direction bit
    usb: chipidea: USB_CHIPIDEA should depend on HAS_DMA
    usb: chipidea: udc: free pending TD at removal procedure
    usb: chipidea: imx: Add usb_phy_shutdown at probe's error path
    usb: chipidea: Fix memleak for ci->hw_bank.regmap when removal
    usb: chipidea: udc: fix the oops after rmmod gadget
    USB: fix PM config symbol in uhci-hcd, ehci-hcd, and xhci-hcd
    USB: OHCI: accept very late isochronous URBs
    USB: UHCI: accept very late isochronous URBs
    USB: iMX21: accept very late isochronous URBs
    usbcore: check usb device's state before sending a Set SEL control transfer
    xhci: Fix race between ep halt and URB cancellation
    usb: Fix xHCI host issues on remote wakeup.
    xhci: Ensure a command structure points to the correct trb on the command ring
    xhci: Fix oops happening after address device timeout

    Linus Torvalds
     
  • Pull tty/serial fixes from Greg KH:
    "Here are some serial at tty driver fixes for 3.12-rc3

    The serial driver fixes some kref leaks, documentation is moved to the
    proper places, and the tty and n_tty fixes resolve some reported
    regressions. There is still one outstanding tty regression fix that
    isn't in here yet, as I want to test it out some more, it will be sent
    for 3.12-rc4 if it checks out"

    * tag 'tty-3.12-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
    tty: ar933x_uart: move devicetree binding documentation
    tty: Fix SIGTTOU not sent with tcflush()
    n_tty: Fix EOF push index when termios changes
    serial: pch_uart: remove unnecessary tty_port_tty_get
    serial: pch_uart: fix tty-kref leak in dma-rx path
    serial: pch_uart: fix tty-kref leak in rx-error path
    serial: tegra: fix tty-kref leak

    Linus Torvalds
     
  • Pull staging fixes from Greg KH:
    "Here are some staging driver fixes, MAINTAINER updates, and a new
    device id. All of these have been in the linux-next tree, and are
    pretty simple patches"

    * tag 'staging-3.12-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
    staging: r8188eu: Add new device ID
    staging: imx-drm: Fix probe failure
    staging: vt6656: [BUG] iwctl_siwencodeext return if device not open
    staging: vt6656: [BUG] main_usb.c oops on device_close move flag earlier.
    staging: vt6656: rxtx.c [BUG] s_vGetFreeContext dead lock on null apTD.
    Staging: rtl8192u: r819xU_cmdpkt: checking NULL value after doing dev_alloc_skb
    staging: usbip: Orphan usbip
    staging: r8188eu: Add files for new drive: Cocci spatch "noderef"
    staging: r8188eu: Cocci spatch "noderef"
    staging: octeon-usb: Cocci spatch "noderef"
    staging: r8188eu: Add files for new drive: Cocci spatch "noderef"
    MAINTAINERS: staging: dgnc and dgap drivers: add maintainer
    staging: lustre: Cocci spatch "noderef"

    Linus Torvalds
     
  • Pull driver core / sysfs fixes from Greg KH:
    "Here are 2 fixes for 3.12-rc3. One fixes a sysfs problem with
    mounting caused by 3.12-rc1, and the other is a bug reported by the
    chromeos developers with the driver core.

    Both have been in linux-next for a bit"

    * tag 'driver-core-3.12-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
    driver core : Fix use after free of dev->parent in device_shutdown
    sysfs: Allow mounting without CONFIG_NET

    Linus Torvalds
     
  • Pull char/misc driver fixes from Greg KH:
    "Here are some HyperV and MEI driver fixes for 3.12-rc3. They resolve
    some issues that people have been reporting for them"

    * tag 'char-misc-3.12-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
    Drivers: hv: vmbus: Terminate vmbus version negotiation on timeout
    Drivers: hv: util: Correctly support ws2008R2 and earlier
    mei: cancel stall timers in mei_reset
    mei: bus: stop wait for read during cl state transition
    mei: make me client counters less error prone

    Linus Torvalds
     
  • Pull perf revert from Ingo Molnar:
    "This fixes the 'perf top' regression Markus Trippelsdorf reported"

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    Revert "perf symbols: Demangle cloned functions"

    Linus Torvalds
     
  • Pull drm fixes from Dave Airlie:
    "Nothing too major, radeon still has some dpm changes for off by
    default.

    Radeon, intel, msm:
    - radeon: a few more dpm fixes (still off by default), uvd fixes
    - i915: runtime warn backtrace and regression fix
    - msm: iommu changes fallout"

    * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (27 commits)
    drm/msm: use drm_gem_dumb_destroy helper
    drm/msm: deal with mach/iommu.h removal
    drm/msm: Remove iommu include from mdp4_kms.c
    drm/msm: Odd PTR_ERR usage
    drm/i915: Fix up usage of SHRINK_STOP
    drm/radeon: fix hdmi audio on DCE3.0/3.1 asics
    drm/i915: preserve pipe A quirk in i9xx_set_pipeconf
    drm/i915/tv: clear adjusted_mode.flags
    drm/i915/dp: increase i2c-over-aux retry interval on AUX DEFER
    drm/radeon/cik: fix overflow in vram fetch
    drm/radeon: add missing hdmi callbacks for rv6xx
    drm/i915: Use a temporary va_list for two-pass string handling
    drm/radeon/uvd: lower msg&fb buffer requirements on UVD3
    drm/radeon: disable tests/benchmarks if accel is disabled
    drm/radeon: don't set default clocks for SI when DPM is disabled
    drm/radeon/dpm/ci: filter clocks based on voltage/clk dep tables
    drm/radeon/dpm/si: filter clocks based on voltage/clk dep tables
    drm/radeon/dpm/ni: filter clocks based on voltage/clk dep tables
    drm/radeon/dpm/btc: filter clocks based on voltage/clk dep tables
    drm/radeon/dpm: fetch the max clk from voltage dep tables helper
    ...

    Linus Torvalds
     

29 Sep, 2013

12 commits

  • This reverts commit de95ab53645a2f0015e0f68ee723f18dce2b8b51.

    Markus Trippelsdorf reported that this commit broke 'perf top':

    > I just see a gray screen with no text at all. Sometimes the
    > following error messages are printed:
    >
    > *** Error in `perf': invalid fastbin entry (free): 0x00000000029b18c0
    > ***
    > *** Error in `perf': malloc(): memory corruption (fast): 0x0000000000ee0b10 ***

    While this code is fixable, the commit itself fails on several levels:

    - it should have been a separate helper function
    - why the heck does it do strchr() twice
    - it casts a const char * over into char *
    - sloppy style
    - it's not even a regression fix!

    So lets revert it and re-try the patch in v3.13.

    Reported-by: Markus Trippelsdorf
    Cc: Andi Kleen
    Cc: Peter Zijlstra
    Cc: Arnaldo Carvalho de Melo
    Cc: Linus Torvalds
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • A small fix + deal with fallout of iommu changes + use new
    drm_gem_dumb_destroy helper.

    * 'msm-fixes-3.12-rc2' of git://people.freedesktop.org/~robclark/linux:
    drm/msm: use drm_gem_dumb_destroy helper
    drm/msm: deal with mach/iommu.h removal
    drm/msm: Remove iommu include from mdp4_kms.c
    drm/msm: Odd PTR_ERR usage

    Dave Airlie
     
  • …nt-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

    Pull scheduler, timer and x86 fixes from Ingo Molnar:
    - A context tracking ARM build and functional fix
    - A handful of ARM clocksource/clockevent driver fixes
    - An AMD microcode patch level sysfs reporting fixlet

    * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    arm: Fix build error with context tracking calls

    * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    clocksource: em_sti: Set cpu_possible_mask to fix SMP broadcast
    clocksource: of: Respect device tree node status
    clocksource: exynos_mct: Set IRQ affinity when the CPU goes online
    arm: clocksource: mvebu: Use the main timer as clock source from DT

    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/microcode/AMD: Fix patch level reporting for family 15h

    Linus Torvalds
     
  • Pull perf fixes from Ingo Molnar:
    "A couple of tooling fixlets and a PMU detection printout fix"

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    perf/x86: Fix PMU detection printout when no PMU is detected
    perf symbols: Demangle cloned functions
    perf machine: Fix path unpopulated in machine__create_modules()
    perf tools: Explicitly add libdl dependency
    perf probe: Fix probing symbols with optimization suffix
    perf trace: Add mmap2 handler
    perf kmem: Make it work again on non NUMA machines

    Linus Torvalds
     
  • Pull xfs bugfixes from Ben Myers:
    - fix for directory node collapse regression
    - fix for recovery over stale on disk structures
    - fix for eofblocks ioctl
    - fix asserts in xfs_inode_free
    - lock the ail before removing an item from it

    * tag 'xfs-for-linus-v3.12-rc3' of git://oss.sgi.com/xfs/xfs:
    xfs: fix node forward in xfs_node_toosmall
    xfs: log recovery lsn ordering needs uuid check
    xfs: fix XFS_IOC_FREE_EOFBLOCKS definition
    xfs: asserting lock not held during freeing not valid
    xfs: lock the AIL before removing the buffer item

    Linus Torvalds
     
  • Pull i2c fixes from Wolfram Sang:
    "Some driver bugfixes for the I2C subsystem"

    * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
    i2c: ismt: initialize DMA buffer
    i2c: designware: 10-bit addressing mode enabling if I2C_DYNAMIC_TAR_UPDATE is set
    i2c: mv64xxx: Do not use writel_relaxed()
    i2c: mv64xxx: Fix some build warnings
    i2c: s3c2410: fix clk_disable/clk_unprepare WARNings

    Linus Torvalds
     
  • Pull ACPI and power management fixes from Rafael Wysocki:
    "These fix one recent cpufreq regression, a few older bugs that may
    harm users and a kerneldoc typo.

    Specifics:

    1) After the recent locking changes in the cpufreq core it is
    possible to trigger BUG_ON(!policy) in lock_policy_rwsem_read() if
    cpufreq_get() is called before registering a cpufreq driver. Fix
    from Viresh Kumar.

    2) If intel_pstate has been loaded already, it doesn't make sense to
    do anything in acpi_cpufreq_init() and moreover doing something in
    there in that case may be harmful, so make that function return
    immediately if another cpufreq driver is already present. From
    Yinghai Lu.

    3) The ACPI IPMI driver sometimes attempts to acquire a mutex from
    interrupt context, which can be avoided by replacing that mutex
    with a spinlock. From Lv Zheng.

    4) A NULL pointer may be dereferenced by the exynos5440 cpufreq
    driver if a memory allocation made by it fails. Fix from Sachin
    Kamat.

    5) Hanjun Guo's commit fixes a typo in the kerneldoc comment
    documenting acpi_bus_unregister_driver()"

    * tag 'pm+acpi-3.12-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    ACPI / scan: fix typo in comments of acpi_bus_unregister_driver()
    cpufreq: exynos5440: Fix potential NULL pointer dereference
    cpufreq: check cpufreq driver is valid and cpufreq isn't disabled in cpufreq_get()
    acpi-cpufreq: skip loading acpi_cpufreq after intel_pstate
    ACPI / IPMI: Fix atomic context requirement of ipmi_msg_handler()

    Linus Torvalds
     
  • Ben Herrenschmidt found that commit 928bea964827 ("PCI: Delay enabling
    bridges until they're needed") breaks PCI in some powerpc environments.

    The reason is that the PCIe port driver will call pci_enable_device() on
    the bridge, so the device is enabled, but skips pci_set_master because
    pcie_port_auto and no acpi on powerpc.

    Because of that, pci_enable_bridge() later on (called as a result of the
    child device driver doing pci_enable_device) will see the bridge as
    already enabled and will not call pci_set_master() on it.

    Fixed by add checking in pci_enable_bridge, and call pci_set_master
    if driver skip that.

    That will make the code more robot and wade off problem for missing
    pci_set_master in drivers.

    Reported-by: Benjamin Herrenschmidt
    Signed-off-by: Yinghai Lu
    Signed-off-by: Linus Torvalds

    Yinghai Lu
     
  • Pull s390 lockref enablement from Heiko Carstens:
    "Enabling the new lockless lockref variant on s390 would have been
    trivial until Tony Luck added a cpu_relax() call into the
    CMPXCHG_LOOP(), with commit d472d9d98b46 ("lockref: Relax in cmpxchg
    loop")

    As already mentioned cpu_relax() is very expensive on s390 since it
    yields() the current virtual cpu. So we are talking of several
    thousand cycles. Considering this enabling the lockless lockref
    variant would contradict the intention of the new semantics. And also
    some quick measurements show performance regressions of 50% and more.

    Simply removing the cpu_relax() call again seems also not very
    desireable since Waiman Long reported that for some workloads the call
    improved performance by 5%."

    * 'lockref' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
    s390: enable ARCH_USE_CMPXCHG_LOCKREF
    lockref: use arch_mutex_cpu_relax() in CMPXCHG_LOOP()
    mutex: replace CONFIG_HAVE_ARCH_MUTEX_CPU_RELAX with simple ifdef

    Linus Torvalds
     
  • Commit 6072ddc8520b ("kernel: replace strict_strto*() with kstrto*()")
    broke the handling of signed integer types, fix it.

    Signed-off-by: Jean Delvare
    Reported-by: Christian Kujau
    Tested-by: Christian Kujau
    Cc: Jingoo Han
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jean Delvare
     
  • Pull DeviceTree fixes from Rob Herring:
    "Clean-up to fix some warnings for !OF builds and spelling fixes in
    docs:

    - Clean-up openrisc prom.h
    - Fix warnings caused by of_irq.h ifdefs
    - Spelling fix for Synopsys"

    * tag 'devicetree-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
    dts: Fix misspelling of Synopsys
    of: clean-up ifdefs in of_irq.h
    openrisc: clean-up prom.h

    Linus Torvalds
     
  • Pull ARM fixes from Russell King:
    "Just a few relatively small ARM fixes found since the last merge
    window, nothing too exciting"

    * 'fixes' of git://git.linaro.org/people/rmk/linux-arm:
    ARM: 7837/3: fix Thumb-2 bug in AES assembler code
    ARM: only allow kernel mode neon with AEABI
    ARM: 7839/1: entry: fix tracing of ARM-private syscalls
    ARM: 7836/1: add __get_user_unaligned/__put_user_unaligned

    Linus Torvalds
     

28 Sep, 2013

20 commits

  • This patch adds code to initialize the DMA buffer to compensate for
    possible hardware data corruption.

    Signed-off-by: James Ralston
    [wsa: changed to use 'sizeof']
    Signed-off-by: Wolfram Sang

    James Ralston
     
  • Signed-off-by: Rob Clark

    Rob Clark
     
  • We still need an API exported by msm iommu driver (but not visible in
    any public header anymore). For now, just declare the prototype
    ourselves, but when msm iommu driver provides a better option, use that
    instead.

    Signed-off-by: Rob Clark

    Rob Clark
     
  • Ran into this cryptic PMU bootup log recently:

    [ 0.124047] Performance Events:
    [ 0.125000] smpboot: ...

    Turns out we print this if no PMU is detected. Fall back to
    the right condition so that the following is printed:

    [ 0.122381] Performance Events: no PMU driver, software events only.

    Cc: Peter Zijlstra
    Cc: Arnaldo Carvalho de Melo
    Link: http://lkml.kernel.org/n/tip-u2fwaUffakjp0qkpRfqljgsn@git.kernel.org
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • The include file has been removed and the file does not
    need it anyway, so remove it. Fixes a compile error.

    Signed-off-by: Joerg Roedel
    Signed-off-by: Rob Clark

    Joerg Roedel
     
  • The variable priv->kms is not initialized yet.

    Found by "scripts/coccinelle/tests/odd_ptr_err.cocci".
    PTR_ERR should access the value just tested by IS_ERR.

    Signed-off-by: Thomas Meyer

    Thomas Meyer
     
  • Enable ARCH_USE_CMPXCHG_LOCKREF since it shows performance improvements
    with Linus' simple stat() test case of up to 50% on a 30 cpu system.

    Signed-off-by: Heiko Carstens

    Heiko Carstens
     
  • Make use of arch_mutex_cpu_relax() so architectures can override the
    default cpu_relax() semantics.
    This is especially useful for s390, where cpu_relax() means that we
    yield() the current (virtual) cpu and therefore is very expensive,
    and would contradict the whole purpose of the lockless cmpxchg loop.

    Signed-off-by: Heiko Carstens

    Heiko Carstens
     
  • Linus suggested to replace

    #ifndef CONFIG_HAVE_ARCH_MUTEX_CPU_RELAX
    #define arch_mutex_cpu_relax() cpu_relax()
    #endif

    with just a simple

    #ifndef arch_mutex_cpu_relax
    # define arch_mutex_cpu_relax() cpu_relax()
    #endif

    to get rid of CONFIG_HAVE_CPU_RELAX_SIMPLE. So architectures can
    simply define arch_mutex_cpu_relax if they want an architecture
    specific function instead of having to add a select statement in
    their Kconfig in addition.

    Suggested-by: Linus Torvalds
    Signed-off-by: Heiko Carstens

    Heiko Carstens
     
  • …el/git/frederic/linux-dynticks into sched/urgent

    Pull context tracking ARM fix from Frederic Weisbecker.

    Signed-off-by: Ingo Molnar <mingo@kernel.org>

    Ingo Molnar
     
  • More radeon fixes for 3.12. Kind of all over the place: UVD, DPM,
    tiling, etc.

    * 'drm-fixes-3.12' of git://people.freedesktop.org/~agd5f/linux:
    drm/radeon: fix hdmi audio on DCE3.0/3.1 asics
    drm/radeon/cik: fix overflow in vram fetch
    drm/radeon: add missing hdmi callbacks for rv6xx
    drm/radeon/uvd: lower msg&fb buffer requirements on UVD3
    drm/radeon: disable tests/benchmarks if accel is disabled
    drm/radeon: don't set default clocks for SI when DPM is disabled
    drm/radeon/dpm/ci: filter clocks based on voltage/clk dep tables
    drm/radeon/dpm/si: filter clocks based on voltage/clk dep tables
    drm/radeon/dpm/ni: filter clocks based on voltage/clk dep tables
    drm/radeon/dpm/btc: filter clocks based on voltage/clk dep tables
    drm/radeon/dpm: fetch the max clk from voltage dep tables helper
    drm/radeon: fix missed variable sized access
    drm/radeon: Make r100_cp_ring_info() and radeon_ring_gfx() safe (v2)
    drm/radeon/cik: Add tiling mode index for 1D tiled depth/stencil surfaces
    drm/radeon/cik: Fix encoding of number of banks in tiling configuration info
    drm/radeon/cik: Fix printing of client name on VM protection fault
    drm/radeon: additional gcc fixes for radeon_atombios.c
    drm/radeon: avoid UVD corruption on AGP cards using GPU gart

    Dave Airlie
     
  • …rm-intel into drm-fixes

    Just a few fixes for regressions and other serious stuff.

    Two fix state tracking mismatches, together with an additional patch that
    I've submitted to stable (somehow forgotten to tag it) we should have them
    fixed now (I hope).

    * tag 'drm-intel-fixes-2013-09-26' of git://people.freedesktop.org/~danvet/drm-intel:
    drm/i915: Fix up usage of SHRINK_STOP
    drm/i915: preserve pipe A quirk in i9xx_set_pipeconf
    drm/i915/tv: clear adjusted_mode.flags
    drm/i915/dp: increase i2c-over-aux retry interval on AUX DEFER
    drm/i915: Use a temporary va_list for two-pass string handling

    Dave Airlie
     
  • Pull hwmon fix from Guenter Roeck:
    "Fix potential crash condition in applesmc driver"

    * tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
    hwmon: (applesmc) Check key count before proceeding

    Linus Torvalds
     
  • Pull sound fixes from Takashi Iwai:
    "Nothing too serious here: a couple of compress-offload core fixes,
    Haswell HDMI audio fix, a fixup for new MacBook Airs and a few COEF
    setups for ALC283 mic problems"

    * tag 'sound-3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
    ALSA: hda - Enable internal mic on a Thinkpad machine with ALC283
    ALSA: hda - Fix Internal Mic boost can't control with ALC283
    ALSA: hda - Add documentation for CS4208 fixups
    ALSA: hda - Add fixup for MacBook Air 6,1 and 6,2 with CS4208 codec
    ALSA : hda - not use assigned converters for all unused pins
    ALSA: compress: Make sure we trigger STOP before closing the stream.
    ALSA: compress: Fix compress device unregister.

    Linus Torvalds
     
  • Pull fbdev fixes from Tomi Valkeinen:
    "Small fbdev fixes for various fb drivers"

    * tag 'fbdev-fixes-3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux:
    video: mxsfb: Add missing break
    video: of: display_timing: correct display-timings node finding
    neofb: fix error return code in neofb_probe()
    s3fb: fix error return code in s3_pci_probe()
    video: mmp: drop needless devm cleanup
    OMAPDSS: Add missing dependency on backlight for DSI-CM panel drier
    OMAPDSS: DISPC: set irq_safe for runtime PM
    OMAPDSS: Return right error during connector probe

    Linus Torvalds
     
  • Pull reiserfs and UDF fixes from Jan Kara:
    "The contains fix of an UDF oops when mounting corrupted media and a
    fix of a race in reiserfs leading to oops"

    * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
    reiserfs: fix race with flush_used_journal_lists and flush_journal_list
    reiserfs: remove useless flush_old_journal_lists
    udf: Fortify LVID loading

    Linus Torvalds
     
  • In kobj_ns_current_may_mount the default should be to allow the mount.
    The test is only for a single kobj_ns_type at a time, and unless there
    is a reason to prevent it the mounting sysfs should be allowed.
    Subsystems that are not registered can't have are not involved so can't
    have a reason to prevent mounting sysfs.

    This is a bug-fix to commit 7dc5dbc879bd ("sysfs: Restrict mounting
    sysfs") that came in via the userns tree during the 3.12 merge window.

    Reported-and-tested-by: James Hogan
    Signed-off-by: "Eric W. Biederman"
    Signed-off-by: Linus Torvalds

    Eric W. Biederman
     
  • The 64-bit cmpxchg operation on the lockref is ordered by virtue of
    hazarding between the cmpxchg operation and the reference count
    manipulation. On weakly ordered memory architectures (such as ARM), it
    can be of great benefit to omit the barrier instructions where they are
    not needed.

    This patch moves the lockless lockref code over to a cmpxchg64_relaxed
    operation, which doesn't provide barrier semantics. If the operation
    isn't defined, we simply #define it as the usual 64-bit cmpxchg macro.

    Cc: Waiman Long
    Signed-off-by: Will Deacon
    Signed-off-by: Linus Torvalds

    Will Deacon
     
  • According to Designware I2C spec, if I2C_DYNAMIC_TAR_UPDATE is set to 1,
    the 10-bit addressing mode is controlled by IC_10BITADDR_MASTER bit of
    IC_TAR register instead of IC_CON register. The IC_10BITADDR_MASTER
    in IC_CON register becomes read-only copy. Since I2C_DYNAMIC_TAR_UPDATE
    value can't be detected from hardware register, so we will always set the
    IC_10BITADDR_MASTER bit in both IC_CON and IC_TAR register whenever 10-bit
    addresing mode is requested by user application.

    Signed-off-by: Chew, Chiau Ee
    Reviewed-by: Mika Westerberg
    Signed-off-by: Wolfram Sang

    Chew, Chiau Ee
     
  • The driver is used on PowerPC which don't provide writel_relaxed(). This
    breaks the c2k and prpmc2800 default configurations. To fix the build,
    turn the calls to writel_relaxed() into writel(). The impacts for ARM
    should be minimal.

    Signed-off-by: Thierry Reding
    Signed-off-by: Wolfram Sang

    Thierry Reding