03 Jun, 2014

2 commits

  • Pull USB fixes from Greg KH:
    "Here are some fixes for 3.15-rc8 that resolve a number of tiny USB
    issues that have been reported, and there are some new device ids as
    well.

    All have been tested in linux-next"

    * tag 'usb-3.15-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
    xhci: delete endpoints from bandwidth list before freeing whole device
    usb: pci-quirks: Prevent Sony VAIO t-series from switching usb ports
    USB: cdc-wdm: properly include types.h
    usb: cdc-wdm: export cdc-wdm uapi header
    USB: serial: option: add support for Novatel E371 PCIe card
    USB: ftdi_sio: add NovaTech OrionLXm product ID
    USB: io_ti: fix firmware download on big-endian machines (part 2)
    USB: Avoid runtime suspend loops for HCDs that can't handle suspend/resume

    Linus Torvalds
     
  • Pull staging driver fixes from Greg KH:
    "Here are some staging driver fixes for 3.15.

    Three are for the speakup drivers (one fixes a regression caused in
    3.15-rc, and the other two resolve a tty issue found by Ben Hutchings)
    The comedi and r8192e_pci driver fixes also resolve reported issues"

    * tag 'staging-3.15-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
    staging: r8192e_pci: fix htons error
    Staging: speakup: Update __speakup_paste_selection() tty (ab)usage to match vt
    Staging: speakup: Move pasting into a work item
    staging: comedi: ni_daq_700: add mux settling delay
    speakup: fix incorrect perms on speakup_acntsa.c

    Linus Torvalds
     

01 Jun, 2014

1 commit

  • Pull drm fixes from Dave Airlie:
    "Mostly quiet now:

    i915:
    fixing userspace visiblie issues, all stable marked

    radeon:
    one more pll fix, two crashers, one suspend/resume regression"

    * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
    drm/radeon: Resume fbcon last
    drm/radeon: only allocate necessary size for vm bo list
    drm/radeon: don't allow RADEON_GEM_DOMAIN_CPU for command submission
    drm/radeon: avoid crash if VM command submission isn't available
    drm/radeon: lower the ref * post PLL maximum once more
    drm/i915: Prevent negative relocation deltas from wrapping
    drm/i915: Only copy back the modified fields to userspace from execbuffer
    drm/i915: Fix dynamic allocation of physical handles

    Linus Torvalds
     

31 May, 2014

4 commits

  • So a few people complained that

    commit 177cf92de4aa97ec1435987e91696ed8b5023130
    Author: Daniel Vetter
    Date: Tue Apr 1 22:14:59 2014 +0200

    drm/crtc-helpers: fix dpms on logic

    which was merged into 3.15-rc1, broke resume on radeons. Strangely git
    bisect lead everyone to

    commit 25f397a429dfa43f22c278d0119a60a343aa568f
    Author: Daniel Vetter
    Date: Fri Jul 19 18:57:11 2013 +0200

    drm/crtc-helper: explicit DPMS on after modeset

    which was merged long ago and actually part of 3.14.

    Digging deeper I've noticed (again) that the call to
    drm_helper_resume_force_mode in the radeon resume handlers was a no-op
    previously because everything gets shut down on suspend. radeon does
    this with explicit calls to drm_helper_connector_dpms with DPMS_OFF.
    But with 177c we now force the dpms state to ON, so suddenly
    resume_force_mode actually forced the crtcs back on.

    This is the intention of the change after all, the problem is that
    radeon resumes the fbdev console layer _before_ restoring the display,
    through calling fb_set_suspend. And fbcon does an immediate ->set_par,
    which in turn causes the same forced mode restore to happen.

    Two concurrent modeset operations didn't lead to happiness. Fix this
    by delaying the fbcon resume until the end of the readeon resum
    functions.

    v2: Fix up a bit of the spelling fail.

    References: https://lkml.org/lkml/2014/5/29/1043
    References: https://lkml.org/lkml/2014/5/2/388
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=74751
    Tested-by: Ken Moffat
    Cc: Alex Deucher
    Cc: Ken Moffat
    Signed-off-by: Daniel Vetter
    Signed-off-by: Dave Airlie

    Daniel Vetter
     
  • Pull input subsystem fixes from Dmitry Torokhov:
    "A couple of driver/build fixups and also redone quirk for Synaptics
    touchpads on Lenovo boxes (now using PNP IDs instead of DMI data to
    limit number of quirks)"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
    Input: synaptics - change min/max quirk table to pnp-id matching
    Input: synaptics - add a matches_pnp_id helper function
    Input: synaptics - T540p - unify with other LEN0034 models
    Input: synaptics - add min/max quirk for the ThinkPad W540
    Input: ambakmi - request a shared interrupt for AMBA KMI devices
    Input: pxa27x-keypad - fix generating scancode
    Input: atmel-wm97xx - only build for AVR32
    Input: fix ps2/serio module dependency

    Linus Torvalds
     
  • Pull firewire fix from Stefan Richter:
    "A regression fix for the IEEE 1394 subsystem: re-enable IRQ-based
    asynchronous request reception at addresses below 128 TB"

    * tag 'firewire-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394:
    firewire: revert to 4 GB RDMA, fix protocols using Memory Space

    Linus Torvalds
     
  • Pull device-mapper fixes from Mike Snitzer:
    "A dm-cache stable fix to split discards on cache block boundaries
    because dm-cache cannot yet handle discards that span cache blocks.

    Really fix a dm-mpath LOCKDEP warning that was introduced in -rc1.

    Add a 'no_space_timeout' control to dm-thinp to restore the ability to
    queue IO indefinitely when no data space is available. This fixes a
    change in behavior that was introduced in -rc6 where the timeout
    couldn't be disabled"

    * tag 'dm-3.15-fixes-3' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
    dm mpath: really fix lockdep warning
    dm cache: always split discards on cache block boundaries
    dm thin: add 'no_space_timeout' dm-thin-pool module param

    Linus Torvalds
     

