1. 23 10月, 2015 1 次提交
    • L
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · a67b20d2
      Linus Torvalds 提交于
      Pull drm fixes from Dave Airlie:
       "I've been a bit slow gathering these:
      
         - drm/mst: one mutex leak in a fail path
      
         - radeon: two oops fixes, one dpm fix
      
         - i915: one messy set of fixes, where we revert the original fix, and
                 pull back the proper set of fixes from -next on top.
      
         - nouveau: one fix for an illegal buffer placement.
      
        Doesn't look too bad, hopefully shouldn't be too much more"
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
        drm/nouveau/gem: return only valid domain when there's only one
        drm: fix mutex leak in drm_dp_get_mst_branch_device
        drm/amdgpu: add missing dpm check for KV dpm late init
        drm/amdgpu/dpm: don't add pwm attributes if DPM is disabled
        drm/radeon/dpm: don't add pwm attributes if DPM is disabled
        drm/i915: Add primary plane to mask if it's visible
        drm/i915: Move sprite/cursor plane disable to intel_sanitize_crtc()
        drm/i915: Assign hwmode after encoder state readout
        Revert "drm/i915: Add primary plane to mask if it's visible"
        drm/i915: Deny wrapping an userptr into a framebuffer
        drm/i915: Enable DPLL VGA mode before P1/P2 divider write
        drm/i915: Restore lost DPLL register write on gen2-4
        drm/i915: Flush pipecontrol post-sync writes
        drm/i915: Fix kerneldoc for i915_gem_shrink_all
      a67b20d2
  2. 22 10月, 2015 7 次提交
    • D
      Merge branch 'drm-fixes-4.3' of git://people.freedesktop.org/~agd5f/linux into drm-fixes · c50f13f9
      Dave Airlie 提交于
      Just a crash fix for radeon and amdgpu if the user has forcibly disabled
      dpm and tries to access the pwm sysfs controls.
      
      * 'drm-fixes-4.3' of git://people.freedesktop.org/~agd5f/linux:
        drm/amdgpu: add missing dpm check for KV dpm late init
        drm/amdgpu/dpm: don't add pwm attributes if DPM is disabled
        drm/radeon/dpm: don't add pwm attributes if DPM is disabled
      c50f13f9
    • D
      Merge tag 'drm-intel-fixes-2015-10-16' of git://anongit.freedesktop.org/drm-intel into drm-fixes · c2a75586
      Dave Airlie 提交于
      The revert dance could use some explanation: we had stuff fixed in
      -next, and initially backported one commit to v4.3. Now, turns out we
      need more fixes, and we could cherry-pick them all without conflicts if
      we reverted the backported one first. So did that to not have to edit
      and backport them all.
      
      * tag 'drm-intel-fixes-2015-10-16' of git://anongit.freedesktop.org/drm-intel:
        drm/i915: Add primary plane to mask if it's visible
        drm/i915: Move sprite/cursor plane disable to intel_sanitize_crtc()
        drm/i915: Assign hwmode after encoder state readout
        Revert "drm/i915: Add primary plane to mask if it's visible"
        drm/i915: Deny wrapping an userptr into a framebuffer
        drm/i915: Enable DPLL VGA mode before P1/P2 divider write
        drm/i915: Restore lost DPLL register write on gen2-4
        drm/i915: Flush pipecontrol post-sync writes
        drm/i915: Fix kerneldoc for i915_gem_shrink_all
      c2a75586
    • D
      Merge branch 'linux-4.3' of git://anongit.freedesktop.org/nouveau/linux-2.6 into drm-fixes · 37363bc0
      Dave Airlie 提交于
      Just one fix from Ilia to resolve various issues that have resulted from
      buffer eviction.
      
      * 'linux-4.3' of git://anongit.freedesktop.org/nouveau/linux-2.6:
        drm/nouveau/gem: return only valid domain when there's only one
      37363bc0
    • I
      drm/nouveau/gem: return only valid domain when there's only one · 2a6c521b
      Ilia Mirkin 提交于
      On nv50+, we restrict the valid domains to just the one where the buffer
      was originally created. However after the buffer is evicted to system
      memory, we might move it back to a different domain that was not
      originally valid. When sharing the buffer and retrieving its GEM_INFO
      data, we still want the domain that will be valid for this buffer in a
      pushbuf, not the one where it currently happens to be.
      
      This resolves fdo#92504 and several others. These are due to suspend
      evicting all buffers, making it more likely that they temporarily end up
      in the wrong place.
      
      Cc: stable@vger.kernel.org
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92504Signed-off-by: NIlia Mirkin <imirkin@alum.mit.edu>
      Signed-off-by: NBen Skeggs <bskeggs@redhat.com>
      2a6c521b
    • A
      drm: fix mutex leak in drm_dp_get_mst_branch_device · 30730c7f
      Adam Richter 提交于
      In Linux 4.3-rc5, there is an error case in drm_dp_get_branch_device
      that returns without releasing mgr->lock, resulting a spew of kernel
      messages about a kernel work function possibly having leaked a mutex
      and presumably more serious adverse consequences later.  This patch
      changes the error to "goto out" to unlock the mutex before returning.
      
      [airlied: grabbed from drm-next as it fixes something we've seen]
      Signed-off-by: NAdam J. Richter <adam_richter2004@yahoo.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      30730c7f
    • L
      Merge tag 'for-linus-20151021' of git://git.infradead.org/intel-iommu · 8a70dd26
      Linus Torvalds 提交于
      Pull intel-iommu bugfix from David Woodhouse:
       "This contains a single fix, for when the IOMMU API is used to overlay
        an existing mapping comprised of 4KiB pages, with a mapping that can
        use superpages.
      
        For the *first* superpage in the new mapping, we were correctly¹
        freeing the old bottom-level page table page and clearing the link to
        it, before installing the superpage.  For subsequent superpages,
        however, we weren't.  This causes a memory leak, and a warning about
        setting a PTE which is already set.
      
        ¹ Well, not *entirely* correctly.  We just free the page table pages
          right there and then, which is wrong.  In fact they should only be
          freed *after* the IOTLB is flushed so we know the hardware will no
          longer be looking at them....  and in fact I note that the IOTLB
          flush is completely missing from the intel_iommu_map() code path,
          although it needs to be there if it's permitted to overwrite
          existing mappings.
      
          Fixing those is somewhat more intrusive though, and will probably
          need to wait for 4.4 at this point"
      
      * tag 'for-linus-20151021' of git://git.infradead.org/intel-iommu:
        iommu/vt-d: fix range computation when making room for large pages
      8a70dd26
    • L
      Merge tag 'mmc-v4.3-rc5' of git://git.linaro.org/people/ulf.hansson/mmc · 7f677863
      Linus Torvalds 提交于
      Pull MMC bugfix from Ulf Hansson:
       "Here's yet another MMC fix intended for v4.3 rc7.  I don't expect to
        send any further pull requests for 4.3 rc[n].
      
        MMC core:
         - Don't re-tune in the reset sequence to allow re-init of the card"
      
      * tag 'mmc-v4.3-rc5' of git://git.linaro.org/people/ulf.hansson/mmc:
        mmc: core: Fix init_card in 52Mhz
      7f677863
  3. 21 10月, 2015 1 次提交
  4. 20 10月, 2015 10 次提交
    • L
      Merge branch 'for-linus-4.3-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml · be0e1987
      Linus Torvalds 提交于
      Pull UML fixes from Richard Weinberger:
       "This contains four overdue UML regression fixes"
      
      * 'for-linus-4.3-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml:
        um: Fix kernel mode fault condition
        um: Fix waitpid() usage in helper code
        um: Do not rely on libc to provide modify_ldt()
        um: Fix out-of-tree build
      be0e1987
    • L
      Merge branch 'keys-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs · ce1fad27
      Linus Torvalds 提交于
      Pull key handling fixes from David Howells:
       "Here are two patches, the first of which at least should go upstream
        immediately:
      
        (1) Prevent a user-triggerable crash in the keyrings destructor when a
            negatively instantiated keyring is garbage collected.  I have also
            seen this triggered for user type keys.
      
        (2) Prevent the user from using requesting that a keyring be created
            and instantiated through an upcall.  Doing so is probably safe
            since the keyring type ignores the arguments to its instantiation
            function - but we probably shouldn't let keyrings be created in
            this manner"
      
      * 'keys-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs:
        KEYS: Don't permit request_key() to construct a new keyring
        KEYS: Fix crash when attempt to garbage collect an uninstantiated keyring
      ce1fad27
    • R
      um: Fix kernel mode fault condition · 56b88a3b
      Richard Weinberger 提交于
      We have to exclude memory locations <= PAGE_SIZE from
      the condition and let the kernel mode fault path catch it.
      Otherwise a kernel NULL pointer exception will be reported
      as a kernel user space access.
      
      Fixes: d2313084 (um: Catch unprotected user memory access)
      Signed-off-by: NRichard Weinberger <richard@nod.at>
      56b88a3b
    • R
      um: Fix waitpid() usage in helper code · 6b187337
      Richard Weinberger 提交于
      If UML is executing a helper program it is using
      waitpid() with the __WCLONE flag to wait for the program
      as the helper is executed from a clone()'ed thread.
      While using __WCLONE is perfectly fine for clone()'ed
      childs it won't detect terminated childs if the helper
      has issued an execve().
      
      We have to use __WALL to wait for both clone()'ed and
      regular childs to detect the termination before and
      after an execve().
      Reported-and-tested-by: NThomas Meyer <thomas@m3y3r.de>
      Signed-off-by: NRichard Weinberger <richard@nod.at>
      6b187337
    • H
      um: Do not rely on libc to provide modify_ldt() · 37e81a01
      Hans-Werner Hilse 提交于
      modify_ldt() was declared as an external symbol. Despite the man
      page for this syscall telling that there is no wrapper in glibc,
      since version 2.1 there actually is, so linking to the glibc
      works.
      
      Since modify_ldt() is not a POSIX interface, other libc
      implementations do not always provide a wrapper function.
      Even glibc headers do not provide a corresponding declaration.
      
      So go the recommended way to call this using syscall().
      Signed-off-by: NHans-Werner Hilse <hwhilse@gmail.com>
      Signed-off-by: NRichard Weinberger <richard@nod.at>
      37e81a01
    • R
      um: Fix out-of-tree build · 0b5aedfe
      Richard Weinberger 提交于
      Commit 30b11ee9 (um: Remove copy&paste code from init.h)
      uncovered an issue wrt. out-of-tree builds.
      For out-of-tree builds, we must not rely on relative paths.
      Before 30b11ee9 it worked by chance as no host code included
      generated header files.
      Acked-by: NRandy Dunlap <rdunlap@infradead.org>
      Signed-off-by: NRichard Weinberger <richard@nod.at>
      0b5aedfe
    • A
      drm/amdgpu: add missing dpm check for KV dpm late init · 677c884f
      Alex Deucher 提交于
      Skip dpm late init if dpm is disabled.
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      Cc: stable@vger.kernel.org
      677c884f
    • A
      drm/amdgpu/dpm: don't add pwm attributes if DPM is disabled · 27100735
      Alex Deucher 提交于
      PWM fan control is only available with DPM.  There is no non-DPM
      support on amdgpu, so we should never get a crash here because
      the sysfs nodes would never be created in the first place. Add the
      check just in case to be on the safe side.
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      27100735
    • A
      drm/radeon/dpm: don't add pwm attributes if DPM is disabled · 2a7d44f4
      Alex Deucher 提交于
      PWM fan control is only available with DPM.  If DPM disabled,
      don't expose the PWM fan controls to avoid a crash.
      
      Bug:
      https://bugs.freedesktop.org/show_bug.cgi?id=92524Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      Cc: stable@vger.kernel.org
      2a7d44f4
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 1099f860
      Linus Torvalds 提交于
      Pull networking fixes from David Miller:
      
       1) Account for extra headroom in ath9k driver, from Felix Fietkau.
      
       2) Fix OOPS in pppoe driver due to incorrect socket state transition,
          from Guillaume Nault.
      
       3) Kill memory leak in amd-xgbe debugfx, from Geliang Tang.
      
       4) Power management fixes for iwlwifi, from Johannes Berg.
      
       5) Fix races in reqsk_queue_unlink(), from Eric Dumazet.
      
       6) Fix dst_entry usage in ARP replies, from Jiri Benc.
      
       7) Cure OOPSes with SO_GET_FILTER, from Daniel Borkmann.
      
       8) Missing allocation failure check in amd-xgbe, from Tom Lendacky.
      
       9) Various resource allocation/freeing cures in DSA< from Neil
          Armstrong.
      
      10) A series of bug fixes in the openvswitch conntrack support, from
          Joe Stringer.
      
      11) Fix two cases (BPF and act_mirred) where we have to clean the sender
          cpu stored in the SKB before transmitting.  From WANG Cong and
          Alexei Starovoitov.
      
      12) Disable VLAN filtering in promiscuous mode in mlx5 driver, from
          Achiad Shochat.
      
      13) Older bnx2x chips cannot do 4-tuple UDP hashing, so prevent this
          configuration via ethtool.  From Yuval Mintz.
      
      14) Don't call rt6_uncached_list_flush_dev() from rt6_ifdown() when
          'dev' is NULL, from Eric Biederman.
      
      15) Prevent stalled link synchronization in tipc, from Jon Paul Maloy.
      
      16) kcalloc() gstrings ethtool buffer before having driver fill it in,
          in order to prevent kernel memory leaking.  From Joe Perches.
      
      17) Fix mixxing rt6_info initialization for blackhole routes, from
          Martin KaFai Lau.
      
      18) Kill VLAN regression in via-rhine, from Andrej Ota.
      
      19) Missing pfmemalloc check in sk_add_backlog(), from Eric Dumazet.
      
      20) Fix spurious MSG_TRUNC signalling in netlink dumps, from Ronen Arad.
      
      21) Scrube SKBs when pushing them between namespaces in openvswitch,
          from Joe Stringer.
      
      22) bcmgenet enables link interrupts too early, fix from Florian
          Fainelli.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (92 commits)
        net: bcmgenet: Fix early link interrupt enabling
        tunnels: Don't require remote endpoint or ID during creation.
        openvswitch: Scrub skb between namespaces
        xen-netback: correctly check failed allocation
        net: asix: add support for the Billionton GUSB2AM-1G-B USB adapter
        netlink: Trim skb to alloc size to avoid MSG_TRUNC
        net: add pfmemalloc check in sk_add_backlog()
        via-rhine: fix VLAN receive handling regression.
        ipv6: Initialize rt6_info properly in ip6_blackhole_route()
        ipv6: Move common init code for rt6_info to a new function rt6_info_init()
        Bluetooth: Fix initializing conn_params in scan phase
        Bluetooth: Fix conn_params list update in hci_connect_le_scan_cleanup
        Bluetooth: Fix remove_device behavior for explicit connects
        Bluetooth: Fix LE reconnection logic
        Bluetooth: Fix reference counting for LE-scan based connections
        Bluetooth: Fix double scan updates
        mlxsw: core: Fix race condition in __mlxsw_emad_transmit
        tipc: move fragment importance field to new header position
        ethtool: Use kcalloc instead of kmalloc for ethtool_get_strings
        tipc: eliminate risk of stalled link synchronization
        ...
      1099f860
  5. 19 10月, 2015 11 次提交
    • D
      KEYS: Don't permit request_key() to construct a new keyring · 911b79cd
      David Howells 提交于
      If request_key() is used to find a keyring, only do the search part - don't
      do the construction part if the keyring was not found by the search.  We
      don't really want keyrings in the negative instantiated state since the
      rejected/negative instantiation error value in the payload is unioned with
      keyring metadata.
      
      Now the kernel gives an error:
      
      	request_key("keyring", "#selinux,bdekeyring", "keyring", KEY_SPEC_USER_SESSION_KEYRING) = -1 EPERM (Operation not permitted)
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      911b79cd
    • F
      net: bcmgenet: Fix early link interrupt enabling · 37850e37
      Florian Fainelli 提交于
      Link interrupts are enabled in init_umac(), which is too early for us to
      process them since we do not yet have a valid PHY device pointer. On
      BCM7425 chips for instance, we will crash calling phy_mac_interrupt()
      because phydev is NULL.
      
      Fix this by moving the link interrupts enabling in
      bcmgenet_netif_start(), under a specific function:
      bcmgenet_link_intr_enable() and while at it, update the comments
      surrounding the code.
      
      Fixes: 6cc8e6d4 ("net: bcmgenet: Delay PHY initialization to bcmgenet_open()")
      Signed-off-by: NFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      37850e37
    • D
      Merge tag 'wireless-drivers-for-davem-2015-10-17' of... · afc050dd
      David S. Miller 提交于
      Merge tag 'wireless-drivers-for-davem-2015-10-17' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers
      
      Kalle Valo says:
      
      ====================
      iwlwifi:
      
      * mvm: flush fw_dump_wk when mvm fails to start
      * mvm: init card correctly on ctkill exit check
      * pci: add a few more PCI subvendor IDs for the 7265 series
      * fix firmware filename for 3160
      * mvm: clear csa countdown when AP is stopped
      * mvm: fix D3 firmware PN programming
      * dvm: fix D3 firmware PN programming
      * mvm: fix D3 CCMP TX PN assignment
      
      rtlwifi:
      
      * rtl8821ae: Fix system lockups on boot
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      afc050dd
    • J
      tunnels: Don't require remote endpoint or ID during creation. · e277de5f
      Jesse Gross 提交于
      Before lightweight tunnels existed, it really didn't make sense to
      create a tunnel that was not fully specified, such as without a
      destination IP address - the resulting packets would go nowhere.
      However, with lightweight tunnels, the opposite is true - it doesn't
      make sense to require this information when it will be provided later
      on by the route. This loosens the requirements for this information.
      
      An alternative would be to allow the relaxed version only when
      COLLECT_METADATA is enabled. However, since there are several
      variations on this theme (such as NBMA tunnels in GRE), just dropping
      the restrictions seems the most consistent across tunnels and with
      the existing configuration.
      
      CC: John Linville <linville@tuxdriver.com>
      Signed-off-by: NJesse Gross <jesse@nicira.com>
      Signed-off-by: NThomas Graf <tgraf@suug.ch>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e277de5f
    • J
      openvswitch: Scrub skb between namespaces · 740dbc28
      Joe Stringer 提交于
      If OVS receives a packet from another namespace, then the packet should
      be scrubbed. However, people have already begun to rely on the behaviour
      that skb->mark is preserved across namespaces, so retain this one field.
      
      This is mainly to address information leakage between namespaces when
      using OVS internal ports, but by placing it in ovs_vport_receive() it is
      more generally applicable, meaning it should not be overlooked if other
      port types are allowed to be moved into namespaces in future.
      Signed-off-by: NJoe Stringer <joestringer@nicira.com>
      Acked-by: NPravin B Shelar <pshelar@nicira.com>
      Acked-by: NThomas Graf <tgraf@suug.ch>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      740dbc28
    • D
      Merge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth · a5d6f7dd
      David S. Miller 提交于
      Johan Hedberg says:
      
      ====================
      pull request: bluetooth 2015-10-16
      
      First of all, sorry for the late set of patches for the 4.3 cycle. We
      just finished an intensive week of testing at the Bluetooth UnPlugFest
      and discovered (and fixed) issues there. Unfortunately a few issues
      affect 4.3-rc5 in a way that they break existing Bluetooth LE mouse and
      keyboard support.
      
      The regressions result from supporting LE privacy in conjunction with
      scanning for Resolvable Private Addresses before connecting. A feature
      that has been tested heavily (including automated unit tests), but sadly
      some regressions slipped in. The UnPlugFest with its multitude of test
      platforms is a good battle testing ground for uncovering every corner
      case.
      
      The patches in this pull request focus only on fixing the regressions in
      4.3-rc5. The patches look a bit larger since we also added comments in
      the critical sections of the fixes to improve clarity.
      
      I would appreciate if we can get these regression fixes to Linus
      quickly. Please let me know if there are any issues pulling. Thanks.
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a5d6f7dd
    • I
      xen-netback: correctly check failed allocation · 833b8f18
      Insu Yun 提交于
      Since vzalloc can be failed in memory pressure,
      writes -ENOMEM to xenstore to indicate error.
      Signed-off-by: NInsu Yun <wuninsu@gmail.com>
      Acked-by: NWei Liu <wei.liu2@citrix.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      833b8f18
    • C
      net: asix: add support for the Billionton GUSB2AM-1G-B USB adapter · 80083a3c
      Chia-Sheng Chang 提交于
      Just another AX88178-based 10/100/1000 USB-to-Ethernet dongle. This one
      shows up in lsusb as: "ID 08dd:0114 Billionton Systems, Inc".
      Signed-off-by: NChia-Sheng Chang <changchias@gmail.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Luca Ceresoli <luca@lucaceresoli.net>
      Cc: Christoph Jaeger <cj@linux.com>
      Cc: "Woojung.Huh@microchip.com" <Woojung.Huh@microchip.com>
      Cc: Matthew Garrett <mjg59@srcf.ucam.org>
      Cc: Markus Elfring <elfring@users.sourceforge.net>
      Cc: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
      Cc: netdev@vger.kernel.org
      Cc: linux-usb@vger.kernel.org
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      80083a3c
    • A
      netlink: Trim skb to alloc size to avoid MSG_TRUNC · db65a3aa
      Arad, Ronen 提交于
      netlink_dump() allocates skb based on the calculated min_dump_alloc or
      a per socket max_recvmsg_len.
      min_alloc_size is maximum space required for any single netdev
      attributes as calculated by rtnl_calcit().
      max_recvmsg_len tracks the user provided buffer to netlink_recvmsg.
      It is capped at 16KiB.
      The intention is to avoid small allocations and to minimize the number
      of calls required to obtain dump information for all net devices.
      
      netlink_dump packs as many small messages as could fit within an skb
      that was sized for the largest single netdev information. The actual
      space available within an skb is larger than what is requested. It could
      be much larger and up to near 2x with align to next power of 2 approach.
      
      Allowing netlink_dump to use all the space available within the
      allocated skb increases the buffer size a user has to provide to avoid
      truncaion (i.e. MSG_TRUNG flag set).
      
      It was observed that with many VLANs configured on at least one netdev,
      a larger buffer of near 64KiB was necessary to avoid "Message truncated"
      error in "ip link" or "bridge [-c[ompressvlans]] vlan show" when
      min_alloc_size was only little over 32KiB.
      
      This patch trims skb to allocated size in order to allow the user to
      avoid truncation with more reasonable buffer size.
      Signed-off-by: NRonen Arad <ronen.arad@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      db65a3aa
    • L
      Linux 4.3-rc6 · 7379047d
      Linus Torvalds 提交于
      7379047d
    • L
      Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · c44b3255
      Linus Torvalds 提交于
      Pull i2c fixes from Wolfram Sang:
       "Here are some bugfixes for the I2C subsystem.
      
        Kieran found a flaw in the recently renewed wake irq handling.  Mika
        handled a user bug report where the ACPI info turned out to be
        unusable.  I updated MAINTAINERS so that such bug reports will sooner
        get to the right people.  Geert pointed me to a problem of some i2c
        drivers regarding PM which I fixed"
      
      * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        i2c: designware: Do not use parameters from ACPI on Dell Inspiron 7348
        MAINTAINERS: add maintainers for Synopsis Designware I2C drivers
        i2c: designware-platdrv: enable RuntimePM before registering to the core
        i2c: s3c2410: enable RuntimePM before registering to the core
        i2c: rcar: enable RuntimePM before registering to the core
        i2c: return probe deferred status on dev_pm_domain_attach
      c44b3255
  6. 18 10月, 2015 1 次提交
    • M
      i2c: designware: Do not use parameters from ACPI on Dell Inspiron 7348 · 56d4b8a2
      Mika Westerberg 提交于
      ACPI SSCN/FMCN methods were originally added because then the platform can
      provide the most accurate HCNT/LCNT values to the driver. However, this
      seems not to be true for Dell Inspiron 7348 where using these causes the
      touchpad to fail in boot:
      
        i2c_hid i2c-DLL0675:00: failed to retrieve report from device.
        i2c_designware INT3433:00: i2c_dw_handle_tx_abort: lost arbitration
        i2c_hid i2c-DLL0675:00: failed to retrieve report from device.
        i2c_designware INT3433:00: controller timed out
      
      The values received from ACPI are (in fast mode):
      
        HCNT: 72
        LCNT: 160
      
      this translates to following timings (input clock is 100MHz on Broadwell):
      
        tHIGH: 720 ns (spec min 600 ns)
        tLOW: 1600 ns (spec min 1300 ns)
        Bus period: 2920 ns (assuming 300 ns tf and tr)
        Bus speed: 342.5 kHz
      
      Both tHIGH and tLOW are within the I2C specification.
      
      The calculated values when ACPI parameters are not used are (in fast mode):
      
        HCNT: 87
        LCNT: 159
      
      which translates to:
      
        tHIGH: 870 ns (spec min 600 ns)
        tLOW: 1590 ns (spec min 1300 ns)
        Bus period 3060 ns (assuming 300 ns tf and tr)
        Bus speed 326.8 kHz
      
      These values are also within the I2C specification.
      
      Since both ACPI and calculated values meet the I2C specification timing
      requirements it is hard to say why the touchpad does not function properly
      with the ACPI values except that the bus speed is higher in this case (but
      still well below the max 400kHz).
      
      Solve this by adding DMI quirk to the driver that disables using ACPI
      parameters on this particulare machine.
      Reported-by: NPavel Roskin <plroskin@gmail.com>
      Signed-off-by: NMika Westerberg <mika.westerberg@linux.intel.com>
      Tested-by: NPavel Roskin <plroskin@gmail.com>
      Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
      Cc: stable@kernel.org
      56d4b8a2
  7. 17 10月, 2015 9 次提交