1. 26 8月, 2014 4 次提交
  2. 06 8月, 2014 33 次提交
    • C
      ide: use module_platform_driver() · a53dae49
      Christoph Jaeger 提交于
      Eliminate boilerplate code by using module_platform_driver().
      Signed-off-by: NChristoph Jaeger <christophjaeger@linux.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a53dae49
    • A
      cxgb4 : Disable recursive mailbox commands when enabling vi · 30f00847
      Anish Bhatt 提交于
      Enabling a Virtual Interface can result in an interrupt during the processing
       of the VI Enable command and, in some paths, result in an attempt to issue
      another command in the interrupt context, eventually crashing the system. Thus,
       we disable interrupts during the course of the VI Enable command and ensure
      enable doesn't sleep.
      Signed-off-by: NAnish Bhatt <anish@chelsio.com>
      Signed-off-by: NCasey Leedom <leedom@chelsio.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      30f00847
    • F
      net: reduce USB network driver config options. · 1bb5a356
      Francois Romieu 提交于
      USB network drivers are already handled in drivers/net/usb/Kconfig.
      Let's save the maintenance burden of dependencies in drivers/net/Makefile.
      
      The newly introduced USB_NET_DRIVERS umbrella config option defaults
      to 'y' so as to minimize the changes of behavior.
      Signed-off-by: NFrancois Romieu <romieu@fr.zoreil.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1bb5a356
    • P
      tg3: Modify tg3_tso_bug() to handle multiple TX rings · 4d8fdc95
      Prashant Sreedharan 提交于
      tg3_tso_bug() was originally designed to handle only HW TX ring 0, Commit
      d3f6f3a1 ("tg3: Prevent page allocation failure
      during TSO workaround") changed the driver logic to use tg3_tso_bug() for all
      HW TX rings that are enabled. This patch fixes the regression by modifying
      tg3_tso_bug() to handle multiple HW TX rings.
      Signed-off-by: NPrashant Sreedharan <prashant@broadcom.com>
      Signed-off-by: NMichael Chan <mchan@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4d8fdc95
    • L
      amd-xgbe: Perform phy connect/disconnect at dev open/stop · 88131a81
      Lendacky, Thomas 提交于
      A change added to the mdiobus/phy api added a module_get/module_put
      during phy connect/disconnect processing. Currently, the driver
      performs a phy connect during module probe and a phy disconnect during
      module remove. With the addition of the module_get during phy connect
      the amd-xgbe module use count is incremented and can no longer be
      unloaded.
      
      Move the phy connect/disconnect from the driver probe/remove functions
      to the net_device_ops ndo_open/ndo_stop functions.  This allows the
      module use count to be decremented when the device(s) are brought down
      and allows the module to be unloaded.
      Signed-off-by: NTom Lendacky <thomas.lendacky@amd.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      88131a81
    • L
      amd-xgbe: Use dma_set_mask_and_coherent to set DMA mask · f3d0e78d
      Lendacky, Thomas 提交于
      Use the dma_set_mask_and_coherent function to set the DMA mask rather
      than setting the DMA mask fields directly.  This was originally done
      to work around a bug in the arm64 DMA support when RAM started above
      the 4GB boundary which has since been fixed.
      Signed-off-by: NTom Lendacky <thomas.lendacky@amd.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f3d0e78d
    • M
      net: sun4i-emac: fix memory leak on bad packet · 2670cc69
      Marc Zyngier 提交于
      Upon reception of a new frame, the emac driver checks for a number
      of error conditions, and flag the packet as "bad" if any of these
      are present. It then allocates a skb unconditionally, but only uses
      it if the packet is "good". On the error path, the skb is just forgotten,
      and the system leaks memory.
      
      The piece of junk I have on my desk seems to encounter such error
      frequently enough so that the box goes OOM after a couple of days,
      which makes me grumpy.
      
      Fix this by moving the allocation on the "good_packet" path (and
      convert it to netdev_alloc_skb while we're at it).
      
      Tested on a random Allwinner A20 board.
      
      Cc: Stefan Roese <sr@denx.de>
      Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
      Cc: <stable@vger.kernel.org> # 3.11+
      Signed-off-by: NMarc Zyngier <marc.zyngier@arm.com>
      Acked-by: NMaxime Ripard <maxime.ripard@free-electrons.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2670cc69
    • F
      Revert "net: phy: Set the driver when registering an MDIO bus device" · ce7991e8
      Fabio Estevam 提交于
      Commit a71e3c37 ("net: phy: Set the driver when registering an MDIO bus
      device") caused the following regression on the fec driver:
      
      root@imx6qsabresd:~# echo mem > /sys/power/state
      PM: Syncing filesystems ... done.
      Freezing user space processes ... (elapsed 0.003 seconds) done.
      Freezing remaining freezable tasks ... (elapsed 0.002 seconds) done.
      Unable to handle kernel NULL pointer dereference at virtual address 0000002c
      pgd = bcd14000
      [0000002c] *pgd=4d9e0831, *pte=00000000, *ppte=00000000
      Internal error: Oops: 17 [#1] SMP ARM
      Modules linked in:
      CPU: 0 PID: 617 Comm: sh Not tainted 3.16.0 #17
      task: bc0c4e00 ti: bceb6000 task.ti: bceb6000
      PC is at fec_suspend+0x10/0x70
      LR is at dpm_run_callback.isra.7+0x34/0x6c
      pc : [<803f8a98>]    lr : [<80361f44>]    psr: 600f0013
      sp : bceb7d70  ip : bceb7d88  fp : bceb7d84
      r10: 8091523c  r9 : 00000000  r8 : bd88f478
      r7 : 803f8a88  r6 : 81165988  r5 : 00000000  r4 : 00000000
      r3 : 00000000  r2 : 00000000  r1 : bd88f478  r0 : bd88f478
      Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
      Control: 10c5387d  Table: 4cd1404a  DAC: 00000015
      Process sh (pid: 617, stack limit = 0xbceb6240)
      Stack: (0xbceb7d70 to 0xbceb8000)
      ....
      
      The problem with the original commit is explained by Russell King:
      
      "It has the effect (as can be seen from the oops) of attaching the MDIO bus
      device (itself is a bus-less device) to the platform driver, which means
      that if the platform driver supports power management, it will be called
      to power manage the MDIO bus device.
      
      Moreover, drivers do not expect to be called for power management
      operations for devices which they haven't probed, and certainly not for
      devices which aren't part of the same bus that the driver is registered
      against."
      
      This reverts commit a71e3c37.
      
      Cc: <stable@vger.kernel.org> #3.16
      Signed-off-by: NFabio Estevam <fabio.estevam@freescale.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ce7991e8
    • H
      cxgb4vf: Turn off SGE RX/TX Callback Timers and interrupts in PCI shutdown routine · c2a19856
      Hariprasad Shenai 提交于
      Need to turn off  SGE RX/TX Callback Timers & interrupt in cxgb4vf PCI Shutdown
      routine in order to prevent crashes during reboot/poweroff when traffic is
      running.
      Signed-off-by: NHariprasad Shenai <hariprasad@chelsio.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c2a19856
    • T
      team: Simplify return path of team_newlink · ff204cce
      Toshiaki Makita 提交于
      The variable "err" is not necessary.
      Return register_netdevice() directly.
      Signed-off-by: NToshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
      Acked-by: NJiri Pirko <jiri@resnulli.us>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ff204cce
    • A
      cxgb4i : Move stray CPL definitions to cxgb4 driver · a2b81b35
      Anish Bhatt 提交于
      These belong to the t4 msg header, will ensure there is no accidental code
      duplication in the future
      Signed-off-by: NAnish Bhatt <anish@chelsio.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a2b81b35
    • R
      qlcnic: Initialize dcbnl_ops before register_netdev · cd1560e2
      Rajesh Borundia 提交于
      o Initialization of dcbnl_ops after register netdev may result in
        dcbnl_ops not getting set before it is being accessed from open.
        So, moving it before register_netdev.
      Signed-off-by: NRajesh Borundia <rajesh.borundia@qlogic.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      cd1560e2
    • R
      qlcnic: Set driver version before registering netdev · bf63014f
      Rajesh Borundia 提交于
      o Earlier, set_drv_version was getting called after register_netdev.
        This was resulting in a race between set_drv_version and FLR called
        from open(). Moving set_drv_version before register_netdev avoids
        the race.
      
      o Log response code in error message on CDRP failure.
      Signed-off-by: NRajesh Borundia <rajesh.borundia@qlogic.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      bf63014f
    • R
      qlcnic: Fix update of ethtool stats. · a0eaf75c
      Rajesh Borundia 提交于
      o Aggregating tx stats in adapter variable was resulting in
        an increase in stats even after no traffic was run and
        user runs ifconfig/ethtool command.
      o qlcnic_update_stats used to accumulate stats in adapter
        struct at each function call, instead accumulate tx stats
        in local variable and then assign it to adapter structure.
      Reported-by: NHolger Kiehl <holger.kiehl@dwd.de>
      Signed-off-by: NRajesh Borundia <rajesh.borundia@qlogic.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a0eaf75c
    • Z
      xen-netback: Turn off the carrier if the guest is not able to receive · f34a4cf9
      Zoltan Kiss 提交于
      Currently when the guest is not able to receive more packets, qdisc layer starts
      a timer, and when it goes off, qdisc is started again to deliver a packet again.
      This is a very slow way to drain the queues, consumes unnecessary resources and
      slows down other guests shutdown.
      This patch change the behaviour by turning the carrier off when that timer
      fires, so all the packets are freed up which were stucked waiting for that vif.
      Instead of the rx_queue_purge bool it uses the VIF_STATUS_RX_PURGE_EVENT bit to
      signal the thread that either the timeout happened or an RX interrupt arrived,
      so the thread can check what it should do. It also disables NAPI, so the guest
      can't transmit, but leaves the interrupts on, so it can resurrect.
      Only the queues which brought down the interface can enable it again, the bit
      QUEUE_STATUS_RX_STALLED makes sure of that.
      Signed-off-by: NZoltan Kiss <zoltan.kiss@citrix.com>
      Signed-off-by: NDavid Vrabel <david.vrabel@citrix.com>
      Cc: netdev@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Cc: xen-devel@lists.xenproject.org
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f34a4cf9
    • Z
      xen-netback: Using a new state bit instead of carrier · 3d1af1df
      Zoltan Kiss 提交于
      This patch introduces a new state bit VIF_STATUS_CONNECTED to track whether the
      vif is in a connected state. Using carrier will not work with the next patch
      in this series, which aims to turn the carrier temporarily off if the guest
      doesn't seem to be able to receive packets.
      Signed-off-by: NZoltan Kiss <zoltan.kiss@citrix.com>
      Signed-off-by: NDavid Vrabel <david.vrabel@citrix.com>
      Cc: netdev@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Cc: xen-devel@lists.xenproject.org
      
      v2:
      - rename the bitshift type to "enum state_bit_shift" here, not in the next patch
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3d1af1df
    • S
      hwrng: Pass entropy to add_hwgenerator_randomness() in bits, not bytes · e02b8765
      Stephen Boyd 提交于
      rng_get_data() returns the number of bytes read from the hardware.
      The entropy argument to add_hwgenerator_randomness() is passed
      directly to credit_entropy_bits() so we should be passing the
      number of bits, not bytes here.
      
      Fixes: be4000bc "hwrng: create filler thread"
      Acked-by: NTorsten Duwe <duwe@suse.de>
      Signed-off-by: NStephen Boyd <sboyd@codeaurora.org>
      Signed-off-by: NTheodore Ts'o <tytso@mit.edu>
      e02b8765
    • M
      wdt: sunxi: Move restart code to the watchdog driver · 440e96bc
      Maxime Ripard 提交于
      Most of the watchdog code is duplicated between the machine restart code and
      the watchdog driver. Add the restart hook to the watchdog driver, to be able to
      remove it from the machine code eventually.
      Signed-off-by: NMaxime Ripard <maxime.ripard@free-electrons.com>
      Acked-by: NArnd Bergmann <arnd@arndb.de>
      Reviewed-by: NGuenter Roeck <linux@roeck-us.net>
      Signed-off-by: NWim Van Sebroeck <wim@iguana.be>
      440e96bc
    • X
      watchdog: imx2_wdt: adds big endianness support. · f728f4bf
      Xiubo Li 提交于
      This watchdog driver will be working on IMX2+, Vybrid, LS1, LS2+
      platforms, and will be in different endianness mode in those SoCs:
      
          SoCs       WDT endian mode
      ------------------------------------
          IMX2+           LE
          Vybird          LE
          LS1             BE
          LS2             LE
      Signed-off-by: NXiubo Li <Li.Xiubo@freescale.com>
      Reviewed-by: NGuenter Roeck <linux@roeck-us.net>
      Signed-off-by: NWim Van Sebroeck <wim@iguana.be>
      f728f4bf
    • G
      watchdog: shwdt: Remove the unnecessary check of resource after platform_get_resource() · 2cdf25bb
      George Cherian 提交于
      devm_ioremap_resource check for a valid resource. Remove the unnecessary check.
      Also group platform_get_resource and devm_ioremap_resource together for better
      readability.
      Signed-off-by: NGeorge Cherian <george.cherian@ti.com>
      Reviewed-by: NGuenter Roeck <linux@roeck-us.net>
      Signed-off-by: NWim Van Sebroeck <wim@iguana.be>
      2cdf25bb
    • G
      watchdog: lantiq_wdt: Remove the un-necessary check of resource after platform_get_resource() · 37f15291
      George Cherian 提交于
      devm_ioremap_resource() checks for valid resource.
      Remove the un-necessary check after platform_get_resource().
      Signed-off-by: NGeorge Cherian <george.cherian@ti.com>
      Reviewed-by: NGuenter Roeck <linux@roeck-us.net>
      Signed-off-by: NWim Van Sebroeck <wim@iguana.be>
      37f15291
    • G
      watchdog: dw_wdt: Remove the un-necessary check after platform_get_resource() · 4bba08dd
      George Cherian 提交于
      devm_ioremap_resource() checks for valid resource.
      Remove the un-necessary check after platform_get_resource().
      Signed-off-by: NGeorge Cherian <george.cherian@ti.com>
      Reviewed-by: NGuenter Roeck <linux@roeck-us.net>
      Signed-off-by: NWim Van Sebroeck <wim@iguana.be>
      4bba08dd
    • T
      random: limit the contribution of the hw rng to at most half · 48d6be95
      Theodore Ts'o 提交于
      For people who don't trust a hardware RNG which can not be audited,
      the changes to add support for RDSEED can be troubling since 97% or
      more of the entropy will be contributed from the in-CPU hardware RNG.
      
      We now have a in-kernel khwrngd, so for those people who do want to
      implicitly trust the CPU-based system, we could create an arch-rng
      hw_random driver, and allow khwrng refill the entropy pool.  This
      allows system administrator whether or not they trust the CPU (I
      assume the NSA will trust RDRAND/RDSEED implicitly :-), and if so,
      what level of entropy derating they want to use.
      
      The reason why this is a really good idea is that if different people
      use different levels of entropy derating, it will make it much more
      difficult to design a backdoor'ed hwrng that can be generally
      exploited in terms of the output of /dev/random when different attack
      targets are using differing levels of entropy derating.
      Signed-off-by: NTheodore Ts'o <tytso@mit.edu>
      48d6be95
    • T
      random: introduce getrandom(2) system call · c6e9d6f3
      Theodore Ts'o 提交于
      The getrandom(2) system call was requested by the LibreSSL Portable
      developers.  It is analoguous to the getentropy(2) system call in
      OpenBSD.
      
      The rationale of this system call is to provide resiliance against
      file descriptor exhaustion attacks, where the attacker consumes all
      available file descriptors, forcing the use of the fallback code where
      /dev/[u]random is not available.  Since the fallback code is often not
      well-tested, it is better to eliminate this potential failure mode
      entirely.
      
      The other feature provided by this new system call is the ability to
      request randomness from the /dev/urandom entropy pool, but to block
      until at least 128 bits of entropy has been accumulated in the
      /dev/urandom entropy pool.  Historically, the emphasis in the
      /dev/urandom development has been to ensure that urandom pool is
      initialized as quickly as possible after system boot, and preferably
      before the init scripts start execution.
      
      This is because changing /dev/urandom reads to block represents an
      interface change that could potentially break userspace which is not
      acceptable.  In practice, on most x86 desktop and server systems, in
      general the entropy pool can be initialized before it is needed (and
      in modern kernels, we will printk a warning message if not).  However,
      on an embedded system, this may not be the case.  And so with this new
      interface, we can provide the functionality of blocking until the
      urandom pool has been initialized.  Any userspace program which uses
      this new functionality must take care to assure that if it is used
      during the boot process, that it will not cause the init scripts or
      other portions of the system startup to hang indefinitely.
      
      SYNOPSIS
      	#include <linux/random.h>
      
      	int getrandom(void *buf, size_t buflen, unsigned int flags);
      
      DESCRIPTION
      	The system call getrandom() fills the buffer pointed to by buf
      	with up to buflen random bytes which can be used to seed user
      	space random number generators (i.e., DRBG's) or for other
      	cryptographic uses.  It should not be used for Monte Carlo
      	simulations or other programs/algorithms which are doing
      	probabilistic sampling.
      
      	If the GRND_RANDOM flags bit is set, then draw from the
      	/dev/random pool instead of the /dev/urandom pool.  The
      	/dev/random pool is limited based on the entropy that can be
      	obtained from environmental noise, so if there is insufficient
      	entropy, the requested number of bytes may not be returned.
      	If there is no entropy available at all, getrandom(2) will
      	either block, or return an error with errno set to EAGAIN if
      	the GRND_NONBLOCK bit is set in flags.
      
      	If the GRND_RANDOM bit is not set, then the /dev/urandom pool
      	will be used.  Unlike using read(2) to fetch data from
      	/dev/urandom, if the urandom pool has not been sufficiently
      	initialized, getrandom(2) will block (or return -1 with the
      	errno set to EAGAIN if the GRND_NONBLOCK bit is set in flags).
      
      	The getentropy(2) system call in OpenBSD can be emulated using
      	the following function:
      
                  int getentropy(void *buf, size_t buflen)
                  {
                          int     ret;
      
                          if (buflen > 256)
                                  goto failure;
                          ret = getrandom(buf, buflen, 0);
                          if (ret < 0)
                                  return ret;
                          if (ret == buflen)
                                  return 0;
                  failure:
                          errno = EIO;
                          return -1;
                  }
      
      RETURN VALUE
             On success, the number of bytes that was filled in the buf is
             returned.  This may not be all the bytes requested by the
             caller via buflen if insufficient entropy was present in the
             /dev/random pool, or if the system call was interrupted by a
             signal.
      
             On error, -1 is returned, and errno is set appropriately.
      
      ERRORS
      	EINVAL		An invalid flag was passed to getrandom(2)
      
      	EFAULT		buf is outside the accessible address space.
      
      	EAGAIN		The requested entropy was not available, and
      			getentropy(2) would have blocked if the
      			GRND_NONBLOCK flag was not set.
      
      	EINTR		While blocked waiting for entropy, the call was
      			interrupted by a signal handler; see the description
      			of how interrupted read(2) calls on "slow" devices
      			are handled with and without the SA_RESTART flag
      			in the signal(7) man page.
      
      NOTES
      	For small requests (buflen <= 256) getrandom(2) will not
      	return EINTR when reading from the urandom pool once the
      	entropy pool has been initialized, and it will return all of
      	the bytes that have been requested.  This is the recommended
      	way to use getrandom(2), and is designed for compatibility
      	with OpenBSD's getentropy() system call.
      
      	However, if you are using GRND_RANDOM, then getrandom(2) may
      	block until the entropy accounting determines that sufficient
      	environmental noise has been gathered such that getrandom(2)
      	will be operating as a NRBG instead of a DRBG for those people
      	who are working in the NIST SP 800-90 regime.  Since it may
      	block for a long time, these guarantees do *not* apply.  The
      	user may want to interrupt a hanging process using a signal,
      	so blocking until all of the requested bytes are returned
      	would be unfriendly.
      
      	For this reason, the user of getrandom(2) MUST always check
      	the return value, in case it returns some error, or if fewer
      	bytes than requested was returned.  In the case of
      	!GRND_RANDOM and small request, the latter should never
      	happen, but the careful userspace code (and all crypto code
      	should be careful) should check for this anyway!
      
      	Finally, unless you are doing long-term key generation (and
      	perhaps not even then), you probably shouldn't be using
      	GRND_RANDOM.  The cryptographic algorithms used for
      	/dev/urandom are quite conservative, and so should be
      	sufficient for all purposes.  The disadvantage of GRND_RANDOM
      	is that it can block, and the increased complexity required to
      	deal with partially fulfilled getrandom(2) requests.
      Signed-off-by: NTheodore Ts'o <tytso@mit.edu>
      Reviewed-by: NZach Brown <zab@zabbo.net>
      c6e9d6f3
    • R
      net/usb/hso: Add support for Option GTM671WFS · 61ab9efd
      Ricardo Ribalda 提交于
      After this patch:
      
      [   32.985530] hso: drivers/net/usb/hso.c: Option Wireless
      [   33.000452] hso 2-1.4:1.7: Not our interface
      [   33.001849] usbcore: registered new interface driver hso
      
      root@qt5022:~# ls /dev/ttyHS*
      /dev/ttyHS0  /dev/ttyHS1  /dev/ttyHS2  /dev/ttyHS3  /dev/ttyHS4
      /dev/ttyHS5
      
      root@qt5022:~# lsusb -d 0af0: -vvv
      
      Bus 002 Device 003: ID 0af0:9200 Option
      Device Descriptor:
        bLength                18
        bDescriptorType         1
        bcdUSB               2.00
        bDeviceClass          255 Vendor Specific Class
        bDeviceSubClass       255 Vendor Specific Subclass
        bDeviceProtocol       255 Vendor Specific Protocol
        bMaxPacketSize0        64
        idVendor           0x0af0 Option
        idProduct          0x9200
        bcdDevice            0.00
        iManufacturer           3 Option N.V.
        iProduct                2 Globetrotter HSUPA Modem
        iSerial                 0
        bNumConfigurations      1
        Configuration Descriptor:
          bLength                 9
          bDescriptorType         2
          wTotalLength          200
          bNumInterfaces          8
          bConfigurationValue     1
          iConfiguration          1 Option Configuration
          bmAttributes         0xe0
            Self Powered
            Remote Wakeup
          MaxPower              100mA
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        0
            bAlternateSetting       0
            bNumEndpoints           2
            bInterfaceClass       255 Vendor Specific Class
            bInterfaceSubClass    255 Vendor Specific Subclass
            bInterfaceProtocol    255 Vendor Specific Protocol
            iInterface              0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x81  EP 1 IN
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0200  1x 512 bytes
              bInterval              32
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x01  EP 1 OUT
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0200  1x 512 bytes
              bInterval              32
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        1
            bAlternateSetting       0
            bNumEndpoints           2
            bInterfaceClass       255 Vendor Specific Class
            bInterfaceSubClass    255 Vendor Specific Subclass
            bInterfaceProtocol    255 Vendor Specific Protocol
            iInterface              0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x82  EP 2 IN
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0200  1x 512 bytes
              bInterval              32
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x02  EP 2 OUT
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0200  1x 512 bytes
              bInterval              32
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        2
            bAlternateSetting       0
            bNumEndpoints           2
            bInterfaceClass       255 Vendor Specific Class
            bInterfaceSubClass    255 Vendor Specific Subclass
            bInterfaceProtocol    255 Vendor Specific Protocol
            iInterface              0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x83  EP 3 IN
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0200  1x 512 bytes
              bInterval              32
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x03  EP 3 OUT
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0200  1x 512 bytes
              bInterval              32
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        3
            bAlternateSetting       0
            bNumEndpoints           2
            bInterfaceClass       255 Vendor Specific Class
            bInterfaceSubClass    255 Vendor Specific Subclass
            bInterfaceProtocol    255 Vendor Specific Protocol
            iInterface              0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x84  EP 4 IN
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0200  1x 512 bytes
              bInterval              32
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x04  EP 4 OUT
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0200  1x 512 bytes
              bInterval              32
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        4
            bAlternateSetting       0
            bNumEndpoints           2
            bInterfaceClass       255 Vendor Specific Class
            bInterfaceSubClass    255 Vendor Specific Subclass
            bInterfaceProtocol    255 Vendor Specific Protocol
            iInterface              0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x85  EP 5 IN
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0200  1x 512 bytes
              bInterval              32
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x05  EP 5 OUT
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0200  1x 512 bytes
              bInterval              32
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        5
            bAlternateSetting       0
            bNumEndpoints           2
            bInterfaceClass       255 Vendor Specific Class
            bInterfaceSubClass    255 Vendor Specific Subclass
            bInterfaceProtocol    255 Vendor Specific Protocol
            iInterface              0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x06  EP 6 OUT
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0200  1x 512 bytes
              bInterval              32
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x86  EP 6 IN
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0200  1x 512 bytes
              bInterval              32
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        6
            bAlternateSetting       0
            bNumEndpoints           3
            bInterfaceClass       255 Vendor Specific Class
            bInterfaceSubClass    255 Vendor Specific Subclass
            bInterfaceProtocol    255 Vendor Specific Protocol
            iInterface              0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x87  EP 7 IN
              bmAttributes            3
                Transfer Type            Interrupt
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0040  1x 64 bytes
              bInterval               5
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x88  EP 8 IN
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0200  1x 512 bytes
              bInterval              32
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x07  EP 7 OUT
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0200  1x 512 bytes
              bInterval              32
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        7
            bAlternateSetting       0
            bNumEndpoints           2
            bInterfaceClass         8 Mass Storage
            bInterfaceSubClass      6 SCSI
            bInterfaceProtocol     80 Bulk-Only
            iInterface              0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x08  EP 8 OUT
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0200  1x 512 bytes
              bInterval               1
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x89  EP 9 IN
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0200  1x 512 bytes
              bInterval               1
      Device Qualifier (for other device speed):
        bLength                10
        bDescriptorType         6
        bcdUSB               2.00
        bDeviceClass          255 Vendor Specific Class
        bDeviceSubClass       255 Vendor Specific Subclass
        bDeviceProtocol       255 Vendor Specific Protocol
        bMaxPacketSize0        64
        bNumConfigurations      1
      Device Status:     0x0001
        Self Powered
      Signed-off-by: NRicardo Ribalda Delgado <ricardo.ribalda@gmail.com>
      Acked-by: NDan Williams <dcbw@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      61ab9efd
    • H
    • H
    • B
      regulator: act8865: fix build when OF is not enabled · 34e0247f
      Beniamino Galvani 提交于
      act8846_matches and act8865_matches are defined only when OF is
      enabled. Move references to them to the act8865_pdata_from_dt()
      function to avoid a build error when OF is disabled.
      Reported-by: Nkbuild test robot <fengguang.wu@intel.com>
      Signed-off-by: NBeniamino Galvani <b.galvani@gmail.com>
      Signed-off-by: NMark Brown <broonie@linaro.org>
      34e0247f
    • B
      regulator: act8865: add support for act8846 · ac0c0ea8
      Beniamino Galvani 提交于
      Add device id and definition of registers and regulators to support
      the act8846 PMU.
      Signed-off-by: NBeniamino Galvani <b.galvani@gmail.com>
      Tested-by: NWenyou Yang <wenyou.yang@atmel.com>
      Reviewed-by: NAxel Lin <axel.lin@ingics.com>
      Signed-off-by: NMark Brown <broonie@linaro.org>
      ac0c0ea8
    • B
      regulator: act8865: prepare support for other act88xx devices · 50a03e35
      Beniamino Galvani 提交于
      This patch prepares support for other devices in the act88xx family of
      PMUs manufactured by Active-Semi.
      
      http://www.active-semi.com/products/power-management-units/act88xx/Signed-off-by: NBeniamino Galvani <b.galvani@gmail.com>
      Tested-by: NWenyou Yang <wenyou.yang@atmel.com>
      Reviewed-by: NAxel Lin <axel.lin@ingics.com>
      Signed-off-by: NMark Brown <broonie@linaro.org>
      50a03e35
    • B
      regulator: act8865: set correct number of regulators in pdata · bbb83f38
      Beniamino Galvani 提交于
      act8865_pdata_from_dt() populates the array pdata->regulators with all
      the regulators and then assigns the field init_data only for the ones
      actually found in the DT.
      
      The patch changes the value assigned to pdata->num_regulators to match
      the size of the array.
      Signed-off-by: NBeniamino Galvani <b.galvani@gmail.com>
      Tested-by: NWenyou Yang <wenyou.yang@atmel.com>
      Reviewed-by: NAxel Lin <axel.lin@ingics.com>
      Signed-off-by: NMark Brown <broonie@linaro.org>
      bbb83f38
    • A
      regulator: act8865: Remove error variable in act8865_pmic_probe · 40d3bc19
      Axel Lin 提交于
      Simply use ret variable instead.
      Also remove unneeded initialize for ret variable.
      Signed-off-by: NAxel Lin <axel.lin@ingics.com>
      Signed-off-by: NMark Brown <broonie@linaro.org>
      40d3bc19
    • B
      regulator: act8865: fix parsing of platform data · 48a1e1b5
      Beniamino Galvani 提交于
      The driver loops through all available regulators (ACT8865_REG_NUM)
      and accesses pdata->regulators[i].platform_data without checking the
      actual value of num_regulators in platform data, potentially causing a
      invalid memory access.
      
      Fix this and look up the regulator init_data by id in platform data.
      Signed-off-by: NBeniamino Galvani <b.galvani@gmail.com>
      Tested-by Wenyou.Yang <wenyou.yang@atmel.com>
      Signed-off-by: NMark Brown <broonie@linaro.org>
      48a1e1b5
  3. 05 8月, 2014 3 次提交
    • C
      sunsab: Fix detection of BREAK on sunsab serial console · fe418231
      Christopher Alexander Tobias Schulze 提交于
      Fix detection of BREAK on sunsab serial console: BREAK detection was only
      performed when there were also serial characters received simultaneously.
      To handle all BREAKs correctly, the check for BREAK and the corresponding
      call to uart_handle_break() must also be done if count == 0, therefore
      duplicate this code fragment and pull it out of the loop over the received
      characters.
      
      Patch applies to 3.16-rc6.
      Signed-off-by: NChristopher Alexander Tobias Schulze <cat.schulze@alice-dsl.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      fe418231
    • C
      bbc-i2c: Fix BBC I2C envctrl on SunBlade 2000 · 5cdceab3
      Christopher Alexander Tobias Schulze 提交于
      Fix regression in bbc i2c temperature and fan control on some Sun systems
      that causes the driver to refuse to load due to the bbc_i2c_bussel resource not
      being present on the (second) i2c bus where the temperature sensors and fan
      control are located. (The check for the number of resources was removed when
      the driver was ported to a pure OF driver in mid 2008.)
      Signed-off-by: NChristopher Alexander Tobias Schulze <cat.schulze@alice-dsl.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5cdceab3
    • K
      Drivers: net-next: hyperv: Increase the size of the sendbuf region · 06b47aac
      KY Srinivasan 提交于
      Intel did some benchmarking on our network throughput when Linux on Hyper-V
      is as used as a gateway. This fix gave us almost a 1 Gbps additional throughput
      on about 5Gbps base throughput we hadi, prior to increasing the sendbuf size.
      The sendbuf mechanism is a copy based transport that we have which is clearly
      more optimal than the copy-free page flipping mechanism (for small packets).
      In the forwarding scenario, we deal only with MTU sized packets,
      and increasing the size of the senbuf area gave us the additional performance.
      For what it is worth, Windows guests on Hyper-V, I am told use similar sendbuf
      size as well.
      
      The exact value of sendbuf I think is less important than the fact that it needs
      to be larger than what Linux can allocate as physically contiguous memory.
      Thus the change over to allocating via vmalloc().
      
      We currently allocate 16MB receive buffer and we use vmalloc there for allocation.
      Also the low level channel code has already been modified to deal with physically
      dis-contiguous memory in the ringbuffer setup.
      
      Based on experimentation Intel did, they say there was some improvement in throughput
      as the sendbuf size was increased up to 16MB and there was no effect on throughput
      beyond 16MB. Thus I have chosen 16MB here.
      
      Increasing the sendbuf value makes a material difference in small packet handling
      
      In this version of the patch, based on David's feedback, I have added
      additional details in the commit log.
      Signed-off-by: NK. Y. Srinivasan <kys@microsoft.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      06b47aac
新手
引导
客服 返回
顶部