30 May, 2014

6 commits


29 May, 2014

4 commits

  • Undo a feature introduced in v3.14 by commit fcd46b34425d
    "firewire: Enable remote DMA above 4 GB". That change raised the
    minimum address at which protocol drivers and user programs can register
    for request reception from 0x0001'0000'0000 to 0x8000'0000'0000.
    It turned out that at least one vendor-specific protocol exists which
    uses lower addresses: https://bugzilla.kernel.org/show_bug.cgi?id=76921

    For the time being, revert most of commit fcd46b34425d so that affected
    protocols work like with kernel v3.13 and before. Just keep the valid
    documentation parts from the regressing commit, and the ability to
    identify controllers which could be programmed to accept >32 bit
    physical DMA addresses. The rest of fcd46b34425d should probably be
    brought back as an optional instead of default feature.

    Reported-by: Fabien Spindler
    Cc: # 3.14+
    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • Lists of endpoints are stored for bandwidth calculation for roothub ports.
    Make sure we remove all endpoints from the list before the whole device,
    containing its endpoints list_head stuctures, is freed.

    This used to be done in the wrong order in xhci_mem_cleanup(),
    and triggered an oops in resume from S4 (hibernate).

    Cc: stable
    Tested-by: Ville Syrjälä
    Signed-off-by: Mathias Nyman
    Signed-off-by: Greg Kroah-Hartman

    Mathias Nyman
     
  • A sparse error fixup removed a htons() which is required for the driver
    to function. This patch puts the htons() back and fixes the sparse
    warning correctly by changing the left side cast.

    Signed-off-by: Sean MacLennan
    Cc: stable # 3.14
    Signed-off-by: Greg Kroah-Hartman

    Sean MacLennan
     
  • Sony VAIO t-series machines are not capable of switching usb2 ports over
    from Intel EHCI to xHCI controller. If tried the USB2 port will be left
    unconnected and unusable.

    This patch should be backported to stable kernels as old as 3.12,
    that contain the commit 26b76798e0507429506b93cd49f8c4cfdab06896
    "Intel xhci: refactor EHCI/xHCI port switching"

    Cc: stable # 3.12
    Reported-by: Jorge
    Tested-by: Jorge
    Signed-off-by: Mathias Nyman
    Signed-off-by: Greg Kroah-Hartman

    Mathias Nyman
     

28 May, 2014

