1. 05 12月, 2013 1 次提交
  2. 26 7月, 2013 1 次提交
  3. 18 6月, 2013 1 次提交
    • G
      USB: cdc-acm: remove unneeded spin_lock_irqsave/restore on write path · 71c2fb03
      Greg Kroah-Hartman 提交于
      When writing data we were:
      	lock
      	do some work
      	unlock
      	call function
      		lock
      		do some work
      		unlock
      		return
      	return
      
      It turns out, that "function" was only ever called in the one place, so
      instead of locking/unlocking for no good reason, just inline the
      function and only grab the lock once.
      
      This has sped up the pathological case of sending 1 byte packets to a
      loop-back cdc-acm device from 49600 bytes per second to 50100 bytes a
      second on my workstation.  A tiny increase yes, but noticable, and now
      the spinlock isn't the hottest thing on the perf graph anymore.  Yes, we
      are still waiting for the hardware for the most part, but getting rid of
      a spinlock_irq_save() call for every packet is still a good thing.
      
      And we end up deleting lines of code, always a win overall.
      
      This was found by using a Teensy 3.0 device and the test program and
      firmware located at:
      	http://www.pjrc.com/teensy/benchmark_usb_serial_receive.htmlReported-by: NPaul Stoffregen <paul@pjrc.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      71c2fb03
  4. 22 3月, 2013 2 次提交
  5. 19 3月, 2013 2 次提交
  6. 16 3月, 2013 1 次提交
  7. 12 3月, 2013 1 次提交
  8. 16 1月, 2013 2 次提交
    • J
      TTY: switch tty_flip_buffer_push · 2e124b4a
      Jiri Slaby 提交于
      Now, we start converting tty buffer functions to actually use
      tty_port. This will allow us to get rid of the need of tty in many
      call sites. Only tty_port will needed and hence no more
      tty_port_tty_get in those paths.
      
      Now, the one where most of tty_port_tty_get gets removed:
      tty_flip_buffer_push.
      
      IOW we also closed all the races in drivers not using tty_port_tty_get
      at all yet.
      
      Also we move tty_flip_buffer_push declaration from include/linux/tty.h
      to include/linux/tty_flip.h to all others while we are changing it
      anyway.
      Signed-off-by: NJiri Slaby <jslaby@suse.cz>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      2e124b4a
    • J
      TTY: switch tty_insert_flip_string · 05c7cd39
      Jiri Slaby 提交于
      Now, we start converting tty buffer functions to actually use
      tty_port. This will allow us to get rid of the need of tty in many
      call sites. Only tty_port will needed and hence no more
      tty_port_tty_get in those paths.
      
      tty_insert_flip_string this time.
      Signed-off-by: NJiri Slaby <jslaby@suse.cz>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      05c7cd39
  9. 12 1月, 2013 1 次提交
  10. 16 11月, 2012 1 次提交
  11. 18 10月, 2012 2 次提交
  12. 12 10月, 2012 1 次提交
  13. 06 9月, 2012 1 次提交
  14. 18 8月, 2012 1 次提交
  15. 14 8月, 2012 1 次提交
    • J
      TTY: use tty_port_register_device · 734cc178
      Jiri Slaby 提交于
      Currently we have no way to assign tty->port while performing tty
      installation. There are two ways to provide the link tty_struct =>
      tty_port. Either by calling tty_port_install from tty->ops->install or
      tty_port_register_device called instead of tty_register_device when
      the device is being set up after connected.
      
      In this patch we modify most of the drivers to do the latter. When the
      drivers use tty_register_device and we have tty_port already, we
      switch to tty_port_register_device. So we have the tty_struct =>
      tty_port link for free for those.
      Signed-off-by: NJiri Slaby <jslaby@suse.cz>
      Acked-by: NAlan Cox <alan@linux.intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      734cc178
  16. 17 7月, 2012 1 次提交
  17. 07 7月, 2012 1 次提交
  18. 15 6月, 2012 1 次提交
  19. 19 5月, 2012 1 次提交
    • S
      USB: Disable hub-initiated LPM for comms devices. · e1f12eb6
      Sarah Sharp 提交于
      Hub-initiated LPM is not good for USB communications devices.  Comms
      devices should be able to tell when their link can go into a lower power
      state, because they know when an incoming transmission is finished.
      Ideally, these devices would slam their links into a lower power state,
      using the device-initiated LPM, after finishing the last packet of their
      data transfer.
      
      If we enable the idle timeouts for the parent hubs to enable
      hub-initiated LPM, we will get a lot of useless LPM packets on the bus
      as the devices reject LPM transitions when they're in the middle of
      receiving data.  Worse, some devices might blindly accept the
      hub-initiated LPM and power down their radios while they're in the
      middle of receiving a transmission.
      
      The Intel Windows folks are disabling hub-initiated LPM for all USB
      communications devices under a xHCI USB 3.0 host.  In order to keep
      the Linux behavior as close as possible to Windows, we need to do the
      same in Linux.
      
      Set the disable_hub_initiated_lpm flag for for all USB communications
      drivers.  I know there aren't currently any USB 3.0 devices that
      implement these class specifications, but we should be ready if they do.
      Signed-off-by: NSarah Sharp <sarah.a.sharp@linux.intel.com>
      Cc: Marcel Holtmann <marcel@holtmann.org>
      Cc: Gustavo Padovan <gustavo@padovan.org>
      Cc: Johan Hedberg <johan.hedberg@gmail.com>
      Cc: Hansjoerg Lipp <hjlipp@web.de>
      Cc: Tilman Schmidt <tilman@imap.cc>
      Cc: Karsten Keil <isdn@linux-pingi.de>
      Cc: Peter Korsgaard <jacmet@sunsite.dk>
      Cc: Jan Dumon <j.dumon@option.com>
      Cc: Petko Manolov <petkan@users.sourceforge.net>
      Cc: Steve Glendinning <steve.glendinning@smsc.com>
      Cc: "John W. Linville" <linville@tuxdriver.com>
      Cc: Kalle Valo <kvalo@qca.qualcomm.com>
      Cc: "Luis R. Rodriguez" <mcgrof@qca.qualcomm.com>
      Cc: Jouni Malinen <jouni@qca.qualcomm.com>
      Cc: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
      Cc: Senthil Balasubramanian <senthilb@qca.qualcomm.com>
      Cc: Christian Lamparter <chunkeey@googlemail.com>
      Cc: Brett Rudley <brudley@broadcom.com>
      Cc: Roland Vossen <rvossen@broadcom.com>
      Cc: Arend van Spriel <arend@broadcom.com>
      Cc: "Franky (Zhenhui) Lin" <frankyl@broadcom.com>
      Cc: Kan Yan <kanyan@broadcom.com>
      Cc: Dan Williams <dcbw@redhat.com>
      Cc: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
      Cc: Ivo van Doorn <IvDoorn@gmail.com>
      Cc: Gertjan van Wingerde <gwingerde@gmail.com>
      Cc: Helmut Schaa <helmut.schaa@googlemail.com>
      Cc: Herton Ronaldo Krzesinski <herton@canonical.com>
      Cc: Hin-Tak Leung <htl10@users.sourceforge.net>
      Cc: Larry Finger <Larry.Finger@lwfinger.net>
      Cc: Chaoming Li <chaoming_li@realsil.com.cn>
      Cc: Daniel Drake <dsd@gentoo.org>
      Cc: Ulrich Kunitz <kune@deine-taler.de>
      Signed-off-by: NSarah Sharp <sarah.a.sharp@linux.intel.com>
      e1f12eb6
  20. 09 3月, 2012 2 次提交
  21. 25 2月, 2012 1 次提交
  22. 05 1月, 2012 1 次提交
  23. 13 12月, 2011 1 次提交
  24. 10 12月, 2011 2 次提交
    • H
      usb: cdc-acm: Kill ACM_READY() macro completely · 99823f45
      Havard Skinnemoen 提交于
      The ACM_READY() macro doesn't seem to do anything useful, and it may
      prevent tty_wait_until_sent() from working properly when called from
      close.
      
      Previously, acm_tty_chars_in_buffer() returned 0 whenever
      acm->port.count was 0. This means close() could return before all the
      data has actually been written.
      Signed-off-by: NHavard Skinnemoen <hskinnemoen@google.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      99823f45
    • H
      USB: cdc-acm: Fix potential deadlock (lockdep warning) · 7fb57a01
      Havard Skinnemoen 提交于
      Rework the locking and lifecycle management in the cdc-acm driver.
      Instead of using a global mutex to prevent the 'acm' object from being
      freed, use the tty_port kref to keep the device alive when either the
      USB side or TTY side is still active.
      
      This allows us to use the global mutex purely for protecting the
      acm_table, while use acm->mutex to guard against disconnect during
      TTY port activation and shutdown.
      
      The USB-side kref is taken during port initialization in probe(), and
      released at the end of disconnect(). The TTY-side kref is taken in
      install() and released in cleanup(). On disconnect, tty_vhangup() is
      called instead of tty_hangup() to ensure the TTY hangup processing is
      completed before the USB device is taken down.
      
      The TTY open and close handlers have been gutted and replaced with
      tty_port_open() and tty_port_close() respectively. The driver-specific
      code which used to be there was spread across install(), activate() and
      shutdown().
      Reported-by: NDave Jones <davej@redhat.com>
      Cc: Alan Cox <alan@linux.intel.com>
      Cc: Jiri Slaby <jslaby@suse.cz>
      Signed-off-by: NHavard Skinnemoen <hskinnemoen@google.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      7fb57a01
  25. 15 11月, 2011 1 次提交
  26. 18 9月, 2011 1 次提交
    • D
      usb: cdc-acm: Owen SI-30 support · 65e52f41
      Denis Pershin 提交于
      here is the patch to support Owen SI-30 device.
      This is a pulse counter controller.
      http://www.owen.ru/en/catalog/93788515
      
      usb-drivers output:
      T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  4 Spd=12  MxCh= 0
      D:  Ver= 2.00 Cls=02(commc) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
      P:  Vendor=03eb ProdID=0030 Rev=01.01
      C:  #Ifs= 2 Cfg#= 1 Atr=c0 MxPwr=0mA
      I:  If#= 0 Alt= 0 #EPs= 1 Cls=02(commc) Sub=02 Prot=00 Driver=cdc_acm
      I:  If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_acm
      
      This patch is installed on my home system which receives data from this
      controller connected to cold water counter.
      Signed-off-by: NDenis Pershin <dyp@perchine.com>
      Cc: stable <stable@kernel.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      65e52f41
  27. 24 8月, 2011 1 次提交
    • K
      USB: use usb_endpoint_maxp() instead of le16_to_cpu() · 29cc8897
      Kuninori Morimoto 提交于
      Now ${LINUX}/drivers/usb/* can use usb_endpoint_maxp(desc) to get maximum packet size
      instead of le16_to_cpu(desc->wMaxPacketSize).
      This patch fix it up
      
      Cc: Armin Fuerst <fuerst@in.tum.de>
      Cc: Pavel Machek <pavel@ucw.cz>
      Cc: Johannes Erdfelt <johannes@erdfelt.com>
      Cc: Vojtech Pavlik <vojtech@suse.cz>
      Cc: Oliver Neukum <oliver@neukum.name>
      Cc: David Kubicek <dave@awk.cz>
      Cc: Johan Hovold <jhovold@gmail.com>
      Cc: Brad Hards <bhards@bigpond.net.au>
      Acked-by: NFelipe Balbi <balbi@ti.com>
      Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
      Cc: Thomas Dahlmann <dahlmann.thomas@arcor.de>
      Cc: David Brownell <david-b@pacbell.net>
      Cc: David Lopo <dlopo@chipidea.mips.com>
      Cc: Alan Stern <stern@rowland.harvard.edu>
      Cc: Michal Nazarewicz <m.nazarewicz@samsung.com>
      Cc: Xie Xiaobo <X.Xie@freescale.com>
      Cc: Li Yang <leoli@freescale.com>
      Cc: Jiang Bo <tanya.jiang@freescale.com>
      Cc: Yuan-hsin Chen <yhchen@faraday-tech.com>
      Cc: Darius Augulis <augulis.darius@gmail.com>
      Cc: Xiaochen Shen <xiaochen.shen@intel.com>
      Cc: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
      Cc: OKI SEMICONDUCTOR, <toshiharu-linux@dsn.okisemi.com>
      Cc: Robert Jarzmik <robert.jarzmik@free.fr>
      Cc: Ben Dooks <ben@simtec.co.uk>
      Cc: Thomas Abraham <thomas.ab@samsung.com>
      Cc: Herbert Pötzl <herbert@13thfloor.at>
      Cc: Arnaud Patard <arnaud.patard@rtp-net.org>
      Cc: Roman Weissgaerber <weissg@vienna.at>
      Acked-by: NSarah Sharp <sarah.a.sharp@linux.intel.com>
      Cc: Tony Olech <tony.olech@elandigitalsystems.com>
      Cc: Florian Floe Echtler <echtler@fs.tum.de>
      Cc: Christian Lucht <lucht@codemercs.com>
      Cc: Juergen Stuber <starblue@sourceforge.net>
      Cc: Georges Toth <g.toth@e-biz.lu>
      Cc: Bill Ryder <bryder@sgi.com>
      Cc: Kuba Ober <kuba@mareimbrium.org>
      Cc: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
      Signed-off-by: NKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      29cc8897
  28. 20 8月, 2011 1 次提交
  29. 07 6月, 2011 1 次提交
  30. 12 5月, 2011 1 次提交
  31. 14 4月, 2011 4 次提交