1. 26 10月, 2012 8 次提交
  2. 25 10月, 2012 2 次提交
  3. 24 10月, 2012 4 次提交
  4. 23 10月, 2012 7 次提交
    • K
      usb: renesas_usbhs: fixup dma transfer stall · 1cb60156
      Kuninori Morimoto 提交于
      renesas_usbhs driver can switch DMA/PIO transfer by using handler,
      and each handler have push/pop direction.
      But unfortunately, current dma push handler didn't a path
      which calls usbhs_pipe_enable(). Thus, dma transfer never happened.
      this patch fixes it.
      Signed-off-by: NKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      1cb60156
    • K
      usb: renesas_usbhs: fixup: avoid NULL access on error case pipe detach · 4f053a24
      Kuninori Morimoto 提交于
      If renesas_usbhs or DMAEngine interrupt didn't happen by a certain cause,
      urb->ep will be NULL by usb time out.
      Then, host mode will access to it and crash kernel.
      This patch fixes it.
      Signed-off-by: NKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      4f053a24
    • W
      usb: gadget: net2272: fix missing unlock on error in net2272_irq() · 000b7f51
      Wei Yongjun 提交于
      Add the missing unlock on the error handle path in function
      net2272_irq().
      Signed-off-by: NWei Yongjun <yongjun_wei@trendmicro.com.cn>
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      000b7f51
    • D
      usb: musb: dsps: fix res_name length · ca749b2a
      Daniel Mack 提交于
      The res_name is used for the name construction of a DT property as
      follows:
      
        sprintf(res_name, "port%d-mode", id);
      
      Hence, res_name must be at least 11 characters long in order to store
      the name including the terminating '\0'.
      
      While at it, use to snprintf() rather than sprintf() when accessing this
      buffer.
      Reported-by: NDavid Binderman <dcb314@hotmail.com>
      Signed-off-by: NDaniel Mack <zonque@gmail.com>
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      ca749b2a
    • L
      usb/xhci: Remove (__force__ __u16) before assigning DeviceRemovable and assign directly. · 27c411c9
      Lan Tianyu 提交于
      Struct usb_hub_descriptor.ss.DeviceRemovable has been defined as __le16
      and (__force__ __u16) doesn't need.
      Signed-off-by: NLan Tianyu <tianyu.lan@intel.com>
      Signed-off-by: NSarah Sharp <sarah.a.sharp@linux.intel.com>
      27c411c9
    • L
      usb/xhci: release xhci->lock during turning on/off usb port's acpi power... · 170ed807
      Lan Tianyu 提交于
      usb/xhci: release xhci->lock during turning on/off usb port's acpi power resource and checking the existence of port's power resource
      
      When setting usb port's acpi power resource, there will be some xhci hub requests.
      This will cause dead lock since xhci->lock has been held before setting acpi power
      resource in the xhci_hub_control(). The usb_acpi_power_manageable() function might
      fall into sleep so release xhci->lock before invoking it.
      Signed-off-by: NLan Tianyu <tianyu.lan@intel.com>
      Signed-off-by: NSarah Sharp <sarah.a.sharp@linux.intel.com>
      170ed807
    • O
      usb hub: send clear_tt_buffer_complete events when canceling TT clear work · 3b6054da
      Octavian Purdila 提交于
      There is a race condition in the USB hub code with regard to handling
      TT clear requests that can get the HCD driver in a deadlock. Usually
      when an TT clear request is scheduled it will be executed immediately:
      
      <7>[    6.077583] usb 2-1.3: unlink qh1-0e01/f4d4db00 start 0 [1/2 us]
      <3>[    6.078041] usb 2-1: clear tt buffer port 3, a3 ep2 t04048d82
      <7>[    6.078299] hub_tt_work:731
      <7>[    9.309089] usb 2-1.5: link qh1-0e01/f4d506c0 start 0 [1/2 us]
      <7>[    9.324526] ehci_hcd 0000:00:1d.0: reused qh f4d4db00 schedule
      <7>[    9.324539] usb 2-1.3: link qh1-0e01/f4d4db00 start 0 [1/2 us]
      <7>[    9.341530] usb 1-1.1: link qh4-0e01/f397aec0 start 2 [1/2 us]
      <7>[   10.116159] usb 2-1.3: unlink qh1-0e01/f4d4db00 start 0 [1/2 us]
      <3>[   10.116459] usb 2-1: clear tt buffer port 3, a3 ep2 t04048d82
      <7>[   10.116537] hub_tt_work:731
      
      However, if a suspend operation is triggered before hub_tt_work is
      scheduled, hub_quiesce will cancel the work without notifying the HCD
      driver:
      
      <3>[   35.033941] usb 2-1: clear tt buffer port 3, a3 ep2 t04048d80
      <5>[   35.034022] sd 0:0:0:0: [sda] Stopping disk
      <7>[   35.034039] hub 2-1:1.0: hub_suspend
      <7>[   35.034067] usb 2-1: unlink qh256-0001/f3b1ab00 start 1 [1/0 us]
      <7>[   35.035085] hub 1-0:1.0: hub_suspend
      <7>[   35.035102] usb usb1: bus suspend, wakeup 0
      <7>[   35.035106] ehci_hcd 0000:00:1a.0: suspend root hub
      <7>[   35.035298] hub 2-0:1.0: hub_suspend
      <7>[   35.035313] usb usb2: bus suspend, wakeup 0
      <7>[   35.035315] ehci_hcd 0000:00:1d.0: suspend root hub
      <6>[   35.250017] PM: suspend of devices complete after 216.979 msecs
      <6>[   35.250822] PM: late suspend of devices complete after 0.799 msecs
      <7>[   35.252343] ehci_hcd 0000:00:1d.0: wakeup: 1
      <7>[   35.262923] ehci_hcd 0000:00:1d.0: --> PCI D3hot
      <7>[   35.263302] ehci_hcd 0000:00:1a.0: wakeup: 1
      <7>[   35.273912] ehci_hcd 0000:00:1a.0: --> PCI D3hot
      <6>[   35.274254] PM: noirq suspend of devices complete after 23.442 msecs
      <6>[   35.274975] ACPI: Preparing to enter system sleep state S3
      <6>[   35.292666] PM: Saving platform NVS memory
      <7>[   35.295030] Disabling non-boot CPUs ...
      <6>[   35.297351] CPU 1 is now offline
      <6>[   35.300345] CPU 2 is now offline
      <6>[   35.303929] CPU 3 is now offline
      <7>[   35.303931] lockdep: fixing up alternatives.
      <6>[   35.304825] Extended CMOS year: 2000
      
      When the device will resume the EHCI driver will get stuck in
      ehci_endpoint_disable waiting for the tt_clearing flag to reset:
      
      <0>[   47.610967] usb 2-1.3: **** DPM device timeout ****
      <7>[   47.610972]  f2f11c60 00000092 f2f11c0c c10624a5 00000003 f4c6e880 c1c8a4c0 c1c8a4c0
      <7>[   47.610983]  15c55698 0000000b f56b34c0 f2a45b70 f4c6e880 00000082 f2a4602c f2f11c30
      <7>[   47.610993]  c10787f8 f4cac000 f2a45b70 00000000 f4cac010 f2f11c58 00000046 00000001
      <7>[   47.611004] Call Trace:
      <7>[   47.611006]  [<c10624a5>] ? sched_clock_cpu+0xf5/0x160
      <7>[   47.611019]  [<c10787f8>] ? lock_release_holdtime.part.22+0x88/0xf0
      <7>[   47.611026]  [<c103ed46>] ? lock_timer_base.isra.35+0x26/0x50
      <7>[   47.611034]  [<c17592d3>] ? schedule_timeout+0x133/0x290
      <7>[   47.611044]  [<c175b43e>] schedule+0x1e/0x50
      <7>[   47.611051]  [<c17592d8>] schedule_timeout+0x138/0x290
      <7>[   47.611057]  [<c10624a5>] ? sched_clock_cpu+0xf5/0x160
      <7>[   47.611063]  [<c103e560>] ? usleep_range+0x40/0x40
      <7>[   47.611070]  [<c1759445>] schedule_timeout_uninterruptible+0x15/0x20
      <7>[   47.611077]  [<c14935f4>] ehci_endpoint_disable+0x64/0x160
      <7>[   47.611084]  [<c147d1ee>] ? usb_hcd_flush_endpoint+0x10e/0x1d0
      <7>[   47.611092]  [<c1165663>] ? sysfs_add_file+0x13/0x20
      <7>[   47.611100]  [<c147d5a9>] usb_hcd_disable_endpoint+0x29/0x40
      <7>[   47.611107]  [<c147fafc>] usb_disable_endpoint+0x5c/0x80
      <7>[   47.611111]  [<c147fb57>] usb_disable_interface+0x37/0x50
      <7>[   47.611116]  [<c1477650>] usb_reset_and_verify_device+0x4b0/0x640
      <7>[   47.611122]  [<c1474665>] ? hub_port_status+0xb5/0x100
      <7>[   47.611129]  [<c147a975>] usb_port_resume+0xd5/0x220
      <7>[   47.611136]  [<c148877f>] generic_resume+0xf/0x30
      <7>[   47.611142]  [<c14821a3>] usb_resume+0x133/0x180
      <7>[   47.611147]  [<c1473b10>] ? usb_dev_thaw+0x10/0x10
      <7>[   47.611152]  [<c1473b1d>] usb_dev_resume+0xd/0x10
      <7>[   47.611157]  [<c13baa60>] dpm_run_callback+0x40/0xb0
      <7>[   47.611164]  [<c13bdb03>] ? pm_runtime_enable+0x43/0x70
      <7>[   47.611171]  [<c13bafc6>] device_resume+0x1a6/0x2c0
      <7>[   47.611177]  [<c13ba940>] ? dpm_show_time+0xe0/0xe0
      <7>[   47.611183]  [<c13bb0f9>] async_resume+0x19/0x40
      <7>[   47.611189]  [<c10580c4>] async_run_entry_fn+0x64/0x160
      <7>[   47.611196]  [<c104a244>] ? process_one_work+0x104/0x480
      <7>[   47.611203]  [<c104a24c>] ? process_one_work+0x10c/0x480
      <7>[   47.611209]  [<c104a2c0>] process_one_work+0x180/0x480
      <7>[   47.611215]  [<c104a244>] ? process_one_work+0x104/0x480
      <7>[   47.611220]  [<c1058060>] ? async_schedule+0x10/0x10
      <7>[   47.611226]  [<c104c15c>] worker_thread+0x11c/0x2f0
      <7>[   47.611233]  [<c104c040>] ? manage_workers.isra.27+0x1f0/0x1f0
      <7>[   47.611239]  [<c10507f8>] kthread+0x78/0x80
      <7>[   47.611244]  [<c1750000>] ? timer_cpu_notify+0xd6/0x20d
      <7>[   47.611253]  [<c1050780>] ? __init_kthread_worker+0x60/0x60
      <7>[   47.611258]  [<c176357e>] kernel_thread_helper+0x6/0xd
      <7>[   47.611283] ------------[ cut here ]------------
      
      This patch changes hub_quiesce behavior to flush the TT clear work
      instead of canceling it, to make sure that no TT clear request remains
      uncompleted before suspend.
      Signed-off-by: NOctavian Purdila <octavian.purdila@intel.com>
      Acked-by: NAlan Stern <stern@rowland.harvard.edu>
      Cc: stable <stable@vger.kernel.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      3b6054da
  5. 20 10月, 2012 4 次提交
  6. 18 10月, 2012 15 次提交
    • B
      USB: option: add more ZTE devices · 4b35f1c5
      Bjørn Mork 提交于
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NBjørn Mork <bjorn@mork.no>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      4b35f1c5
    • B
      USB: option: blacklist net interface on ZTE devices · 1452df6f
      Bjørn Mork 提交于
      Based on information from the ZTE Windows drivers.
      
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NBjørn Mork <bjorn@mork.no>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      1452df6f
    • A
      usb: host: xhci: New system added for Compliance Mode Patch on SN65LVPE502CP · 47080974
      Alexis R. Cortes 提交于
      This minor change adds a new system to which the "Fix Compliance Mode
      on SN65LVPE502CP Hardware" patch has to be applied also.
      
      System added:
      Vendor: Hewlett-Packard. System Model: Z1
      Signed-off-by: NAlexis R. Cortes <alexis.cortes@ti.com>
      Acked-by: NSarah Sharp <sarah.a.sharp@linux.intel.com>
      Cc: stable <stable@vger.kernel.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      47080974
    • J
      USB: io_ti: fix sysfs-attribute creation · 5d8c61bc
      Johan Hovold 提交于
      Make sure port data is initialised before creating sysfs attributes to
      avoid a race.
      
      A recent patch ("USB: io_ti: fix port-data memory leak") got the
      sysfs-attribute creation and port-data initialisation ordering wrong.
      
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NJohan Hovold <jhovold@gmail.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      5d8c61bc
    • J
      USB: iuu_phoenix: fix sysfs-attribute creation · 0978c949
      Johan Hovold 提交于
      Make sure sysfs attributes are created at port probe.
      
      A recent patch ("USB: iuu_phoenix: fix port-data memory leak") removed
      the sysfs-attribute creation by mistake.
      Reported-by: NYuanhan Liu <yuanhan.liu@intel.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NJohan Hovold <jhovold@gmail.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      0978c949
    • B
      staging: dgrp: check return value of alloc_tty_driver · 178e485a
      Bill Pemberton 提交于
      alloc_tty_driver was always assumed to succeed.  Add code to check the
      return value and return -ENOMEM if alloc_tty_driver fails.
      Reported-by: NFengguang Wu <fengguang.wu@intel.com>
      Signed-off-by: NBill Pemberton <wfp5p@virginia.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      178e485a
    • B
      staging: dgrp: check for NULL pointer in (un)register_proc_table · d7c4660c
      Bill Pemberton 提交于
      register_proc_table and unregister_proc_table didn't deal with the
      possibility that the *table pointer could be NULL.  Check for this and
      return if table is NULL.
      Reported-by: NFengguang Wu <fengguang.wu@intel.com>
      Signed-off-by: NBill Pemberton <wfp5p@virginia.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      d7c4660c
    • K
      of/platform: sparse fix · 24fb530f
      Kim Phillips 提交于
      drivers/of/platform.c:110:59: warning: incorrect type in argument 2 (different base types)
      drivers/of/platform.c:110:59:    expected restricted __be32 const [usertype] *addr
      drivers/of/platform.c:110:59:    got unsigned int const [usertype] *[assigned] reg
      Signed-off-by: NKim Phillips <kim.phillips@freescale.com>
      Signed-off-by: NRob Herring <rob.herring@calxeda.com>
      24fb530f
    • K
      of/irq: sparse fixes · d2e41518
      Kim Phillips 提交于
      drivers/of/irq.c:195:57: warning: restricted __be32 degrades to integer
      drivers/of/irq.c:196:51: warning: restricted __be32 degrades to integer
      drivers/of/irq.c:199:57: warning: restricted __be32 degrades to integer
      drivers/of/irq.c:201:58: warning: restricted __be32 degrades to integer
      drivers/of/irq.c:470:37: warning: incorrect type in assignment (different modifiers)
      drivers/of/irq.c:470:37:    expected int ( *[usertype] irq_init_cb )( ... )
      drivers/of/irq.c:470:37:    got void const *const data
      drivers/of/irq.c:96:5: error: symbol 'of_irq_map_raw' redeclared with different type (originally declared at include/linux/of_irq.h:61) - incompatible argument 2 (different base types)
      
      drivers/of/of_pci_irq.c:91:40: warning: incorrect type in argument 2 (different base types)
      drivers/of/of_pci_irq.c:91:40:    expected unsigned int const [usertype] *intspec
      drivers/of/of_pci_irq.c:91:40:    got restricted __be32 *<noident>
      drivers/of/of_pci_irq.c:91:53: warning: incorrect type in argument 4 (different base types)
      drivers/of/of_pci_irq.c:91:53:    expected unsigned int const [usertype] *addr
      drivers/of/of_pci_irq.c:91:53:    got restricted __be32 *<noident>
      Signed-off-by: NKim Phillips <kim.phillips@freescale.com>
      Signed-off-by: NRob Herring <rob.herring@calxeda.com>
      d2e41518
    • K
      of/address: sparse fixes · 47b1e689
      Kim Phillips 提交于
      drivers/of/address.c:66:29: warning: incorrect type in argument 1 (different base types)
      drivers/of/address.c:66:29:    expected restricted __be32 const [usertype] *cell
      drivers/of/address.c:66:29:    got unsigned int [usertype] *addr
      drivers/of/address.c:87:32: warning: incorrect type in argument 1 (different base types)
      drivers/of/address.c:87:32:    expected restricted __be32 const [usertype] *cell
      drivers/of/address.c:87:32:    got unsigned int [usertype] *addr
      drivers/of/address.c:91:30: warning: incorrect type in assignment (different base types)
      drivers/of/address.c:91:30:    expected unsigned int [unsigned] [usertype] <noident>
      drivers/of/address.c:91:30:    got restricted __be32 [usertype] <noident>
      drivers/of/address.c:92:22: warning: incorrect type in assignment (different base types)
      drivers/of/address.c:92:22:    expected unsigned int [unsigned] [usertype] <noident>
      drivers/of/address.c:92:22:    got restricted __be32 [usertype] <noident>
      drivers/of/address.c:147:35: warning: incorrect type in argument 1 (different base types)
      drivers/of/address.c:147:35:    expected restricted __be32 const [usertype] *addr
      drivers/of/address.c:147:35:    got unsigned int [usertype] *addr
      drivers/of/address.c:157:34: warning: incorrect type in argument 1 (different base types)
      drivers/of/address.c:157:34:    expected restricted __be32 const [usertype] *cell
      drivers/of/address.c:157:34:    got unsigned int [usertype] *
      drivers/of/address.c:256:29: warning: restricted __be32 degrades to integer
      drivers/of/address.c:256:36: warning: restricted __be32 degrades to integer
      drivers/of/address.c:262:34: warning: incorrect type in argument 1 (different base types)
      drivers/of/address.c:262:34:    expected restricted __be32 const [usertype] *cell
      drivers/of/address.c:262:34:    got unsigned int [usertype] *
      drivers/of/address.c:372:41: warning: incorrect type in argument 1 (different base types)
      drivers/of/address.c:372:41:    expected restricted __be32 const [usertype] *cell
      drivers/of/address.c:372:41:    got unsigned int [usertype] *addr
      drivers/of/address.c:395:53: warning: incorrect type in argument 2 (different base types)
      drivers/of/address.c:395:53:    expected restricted __be32 const [usertype] *addr
      drivers/of/address.c:395:53:    got unsigned int [usertype] *addr
      drivers/of/address.c:443:50: warning: incorrect type in argument 2 (different base types)
      drivers/of/address.c:443:50:    expected restricted __be32 const [usertype] *addr
      drivers/of/address.c:443:50:    got unsigned int *<noident>
      drivers/of/address.c:455:49: warning: incorrect type in argument 1 (different base types)
      drivers/of/address.c:455:49:    expected restricted __be32 const [usertype] *cell
      drivers/of/address.c:455:49:    got unsigned int *<noident>
      drivers/of/address.c:480:60: warning: incorrect type in argument 2 (different base types)
      drivers/of/address.c:480:60:    expected restricted __be32 const [usertype] *addr
      drivers/of/address.c:480:60:    got unsigned int *<noident>
      drivers/of/address.c:412:5: warning: symbol '__of_translate_address' was not declared. Should it be static?
      drivers/of/address.c:520:14: error: symbol 'of_get_address' redeclared with different type (originally declared at include/linux/of_address.h:22) - different base types
      Signed-off-by: NKim Phillips <kim.phillips@freescale.com>
      Signed-off-by: NRob Herring <rob.herring@calxeda.com>
      47b1e689
    • J
      USB: spcp8x5: fix port-data memory leak · bf90ff5f
      Johan Hovold 提交于
      Fix port-data memory leak by replacing attach and release with
      port_probe and port_remove.
      
      Since commit 0998d063 (device-core: Ensure drvdata = NULL when no
      driver is bound) the port private data is no longer freed at release as
      it is no longer accessible.
      
      Compile-only tested.
      
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NJohan Hovold <jhovold@gmail.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      bf90ff5f
    • J
      USB: ssu100: fix port-data memory leak · 638b9e15
      Johan Hovold 提交于
      Fix port-data memory leak by replacing attach and release with
      port_probe and port_remove.
      
      Since commit 0998d063 (device-core: Ensure drvdata = NULL when no
      driver is bound) the port private data is no longer freed at release as
      it is no longer accessible.
      
      Compile-only tested.
      
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NJohan Hovold <jhovold@gmail.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      638b9e15
    • J
      USB: ti_usb_3410_5052: fix port-data memory leak · 51ef847d
      Johan Hovold 提交于
      Fix port-data memory leak by moving port data allocation and
      deallocation to port_probe and port_remove.
      
      Since commit 0998d063 (device-core: Ensure drvdata = NULL when no
      driver is bound) the port private data is no longer freed at release as
      it is no longer accessible.
      
      Compile-only tested.
      
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NJohan Hovold <jhovold@gmail.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      51ef847d
    • J
      USB: oti6858: fix port-data memory leak · 289b076f
      Johan Hovold 提交于
      Fix port-data memory leak by replacing attach and release with
      port_probe and port_remove.
      
      Since commit 0998d063 (device-core: Ensure drvdata = NULL when no
      driver is bound) the port private data is no longer freed at release as
      it is no longer accessible.
      
      Compile-only tested.
      
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NJohan Hovold <jhovold@gmail.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      289b076f
    • J
      USB: iuu_phoenix: fix port-data memory leak · 53636555
      Johan Hovold 提交于
      Fix port-data memory leak by replacing attach and release with
      port_probe and port_remove.
      
      Since commit 0998d063 (device-core: Ensure drvdata = NULL when no
      driver is bound) the port private data is no longer freed at release as
      it is no longer accessible.
      
      Compile-only tested.
      
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NJohan Hovold <jhovold@gmail.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      53636555