8 commits

  • PLLE fixes for 3.15

    Mike Turquette
     
  • Pull virtio_blk fix from Jens Axboe:
    "There's a start/stop queue race in virtio_blk, which causes stalls and
    erratic behaviour for some. I've had this queued up for 3.16 for a
    while, but I think we should push it into the current series as well.

    So I cherry picked the commit and added a stable marker as well, so it
    can propagate down"

    * 'for-linus' of git://git.kernel.dk/linux-block:
    virtio_blk: fix race between start and stop queue

    Linus Torvalds
     
  • Pull two timer fixes from Thomas Gleixner:
    "Two small fixlets for ARM SoC clocksource drivers:

    - avoid calling functions which might sleep from interrupt [disabled]
    context in tcb_clksrc used on Atmel SoCs

    - use irq_force_affinity() to pin the per cpu timer interrupt on a
    not yet online cpu in the SiRFprimaII driver"

    * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    clocksource: tcb_clksrc: Make tc_mode interrupt safe
    clocksource: marco: Fix the affinity set for local timer of CPU1

    Linus Torvalds
     
  • Adds product ID for the Novatel E371 PCI Express Mini Card.

    $ lsusb
    Bus 001 Device 024: ID 1410:9011 Novatel Wireless

    $ usb-devices
    T: Bus=01 Lev=01 Prnt=01 Port=03 Cnt=01 Dev#= 24 Spd=480 MxCh= 0
    D: Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs= 1
    P: Vendor=1410 ProdID=9011 Rev=00.03
    S: Manufacturer=Novatel Wireless, Inc.
    S: Product=Novatel Wireless HSPA
    S: SerialNumber=012773002115811
    C: #Ifs= 6 Cfg#= 1 Atr=e0 MxPwr=500mA
    I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    I: If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    I: If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    I: If#= 6 Alt= 0 #EPs= 1 Cls=02(commc) Sub=06 Prot=00 Driver=cdc_ether
    I: If#= 7 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_ether

    Tested with kernel 3.2.0.

    Signed-off-by: Alexej Starschenko
    Cc: stable
    Signed-off-by: Johan Hovold
    Signed-off-by: Greg Kroah-Hartman

    Alexej Starschenko
     
  • The NovaTech OrionLXm uses an onboard FTDI serial converter for JTAG and
    console access.

    Here is the lsusb output:
    Bus 004 Device 123: ID 0403:7c90 Future Technology Devices
    International, Ltd

    Signed-off-by: George McCollister
    Cc: stable
    Signed-off-by: Johan Hovold
    Signed-off-by: Greg Kroah-Hartman

    George McCollister
     
  • A recent patch that purported to fix firmware download on big-endian
    machines failed to add the corresponding sparse annotation to the
    i2c-header. This was reported by the kbuild test robot.

    Adding the appropriate annotation revealed another endianess bug related
    to the i2c-header Size-field in a code path that is exercised when the
    firmware is actually being downloaded (and not just verified and left
    untouched unless older than the firmware at hand).

    This patch adds the required sparse annotation to the i2c-header and
    makes sure that the Size-field is sent in little-endian byte order
    during firmware download also on big-endian machines.

    Note that this patch is only compile-tested, but that there is no
    functional change for little-endian systems.

    Reported-by: kbuild test robot
    Cc: Ludovic Drolez
    Cc: stable
    Signed-off-by: Johan Hovold
    Signed-off-by: Greg Kroah-Hartman

    Johan Hovold
     
  • Pull pinctrl fix from Linus Walleij:
    "A single last pinctrl fix for the v3.15 series: the vt8500 driver was
    failing to update the output value when the combined set direction
    output and set value was executed"

    * tag 'pinctrl-v3.15-4' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
    pinctrl: vt8500: Ensure value reg is updated when setting direction

    Linus Torvalds
     
  • Pull slave-dmaengine fixes from Vinod Koul:
    "We have three small fixes.

    First one from Andy reverts the devm_request irq as we need to ensure
    the tasklet is killed after irq is freed, so we need to do free irq in
    our code. Other two from Arnd are fixing the compilation issue in
    omap and sa11x0 drivers with ARM randconfigs"

    * 'fixes' of git://git.infradead.org/users/vkoul/slave-dma:
    dmaengine: sa11x0: remove broken #ifdef
    dmaengine: omap: hide filter_fn for built-in drivers
    dmaengine: dw: went back to plain {request,free}_irq() calls

    Linus Torvalds
     

27 May, 2014

