1. 29 Jan, 2010 3 commits
  2. 26 Jan, 2010 1 commit
  3. 25 Jan, 2010 4 commits
    • Li Peng's avatar
      drm/i915: Fix the device info of Pineview · 8a6c77d6
      Li Peng authored
      Pineview doesn't has CXSR and need GTT-based hardware status page.
      It fixes a X boot hung issue on Pinview since commit cfdf1f
      Signed-off-by: default avatarLi Peng <peng.li@intel.com>
      Acked-by: default avatarZhao Yakui <yakui.zhao@intel.com>
      Signed-off-by: default avatarEric Anholt <eric@anholt.net>
      8a6c77d6
    • Li Peng's avatar
      drm/i915: enable vblank interrupt on ironlake · c062df61
      Li Peng authored
      so far vblank interrupt on ironlake is disabled, this would cause
      bad gfx performance if userspace calls drm_wait_vblank. This patch
      enables vblank interrupt on ironlake and follows vblank get/put
      model.
      Signed-off-by: default avatarLi Peng <peng.li@intel.com>
      Acked-by: default avatarZhenyu Wang <zhenyuw@linux.intel.com>
      Signed-off-by: default avatarEric Anholt <eric@anholt.net>
      c062df61
    • Chris Wilson's avatar
      drm/i915: Prevent use of uninitialized pointers along error path. · 0ce907f8
      Chris Wilson authored
      X.org hang with [drm:i915_gem_do_execbuffer] *ERROR* in dmesg
        http://bugzilla.kernel.org/show_bug.cgi?id=15114
      
      Matej found he was hitting an error path within i915_gem_do_execbuffer()
      that led to the attempt to dereference an uninitialised pointer during
      cleanup. This path used to be safe as we used to calloc the object
      lists, but this was changed in c8e0f93a. Daniel Vetter had also spotted
      this error and proposed a similar patch.
      
      [ 6379.732892] [drm:i915_gem_do_execbuffer] *ERROR* Object ffff880098cd6540 appears more than once in object list
      [ 6379.740976] [drm:i915_gem_do_execbuffer] *ERROR* Object ffff880098cd6540 appears more than once in object list
      [ 6379.740995] BUG: unable to handle kernel NULL pointer dereference at 00000000000000a0
      [ 6379.740998] IP: [<ffffffff8122ddb5>] i915_gem_do_execbuffer+0xba5/0x1260
      [ 6379.741006] PGD babab067 PUD bb435067 PMD 0
      [ 6379.741010] Oops: 0002 [#1] PREEMPT SMP
      [ 6379.741014] last sysfs file: /sys/devices/pci0000:00/0000:00:1c.2/0000:06:00.0/ieee80211/phy0/rfkill0/state
      [ 6379.741017] CPU 1
      [ 6379.741021] Pid: 2186, comm: X Not tainted 2.6.33-rc4-00399-g24bc7347 #142 M11D/ESPRIMO Mobile M9400
      [ 6379.741023] RIP: 0010:[<ffffffff8122ddb5>] [<ffffffff8122ddb5>] i915_gem_do_execbuffer+0xba5/0x1260
      [ 6379.741027] RSP: 0018:ffff8800b9047b78  EFLAGS: 00213206
      [ 6379.741029] RAX: 0000000000000000 RBX: 000000000000004f RCX: ffff880098cac800
      [ 6379.741032] RDX: ffff880098caca78 RSI: ffff8800b9047c98 RDI: ffff880098cd6540
      [ 6379.741034] RBP: ffff8800b9047c78 R08: ffffffff814b96b5 R09: 0000000000000006
      [ 6379.741036] R10: 0000000000000000 R11: 0000000000000003 R12: 000000000000004e
      [ 6379.741038] R13: 00000000fffffff7 R14: 0000000000000000 R15: 0000000000000001
      [ 6379.741041] FS:  0000000000000000(0000) GS:ffff880001900000(0063) knlGS:00000000f72636c0
      [ 6379.741043] CS:  0010 DS: 002b ES: 002b CR0: 0000000080050033
      [ 6379.741041] FS:  0000000000000000(0000) GS:ffff880001900000(0063) knlGS:00000000f72636c0
      [ 6379.741043] CS:  0010 DS: 002b ES: 002b CR0: 0000000080050033
      [ 6379.741045] CR2: 00000000000000a0 CR3: 00000000b9000000 CR4: 00000000000006e0
      [ 6379.741048] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      [ 6379.741050] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
      [ 6379.741052] Process X (pid: 2186, threadinfo ffff8800b9046000, task ffff8800bb5d8000)
      [ 6379.741054] Stack:
      [ 6379.741055]  ffffc90023f57000 ffffc90023f56fff ffffc90023f56fff ffffc90023f55000
      [ 6379.741059] <0> ffff8800b9047c98 ffff8800bb43c840 ffff8800bf1de800 ffff8800bf1de820
      [ 6379.741063] <0> ffff8800b9047bd8 ffff880098cac800 0000000000000000 0000000000000002
      [ 6379.741068] Call Trace:
      [ 6379.741072]  [<ffffffff8122e6cb>] ?  i915_gem_execbuffer+0x6b/0x370
      [ 6379.741077]  [<ffffffff810a5f52>] ? __vmalloc_node+0xa2/0xb0
      [ 6379.741080]  [<ffffffff8122e6cb>] ?  i915_gem_execbuffer+0x6b/0x370
      [ 6379.741083]  [<ffffffff8122e816>] i915_gem_execbuffer+0x1b6/0x370
      [ 6379.741086]  [<ffffffff8120cd55>] drm_ioctl+0x1d5/0x460
      [ 6379.741089]  [<ffffffff8122e660>] ?  i915_gem_execbuffer+0x0/0x370
      [ 6379.741093]  [<ffffffff81248c35>] i915_compat_ioctl+0x45/0x50
      [ 6379.741097]  [<ffffffff810f1659>] compat_sys_ioctl+0xa9/0x1570
      [ 6379.741102]  [<ffffffff810b1d5c>] ? vfs_read+0x13c/0x1a0
      [ 6379.741106]  [<ffffffff81028424>] sysenter_dispatch+0x7/0x2b
      [ 6379.741108] Code: 08 85 c0 74 52 31 db 0f 1f 80 00 00 00 00 48 63 c3 48 8b
      8d 68 ff ff ff 48 8d 14 c1 48 8b 02 48 85 c0 74 25 48 8b 80 80 00 00 00 <c7> 80
      a0 00 00 00 00 00 00 00 48 8b 3a 48 85 ff 74 0c 48 c7 c6
      [ 6379.741142] RIP  [<ffffffff8122ddb5>] i915_gem_do_execbuffer+0xba5/0x1260
      [ 6379.741145]  RSP <ffff8800b9047b78>
      [ 6379.741147] CR2: 00000000000000a0
      [ 6379.741159] ---[ end trace 0598809afa4c31db ]---
      Reported-by: default avatarMatej Laitl <strohel@gmail.com>
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: default avatarEric Anholt <eric@anholt.net>
      0ce907f8
    • Zhenyu Wang's avatar
      drm/i915: disable hotplug detect before Ironlake CRT detect · eceb784c
      Zhenyu Wang authored
      This tries to fix CRT detect loop hang seen on some Ironlake form
      factor, to clear up hotplug detect state before taking CRT detect
      to make sure next hotplug detect cycle is consistent.
      
      Cc: Stable Team <stable@kernel.org>
      Signed-off-by: default avatarZhenyu Wang <zhenyuw@linux.intel.com>
      Signed-off-by: default avatarEric Anholt <eric@anholt.net>
      eceb784c
  4. 21 Jan, 2010 21 commits
  5. 20 Jan, 2010 11 commits
    • Lothar Wassmann's avatar
      USB: isp1362: fix build failure on ARM systems via irq_flags cleanup · 0a2fea2e
      Lothar Wassmann authored
      There was some left over #ifdef ARM logic that is outdated but no one
      really noticed.  So instead of relying on this tricky logic, properly
      load and utilize the platform irq_flags resources.
      Reported-by: default avatarBen Hutchings <ben@decadent.org.uk>
      Signed-off-by: default avatarLothar Wassmann <LW@KARO-electronics.de>
      Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      0a2fea2e
    • Lothar Wassmann's avatar
      USB: isp1362: better 64bit printf warning fixes · 96b85179
      Lothar Wassmann authored
      Some hosts that treat the return value of sizeof differently from unsigned
      long might still hit warnings.  So use %zu for sizeof() values.  This is a
      better version of the previous commit b0a9cf29.
      Signed-off-by: default avatarLothar Wassmann <LW@KARO-electronics.de>
      Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      96b85179
    • Ryan May's avatar
      USB: fix usbstorage for 2770:915d delivers no FAT · 10d2cdb6
      Ryan May authored
      Resolves kernel.org bug 14914.
      
      Remove entry for 2770:915d (usb digital camera with mass storage
      support) from unusual_devs.h. The fix triggered by the entry causes
      the file system on the camera to be completely inaccessible (no
      partition table, the device is not mountable).
      
      The patch works, but let me clarify a few things about it.  All the
      patch does is remove the entry for this device from the
      drivers/usb/storage/unusual_devs.h, which is supposed to help with a
      problem with the device's reported size (I think).  I'm pretty sure it
      was originally added for a reason, so I'm not sure removing it won't
      cause other problems to reappear.  Also, I should note that this
      unusual_devs.h entry was present (and activating workarounds) in
      2.6.29, but in that version everything works fine.  Starting with
      2.6.30, things no longer work.
      Signed-off-by: default avatarRyan May <rmay31@gmail.com>
      Cc: Rohan Hart <rohan.hart17@gmail.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      
      10d2cdb6
    • Colin Tuckley's avatar
      USB: Fix level of isp1760 Reloading ptd error message · c0d74142
      Colin Tuckley authored
      This error message is not actually an error, it's an information
      message. It is triggered when a transfer which ended in a NAQ is
      retried successfully by the hardware.
      Signed-off-by: default avatarColin Tuckley <colin.tuckley@arm.com>
      Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      c0d74142
    • Alexander Beregalov's avatar
      USB: FHCI: avoid NULL pointer dereference · ae35fe9e
      Alexander Beregalov authored
      Assign fhci only if usb is not NULL.
      Signed-off-by: default avatarAlexander Beregalov <a.beregalov@gmail.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      ae35fe9e
    • Sarah Sharp's avatar
      USB: Fix duplicate sysfs problem after device reset. · 04a723ea
      Sarah Sharp authored
      Borislav Petkov reports issues with duplicate sysfs endpoint files after a
      resume from a hibernate.  It turns out that the code to support alternate
      settings under xHCI has issues when a device with a non-default alternate
      setting is reset during the hibernate:
      
      [  427.681810] Restarting tasks ...
      [  427.681995] hub 1-0:1.0: state 7 ports 6 chg 0004 evt 0000
      [  427.682019] usb usb3: usb resume
      [  427.682030] ohci_hcd 0000:00:12.0: wakeup root hub
      [  427.682191] hub 1-0:1.0: port 2, status 0501, change 0000, 480 Mb/s
      [  427.682205] usb 1-2: usb wakeup-resume
      [  427.682226] usb 1-2: finish reset-resume
      [  427.682886] done.
      [  427.734658] ehci_hcd 0000:00:12.2: port 2 high speed
      [  427.734663] ehci_hcd 0000:00:12.2: GetStatus port 2 status 001005 POWER sig=se0 PE CONNECT
      [  427.746682] hub 3-0:1.0: hub_reset_resume
      [  427.746693] hub 3-0:1.0: trying to enable port power on non-switchable hub
      [  427.786715] usb 1-2: reset high speed USB device using ehci_hcd and address 2
      [  427.839653] ehci_hcd 0000:00:12.2: port 2 high speed
      [  427.839666] ehci_hcd 0000:00:12.2: GetStatus port 2 status 001005 POWER sig=se0 PE CONNECT
      [  427.847717] ohci_hcd 0000:00:12.0: GetStatus roothub.portstatus [1] = 0x00010100 CSC PPS
      [  427.915497] hub 1-2:1.0: remove_intf_ep_devs: if: ffff88022f9e8800 ->ep_devs_created: 1
      [  427.915774] hub 1-2:1.0: remove_intf_ep_devs: bNumEndpoints: 1
      [  427.915934] hub 1-2:1.0: if: ffff88022f9e8800: endpoint devs removed.
      [  427.916158] hub 1-2:1.0: create_intf_ep_devs: if: ffff88022f9e8800 ->ep_devs_created: 0, ->unregistering: 0
      [  427.916434] hub 1-2:1.0: create_intf_ep_devs: bNumEndpoints: 1
      [  427.916609]  ep_81: create, parent hub
      [  427.916632] ------------[ cut here ]------------
      [  427.916644] WARNING: at fs/sysfs/dir.c:477 sysfs_add_one+0x82/0x96()
      [  427.916649] Hardware name: System Product Name
      [  427.916653] sysfs: cannot create duplicate filename '/devices/pci0000:00/0000:00:12.2/usb1/1-2/1-2:1.0/ep_81'
      [  427.916658] Modules linked in: binfmt_misc kvm_amd kvm powernow_k8 cpufreq_ondemand cpufreq_powersave cpufreq_userspace freq_table cpufreq_conservative ipv6 vfat fat
      +8250_pnp 8250 pcspkr ohci_hcd serial_core k10temp edac_core
      [  427.916694] Pid: 278, comm: khubd Not tainted 2.6.33-rc2-00187-g08d869aa-dirty #13
      [  427.916699] Call Trace:
      
      The problem is caused by a mismatch between the USB core's view of the
      device state and the USB device and xHCI host's view of the device state.
      
      After the device reset and re-configuration, the device and the xHCI host
      think they are using alternate setting 0 of all interfaces.  However, the
      USB core keeps track of the old state, which may include non-zero
      alternate settings.  It uses intf->cur_altsetting to keep the endpoint
      sysfs files for the old state across the reset.
      
      The bandwidth allocation functions need to know what the xHCI host thinks
      the current alternate settings are, so original patch set
      intf->cur_altsetting to the alternate setting 0.  This caused duplicate
      endpoint files to be created.
      
      The solution is to not set intf->cur_altsetting before calling
      usb_set_interface() in usb_reset_and_verify_device().  Instead, we add a
      new flag to struct usb_interface to tell usb_hcd_alloc_bandwidth() to use
      alternate setting 0 as the currently installed alternate setting.
      Signed-off-by: default avatarSarah Sharp <sarah.a.sharp@linux.intel.com>
      Tested-by: default avatarBorislav Petkov <petkovbb@googlemail.com>
      Cc: Alan Stern <stern@rowland.harvard.edu>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      04a723ea
    • Greg Kroah-Hartman's avatar
      USB: add speed values for USB 3.0 and wireless controllers · b132b04e
      Greg Kroah-Hartman authored
      These controllers say "unknown" for their speed in sysfs, which
      obviously isn't correct.
      Reported-by: default avatarKurt Garloff <garloff@novell.com>
      Cc: Sarah Sharp <sarah.a.sharp@linux.intel.com>
      Cc: David Vrabel <david.vrabel@csr.com>
      Cc: stable <stable@kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      b132b04e
    • Alan Stern's avatar
      USB: add missing delay during remote wakeup · 49d0f078
      Alan Stern authored
      This patch (as1330) fixes a bug in khbud's handling of remote
      wakeups.  When a device sends a remote-wakeup request, the parent hub
      (or the host controller driver, for directly attached devices) begins
      the resume sequence and notifies khubd when the sequence finishes.  At
      this point the port's SUSPEND feature is automatically turned off.
      
      However the device needs an additional 10-ms resume-recovery time
      (TRSMRCY in the USB spec).  Khubd does not wait for this delay if the
      SUSPEND feature is off, and as a result some devices fail to behave
      properly following a remote wakeup.  This patch adds the missing
      delay to the remote-wakeup path.
      
      It also extends the resume-signalling delay used by ehci-hcd and
      uhci-hcd from 20 ms (the value in the spec) to 25 ms (the value we use
      for non-remote-wakeup resumes).  The extra time appears to help some
      devices.
      Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      Cc: stable <stable@kernel.org>
      Cc: Rickard Bellini <rickard.bellini@ericsson.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      
      49d0f078
    • Alan Stern's avatar
      USB: EHCI & UHCI: fix race between root-hub suspend and port resume · cec3a53c
      Alan Stern authored
      This patch (as1321) fixes a problem with EHCI and UHCI root-hub
      suspends: If the suspend occurs while a port is trying to resume, the
      resume doesn't finish and simply gets lost.  When remote wakeup is
      enabled, this is undesirable behavior.
      
      The patch checks first to see if any port resumes are in progress, and
      if they are then it fails the root-hub suspend with -EBUSY.
      Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      Cc: stable <stable@kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      cec3a53c
    • Alan Stern's avatar
      USB: EHCI: fix handling of unusual interrupt intervals · 1b9a38bf
      Alan Stern authored
      This patch (as1320) fixes two problems related to interrupt-URB
      scheduling in ehci-hcd.
      
      	URBs with an interval of 2 or 4 microframes aren't handled.
      	For the time being, the patch reduces to interval to 1 uframe.
      
      	URBs are constrained to have an interval no larger than 1024
      	frames by usb_submit_urb().  But some EHCI controllers allow
      	use of a schedule as short as 256 frames; for these
      	controllers we may have to decrease the interval to the
      	actual schedule length.
      
      The second problem isn't very significant since few devices expose
      interrupt endpoints with an interval larger than 256 frames.  But the
      first problem is critical; it will prevent the kernel from working
      with devices having interrupt intervals of 2 or 4 uframes.
      Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      Cc: stable <stable@kernel.org>
      Tested-by: default avatarGlynn Farrow <farrowg@sg.ibm.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      1b9a38bf
    • Oliver Neukum's avatar
      USB: Don't use GFP_KERNEL while we cannot reset a storage device · acbe2feb
      Oliver Neukum authored
      Memory allocations with GFP_KERNEL can cause IO to a storage
      device which can fail resulting in a need to reset the device.
      Therefore GFP_KERNEL cannot be safely used between usb_lock_device()
      and usb_unlock_device(). Replace by GFP_NOIO.
      Signed-off-by: default avatarOliver Neukum <oliver@neukum.org>
      Cc: stable <stable@kernel.org>
      Cc: Alan Stern <stern@rowland.harvard.edu>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      acbe2feb