10 commits

  • lockdep complains about a circular locking. And indeed, we need to
    release the lock before calling dm_table_run_md_queue_async().

    As such, commit 4cdd2ad ("dm mpath: fix lock order inconsistency in
    multipath_ioctl") must also be reverted in addition to fixing the
    lock order in the other dm_table_run_md_queue_async() callers.

    Reported-by: Bart van Assche
    Tested-by: Bart van Assche
    Signed-off-by: Hannes Reinecke
    Signed-off-by: Mike Snitzer

    Hannes Reinecke
     
  • When there isn't enough vring descriptor for adding to vq,
    blk-mq will be put as stopped state until some of pending
    descriptors are completed & freed.

    Unfortunately, the vq's interrupt may come just before
    blk-mq's BLK_MQ_S_STOPPED flag is set, so the blk-mq will
    still be kept as stopped even though lots of descriptors
    are completed and freed in the interrupt handler. The worst
    case is that all pending descriptors are freed in the
    interrupt handler, and the queue is kept as stopped forever.

    This patch fixes the problem by starting/stopping blk-mq
    with holding vq_lock.

    Cc: Jens Axboe
    Cc: Rusty Russell
    Signed-off-by: Ming Lei
    Cc: stable@kernel.org
    Signed-off-by: Jens Axboe

    Conflicts:
    drivers/block/virtio_blk.c

    Ming Lei
     
  • The DM cache target cannot cope with discards that span multiple cache
    blocks, so each discard bio that spans more than one cache block must
    get split by the DM core.

    Signed-off-by: Heinz Mauelshagen
    Acked-by: Joe Thornber
    Signed-off-by: Mike Snitzer
    Cc: stable@vger.kernel.org # v3.9+

    Heinz Mauelshagen
     
  • This is pure evil. Userspace, I'm looking at you SNA, repacks batch
    buffers on the fly after generation as they are being passed to the
    kernel for execution. These batches also contain self-referenced
    relocations as a single buffer encompasses the state commands, kernels,
    vertices and sampler. During generation the buffers are placed at known
    offsets within the full batch, and then the relocation deltas (as passed
    to the kernel) are tweaked as the batch is repacked into a smaller buffer.
    This means that userspace is passing negative relocations deltas, which
    subsequently wrap to large values if the batch is at a low address. The
    GPU hangs when it then tries to use the large value as a base for its
    address offsets, rather than wrapping back to the real value (as one
    would hope). As the GPU uses positive offsets from the base, we can
    treat the relocation address as the minimum address read by the GPU.
    For the upper bound, we trust that userspace will not read beyond the
    end of the buffer.

    So, how do we fix negative relocations from wrapping? We can either
    check that every relocation looks valid when we write it, and then
    position each object such that we prevent the offset wraparound, or we
    just special-case the self-referential behaviour of SNA and force all
    batches to be above 256k. Daniel prefers the latter approach.

    This fixes a GPU hang when it tries to use an address (relocation +
    offset) greater than the GTT size. The issue would occur quite easily
    with full-ppgtt as each fd gets its own VM space, so low offsets would
    often be handed out. However, with the rearrangement of the low GTT due
    to capturing the BIOS framebuffer, it is already affecting kernels 3.15
    onwards. I think only IVB+ is susceptible to this bug, but the workaround
    should only kick in rarely, so it seems sensible to always apply it.

    v3: Use a bias for batch buffers to prevent small negative delta relocations
    from wrapping.

    v4 from Daniel:
    - s/BIAS/BATCH_OFFSET_BIAS/
    - Extract eb_vma_misplaced/i915_vma_misplaced since the conditions
    were growing rather cumbersome.
    - Add a comment to eb_get_batch explaining why we do this.
    - Apply the batch offset bias everywhere but mention that we've only
    observed it on gen7 gpus.
    - Drop PIN_OFFSET_FIX for now, that slipped in from a feature patch.

    v5: Add static to eb_get_batch, spotted by 0-day tester.

    Testcase: igt/gem_bad_reloc
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=78533
    Signed-off-by: Chris Wilson (v3)
    Cc: stable@vger.kernel.org
    Signed-off-by: Daniel Vetter

    Chris Wilson
     
  • We only want to modifiy a single field in the userspace view of the
    execbuffer command buffer, so explicitly change that rather than copy
    everything back again.

    This serves two purposes:

    1. The single fields are much cheaper to copy (constant size so the
    copy uses special case code) and much smaller than the whole array.

    2. We modify the array for internal use that need to be masked from
    the user.

    Note: We need this backported since without it the next bugfix will
    blow up when userspace recycles batchbuffers and relocations.

    Signed-off-by: Chris Wilson
    Cc: Daniel Vetter
    Cc: stable@vger.kernel.org
    Signed-off-by: Daniel Vetter

    Chris Wilson
     
  • A single object may be referenced by multiple registers fundamentally
    breaking the static allotment of ids in the current design. When the
    object is used the second time, the physical address of the first
    assignment is relinquished and a second one granted. However, the
    hardware is still reading (and possibly writing) to the old physical
    address now returned to the system. Eventually hilarity will ensue, but
    in the short term, it just means that cursors are broken when using more
    than one pipe.

    v2: Fix up leak of pci handle when handling an error during attachment,
    and avoid a double kmap/kunmap. (Ville)
    Rebase against -fixes.

    v3: And fix the error handling added in v2 (Ville)

    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=77351
    Signed-off-by: Chris Wilson
    Cc: Ville Syrjälä
    Cc: Jani Nikula
    Cc: stable@vger.kernel.org
    Reviewed-by: Ville Syrjälä
    Signed-off-by: Daniel Vetter

    Chris Wilson
     
  • Most of the affected models share pnp-ids for the touchpad. So switching
    to pnp-ids give us 2 advantages:
    1) It shrinks the quirk list
    2) It will lower the new quirk addition frequency, ie the recently added W540
    quirk would not have been necessary since it uses the same LEN0034 pnp ids
    as other models already added before it

    As an added bonus it actually puts the quirk on the actual psmouse, rather
    then on the machine, which is technically more correct.

    Cc: stable@vger.kernel.org
    Signed-off-by: Hans de Goede
    Signed-off-by: Dmitry Torokhov

    Hans de Goede
     
  • This is a preparation patch for simplifying the min/max quirk table.

    Cc: stable@vger.kernel.org
    Signed-off-by: Hans de Goede
    Signed-off-by: Dmitry Torokhov

    Hans de Goede
     
  • The T540p has a touchpad with pnp-id LEN0034, all the models with this
    pnp-id have the same min/max values, except the T540p where the values are
    slightly off. Fix them to be identical.

    This is a preparation patch for simplifying the quirk table.

    Cc: stable@vger.kernel.org
    Signed-off-by: Hans de Goede
    Signed-off-by: Dmitry Torokhov

    Hans de Goede
     
  • * pm-cpufreq:
    cpufreq: cpu0: drop wrong devm usage
    cpufreq: remove race while accessing cur_policy

    * acpi-thermal:
    ACPI / thermal: fix workqueue destroy order

    Rafael J. Wysocki
     

26 May, 2014

3 commits


25 May, 2014

2 commits

  • The mapping from OF device IDs to platform device IDs is wrong.
    TYPE_NCPXXWB473 is 0, TYPE_NCPXXWL333 is 1, so
    ntc_thermistor_id[TYPE_NCPXXWB473] is { "ncp15wb473", TYPE_NCPXXWB473 }
    while
    ntc_thermistor_id[TYPE_NCPXXWL333] is { "ncp18wb473", TYPE_NCPXXWB473 }.

    So the name is wrong for all but the "ntc,ncp15wb473" entry, and the
    type is wrong for the "ntc,ncp15wl333" entry.

    So map the entries by index, it is neither elegant nor robust but at
    least it is correct.

    Signed-off-by: Jean Delvare
    Fixes: 9e8269de hwmon: (ntc_thermistor) Add DT with IIO support to NTC thermistor driver
    Reviewed-by: Guenter Roeck
    Cc: Naveen Krishna Chatradhi
    Cc: Doug Anderson

    Jean Delvare
     
  • In commit 9e8269de, support was added for ntc_thermistor devices being
    declared in the device tree and implemented on top of IIO. With that
    change, a dependency was added to the ntc_thermistor driver:

    depends on (!OF && !IIO) || (OF && IIO)

    This construct has the drawback that the driver can no longer be
    selected when OF is set and IIO isn't, nor when IIO is set and OF is
    not. This is a regression for the original users of the driver.

    As the new code depends on IIO and is useless without OF, include it
    only if both are enabled, and set the dependencies accordingly. This
    is clearer, more simple and more correct.

    Signed-off-by: Jean Delvare
    Fixes: 9e8269de hwmon: (ntc_thermistor) Add DT with IIO support to NTC thermistor driver
    Reviewed-by: Guenter Roeck
    Cc: Naveen Krishna Chatradhi
    Cc: Doug Anderson

    Jean Delvare