1. 15 Nov, 2021 19 commits
    • David S. Miller's avatar
      Merge branch 'generic-phylink-validation' · 6d3b1b06
      David S. Miller authored
      Russell King says:
      
      ====================
      introduce generic phylink validation
      
      The various validate method implementations we have in phylink users
      have been quite repetitive but also prone to bugs. These patches
      introduce a generic implementation which relies solely on the
      supported_interfaces bitmap introduced during last cycle, and in the
      first patch, a bit array of MAC capabilities.
      
      MAC drivers are free to continue to do their own thing if they have
      special requirements - such as mvneta and mvpp2 which do not support
      1000base-X without AN enabled. Most implementations currently in the
      kernel can be converted to call phylink_generic_validate() directly
      from the phylink MAC operations structure once they fill in the
      supported_interfaces and mac_capabilities members of phylink_config.
      
      This series introduces the generic implementation, and converts mvneta
      and mvpp2 to use it.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6d3b1b06
    • Russell King (Oracle)'s avatar
      net: mvpp2: use phylink_generic_validate() · 5038ffea
      Russell King (Oracle) authored
      Convert mvpp2 to use phylink_generic_validate() for the bulk of its
      validate() implementation. This network adapter has a restriction
      that for 802.3z links, autonegotiation must be enabled.
      Signed-off-by: default avatarRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5038ffea
    • Russell King (Oracle)'s avatar
      net: mvneta: use phylink_generic_validate() · 02a0988b
      Russell King (Oracle) authored
      Convert mvneta to use phylink_generic_validate() for the bulk of its
      validate() implementation. This network adapter has a restriction
      that for 802.3z links, autonegotiation must be enabled.
      Signed-off-by: default avatarRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      02a0988b
    • Russell King (Oracle)'s avatar
      net: phylink: add generic validate implementation · 34ae2c09
      Russell King (Oracle) authored
      Add a generic validate() implementation using the supported_interfaces
      and a bitmask of MAC pause/speed/duplex capabilities. This allows us
      to entirely eliminate many driver private validate() implementations.
      
      We expose the underlying phylink_get_linkmodes() function so that
      drivers which have special needs can still benefit from conversion.
      Signed-off-by: default avatarRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      34ae2c09
    • Christophe Leroy's avatar
      net/wan/fsl_ucc_hdlc: fix sparse warnings · 5cf46d8e
      Christophe Leroy authored
      CHECK   drivers/net/wan/fsl_ucc_hdlc.c
      drivers/net/wan/fsl_ucc_hdlc.c:309:57: warning: incorrect type in argument 2 (different address spaces)
      drivers/net/wan/fsl_ucc_hdlc.c:309:57:    expected void [noderef] __iomem *
      drivers/net/wan/fsl_ucc_hdlc.c:309:57:    got restricted __be16 *
      drivers/net/wan/fsl_ucc_hdlc.c:311:46: warning: incorrect type in argument 2 (different address spaces)
      drivers/net/wan/fsl_ucc_hdlc.c:311:46:    expected void [noderef] __iomem *
      drivers/net/wan/fsl_ucc_hdlc.c:311:46:    got restricted __be32 *
      drivers/net/wan/fsl_ucc_hdlc.c:320:57: warning: incorrect type in argument 2 (different address spaces)
      drivers/net/wan/fsl_ucc_hdlc.c:320:57:    expected void [noderef] __iomem *
      drivers/net/wan/fsl_ucc_hdlc.c:320:57:    got restricted __be16 *
      drivers/net/wan/fsl_ucc_hdlc.c:322:46: warning: incorrect type in argument 2 (different address spaces)
      drivers/net/wan/fsl_ucc_hdlc.c:322:46:    expected void [noderef] __iomem *
      drivers/net/wan/fsl_ucc_hdlc.c:322:46:    got restricted __be32 *
      drivers/net/wan/fsl_ucc_hdlc.c:372:29: warning: incorrect type in assignment (different base types)
      drivers/net/wan/fsl_ucc_hdlc.c:372:29:    expected unsigned short [usertype]
      drivers/net/wan/fsl_ucc_hdlc.c:372:29:    got restricted __be16 [usertype]
      drivers/net/wan/fsl_ucc_hdlc.c:379:36: warning: restricted __be16 degrades to integer
      drivers/net/wan/fsl_ucc_hdlc.c:402:12: warning: incorrect type in assignment (different address spaces)
      drivers/net/wan/fsl_ucc_hdlc.c:402:12:    expected struct qe_bd [noderef] __iomem *bd
      drivers/net/wan/fsl_ucc_hdlc.c:402:12:    got struct qe_bd *curtx_bd
      drivers/net/wan/fsl_ucc_hdlc.c:425:20: warning: incorrect type in assignment (different address spaces)
      drivers/net/wan/fsl_ucc_hdlc.c:425:20:    expected struct qe_bd [noderef] __iomem *[assigned] bd
      drivers/net/wan/fsl_ucc_hdlc.c:425:20:    got struct qe_bd *tx_bd_base
      drivers/net/wan/fsl_ucc_hdlc.c:427:16: error: incompatible types in comparison expression (different address spaces):
      drivers/net/wan/fsl_ucc_hdlc.c:427:16:    struct qe_bd [noderef] __iomem *
      drivers/net/wan/fsl_ucc_hdlc.c:427:16:    struct qe_bd *
      drivers/net/wan/fsl_ucc_hdlc.c:462:33: warning: incorrect type in argument 1 (different address spaces)
      drivers/net/wan/fsl_ucc_hdlc.c:506:41: warning: incorrect type in argument 1 (different address spaces)
      drivers/net/wan/fsl_ucc_hdlc.c:528:33: warning: incorrect type in argument 1 (different address spaces)
      drivers/net/wan/fsl_ucc_hdlc.c:552:38: warning: incorrect type in argument 1 (different address spaces)
      drivers/net/wan/fsl_ucc_hdlc.c:596:67: warning: incorrect type in argument 2 (different address spaces)
      drivers/net/wan/fsl_ucc_hdlc.c:611:41: warning: incorrect type in argument 1 (different address spaces)
      drivers/net/wan/fsl_ucc_hdlc.c:851:38: warning: incorrect type in initializer (different address spaces)
      drivers/net/wan/fsl_ucc_hdlc.c:854:40: warning: incorrect type in argument 1 (different address spaces)
      drivers/net/wan/fsl_ucc_hdlc.c:855:40: warning: incorrect type in argument 1 (different address spaces)
      drivers/net/wan/fsl_ucc_hdlc.c:858:39: warning: incorrect type in argument 1 (different address spaces)
      drivers/net/wan/fsl_ucc_hdlc.c:861:37: warning: incorrect type in argument 2 (different address spaces)
      drivers/net/wan/fsl_ucc_hdlc.c:866:38: warning: incorrect type in initializer (different address spaces)
      drivers/net/wan/fsl_ucc_hdlc.c:868:21: warning: incorrect type in argument 1 (different address spaces)
      drivers/net/wan/fsl_ucc_hdlc.c:870:40: warning: incorrect type in argument 2 (different address spaces)
      drivers/net/wan/fsl_ucc_hdlc.c:871:40: warning: incorrect type in argument 2 (different address spaces)
      drivers/net/wan/fsl_ucc_hdlc.c:873:39: warning: incorrect type in argument 2 (different address spaces)
      drivers/net/wan/fsl_ucc_hdlc.c:993:57: warning: incorrect type in argument 2 (different address spaces)
      drivers/net/wan/fsl_ucc_hdlc.c:995:46: warning: incorrect type in argument 2 (different address spaces)
      drivers/net/wan/fsl_ucc_hdlc.c:1004:57: warning: incorrect type in argument 2 (different address spaces)
      drivers/net/wan/fsl_ucc_hdlc.c:1006:46: warning: incorrect type in argument 2 (different address spaces)
      drivers/net/wan/fsl_ucc_hdlc.c:412:35: warning: dereference of noderef expression
      drivers/net/wan/fsl_ucc_hdlc.c:412:35: warning: dereference of noderef expression
      drivers/net/wan/fsl_ucc_hdlc.c:724:29: warning: dereference of noderef expression
      drivers/net/wan/fsl_ucc_hdlc.c:815:21: warning: dereference of noderef expression
      drivers/net/wan/fsl_ucc_hdlc.c:1021:29: warning: dereference of noderef expression
      
      Most of the warnings are due to DMA memory being incorrectly handled as IO memory.
      Fix it by doing direct read/write and doing proper dma_rmb() / dma_wmb().
      
      Other problems are type mismatches or lack of use of IO accessors.
      
      Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      Link: https://lkml.org/lkml/2021/11/12/647Signed-off-by: default avatarChristophe Leroy <christophe.leroy@csgroup.eu>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5cf46d8e
    • Yihao Han's avatar
      net: fddi: use swap() to make code cleaner · 311107bd
      Yihao Han authored
      Use the macro 'swap()' defined in 'include/linux/minmax.h' to avoid
      opencoding it.
      Signed-off-by: default avatarYihao Han <hanyihao@vivo.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      311107bd
    • Guo Zhengkui's avatar
      hinic: use ARRAY_SIZE instead of ARRAY_LEN · 9ed94117
      Guo Zhengkui authored
      ARRAY_SIZE defined in <linux/kernel.h> is safer than self-defined
      macros to get size of an array such as ARRAY_LEN used here. Because
      ARRAY_SIZE uses __must_be_array(arr) to ensure arr is really an array.
      Reported-by: default avatarAlejandro Colomar <colomar.6.4.3@gmail.com>
      Signed-off-by: default avatarGuo Zhengkui <guozhengkui@vivo.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9ed94117
    • Jacky Chou's avatar
      net: usb: ax88179_178a: add TSO feature · 16b1c4e0
      Jacky Chou authored
      On low-effciency embedded platforms, transmission performance is poor
      due to on Bulk-out with single packet.
      Adding TSO feature improves the transmission performance and reduces
      the number of interrupt caused by Bulk-out complete.
      
      Reference to module, net: usb: aqc111.
      Signed-off-by: default avatarJacky Chou <jackychou@asix.com.tw>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      16b1c4e0
    • David S. Miller's avatar
      Merge branch 'mctp-i2c-driver' · 71812af7
      David S. Miller authored
      Matt Johnston says:
      
      ====================
      MCTP I2C driver
      
      This patch series adds a netdev driver providing MCTP transport over
      I2C.
      
      It applies against net-next using recent MCTP changes there, though also
      has I2C core changes for review. I'll leave it to maintainers where it
      should be applied - please let me know if it needs to be submitted
      differently.
      
      The I2C patches were previously sent as RFC though the only feedback
      there was an ack to 255 bytes for aspeed.
      
      The dt-bindings patch went through review on the list.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      71812af7
    • Matt Johnston's avatar
      mctp i2c: MCTP I2C binding driver · 80be9b2c
      Matt Johnston authored
      Provides MCTP network transport over an I2C bus, as specified in
      DMTF DSP0237. All messages between nodes are sent as SMBus Block Writes.
      
      Each I2C bus to be used for MCTP is flagged in devicetree by a
      'mctp-controller' property on the bus node. Each flagged bus gets a
      mctpi2cX net device created based on the bus number. A
      'mctp-i2c-controller' I2C client needs to be added under the adapter. In
      an I2C mux situation the mctp-i2c-controller node must be attached only
      to the root I2C bus. The I2C client will handle incoming I2C slave block
      write data for subordinate busses as well as its own bus.
      
      In configurations without devicetree a driver instance can be attached
      to a bus using the I2C slave new_device mechanism.
      
      The MCTP core will hold/release the MCTP I2C device while responses
      are pending (a 6 second timeout or once a socket is closed, response
      received etc). While held the MCTP I2C driver will lock the I2C bus so
      that the correct I2C mux remains selected while responses are received.
      
      (Ideally we would just lock the mux to keep the current bus selected for
      the response rather than a full I2C bus lock, but that isn't exposed in
      the I2C mux API)
      
      This driver requires I2C adapters that allow 255 byte transfers
      (SMBus 3.0) as the specification requires a minimum MTU of 68 bytes.
      Signed-off-by: default avatarMatt Johnston <matt@codeconstruct.com.au>
      Signed-off-by: default avatarJeremy Kerr <jk@codeconstruct.com.au>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      80be9b2c
    • Matt Johnston's avatar
      dt-bindings: net: New binding mctp-i2c-controller · 0b6141eb
      Matt Johnston authored
      Used to define a local endpoint to communicate with MCTP peripherals
      attached to an I2C bus. This I2C endpoint can communicate with remote
      MCTP devices on the I2C bus.
      
      In the example I2C topology below (matching the second yaml example) we
      have MCTP devices on busses i2c1 and i2c6. MCTP-supporting busses are
      indicated by the 'mctp-controller' DT property on an I2C bus node.
      
      A mctp-i2c-controller I2C client DT node is placed at the top of the
      mux topology, since only the root I2C adapter will support I2C slave
      functionality.
                                                     .-------.
                                                     |eeprom |
          .------------.     .------.               /'-------'
          | adapter    |     | mux  --@0,i2c5------'
          | i2c1       ----.*|      --@1,i2c6--.--.
          |............|    \'------'           \  \  .........
          | mctp-i2c-  |     \                   \  \ .mctpB  .
          | controller |      \                   \  '.0x30   .
          |            |       \  .........        \  '.......'
          | 0x50       |        \ .mctpA  .         \ .........
          '------------'         '.0x1d   .          '.mctpC  .
                                  '.......'          '.0x31   .
                                                      '.......'
      (mctpX boxes above are remote MCTP devices not included in the DT at
      present, they can be hotplugged/probed at runtime. A DT binding for
      specific fixed MCTP devices could be added later if required)
      Signed-off-by: default avatarMatt Johnston <matt@codeconstruct.com.au>
      Reviewed-by: default avatarRob Herring <robh@kernel.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0b6141eb
    • Matt Johnston's avatar
      i2c: npcm7xx: Allow 255 byte block SMBus transfers · 3ef2de27
      Matt Johnston authored
      255 byte support has been tested on a npcm750 board
      Signed-off-by: default avatarMatt Johnston <matt@codeconstruct.com.au>
      Reviewed-by: default avatarTali Perry <tali.perry1@gmail.com>
      Reviewed-by: default avatarPatrick Venture <venture@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3ef2de27
    • Matt Johnston's avatar
      i2c: aspeed: Allow 255 byte block transfers · 1b2ba1f5
      Matt Johnston authored
      255 byte transfers have been tested on an AST2500 board
      Signed-off-by: default avatarMatt Johnston <matt@codeconstruct.com.au>
      Reviewed-by: default avatarBrendan Higgins <brendanhiggins@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1b2ba1f5
    • Matt Johnston's avatar
      i2c: dev: Handle 255 byte blocks for i2c ioctl · 84a107e6
      Matt Johnston authored
      I2C_SMBUS is limited to 32 bytes due to compatibility with the
      32 byte i2c_smbus_data.block
      
      I2C_RDWR allows larger transfers if sufficient sized buffers are passed.
      Signed-off-by: default avatarMatt Johnston <matt@codeconstruct.com.au>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      84a107e6
    • Matt Johnston's avatar
      i2c: core: Allow 255 byte transfers for SMBus 3.x · 13cae4a1
      Matt Johnston authored
      SMBus 3.0 increased the maximum block transfer size from 32 bytes to
      255 bytes. We increase the size of struct i2c_smbus_data's block[]
      member.
      
      i2c_smbus_xfer() and i2c_smbus_xfer_emulated() now support 255 byte
      block operations, other block functions remain limited to 32 bytes for
      compatibility with existing callers.
      
      We allow adapters to indicate support for the larger size with
      I2C_FUNC_SMBUS_V3_BLOCK. Most emulated drivers should be able to use 255
      byte blocks by replacing I2C_SMBUS_BLOCK_MAX with I2C_SMBUS_V3_BLOCK_MAX
      though some will have hardware limitations that need testing.
      Signed-off-by: default avatarMatt Johnston <matt@codeconstruct.com.au>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      13cae4a1
    • Christophe JAILLET's avatar
      net: bridge: Slightly optimize 'find_portno()' · cc0be1ad
      Christophe JAILLET authored
      The 'inuse' bitmap is local to this function. So we can use the
      non-atomic '__set_bit()' to save a few cycles.
      
      While at it, also remove some useless {}.
      Signed-off-by: default avatarChristophe JAILLET <christophe.jaillet@wanadoo.fr>
      Acked-by: default avatarNikolay Aleksandrov <nikolay@nvidia.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      cc0be1ad
    • Harshit Mogalapalli's avatar
      net: sched: sch_netem: Refactor code in 4-state loss generator · cb3ef7b0
      Harshit Mogalapalli authored
      Fixed comments to match description with variable names and
      refactored code to match the convention as per [1].
      
      To match the convention mapping is done as follows:
      State 3 - LOST_IN_BURST_PERIOD
      State 4 - LOST_IN_GAP_PERIOD
      
      [1] S. Salsano, F. Ludovici, A. Ordine, "Definition of a general
      and intuitive loss model for packet networks and its implementation
      in the Netem module in the Linux kernel"
      
      Fixes: a6e2fe17 ("sch_netem: replace magic numbers with enumerate")
      Signed-off-by: default avatarHarshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
      Acked-by: default avatarStephen Hemminger <stephen@networkplumber.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      cb3ef7b0
    • Uwe Kleine-König's avatar
      net: dsa: vsc73xxx: Make vsc73xx_remove() return void · e99fa423
      Uwe Kleine-König authored
      vsc73xx_remove() returns zero unconditionally and no caller checks the
      returned value. So convert the function to return no value.
      Signed-off-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
      Reviewed-by: default avatarVladimir Oltean <olteanv@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e99fa423
    • Ong Boon Leong's avatar
      net: stmmac: enhance XDP ZC driver level switching performance · ac746c85
      Ong Boon Leong authored
      The previous stmmac_xdp_set_prog() implementation uses stmmac_release()
      and stmmac_open() which tear down the PHY device and causes undesirable
      autonegotiation which causes a delay whenever AFXDP ZC is setup.
      
      This patch introduces two new functions that just sufficiently tear
      down DMA descriptors, buffer, NAPI process, and IRQs and reestablish
      them accordingly in both stmmac_xdp_release() and stammac_xdp_open().
      
      As the results of this enhancement, we get rid of transient state
      introduced by the link auto-negotiation:
      
      $ ./xdpsock -i eth0 -t -z
      
       sock0@eth0:0 txonly xdp-drv
                         pps            pkts           1.00
      rx                 0              0
      tx                 634444         634560
      
       sock0@eth0:0 txonly xdp-drv
                         pps            pkts           1.00
      rx                 0              0
      tx                 632330         1267072
      
       sock0@eth0:0 txonly xdp-drv
                         pps            pkts           1.00
      rx                 0              0
      tx                 632438         1899584
      
       sock0@eth0:0 txonly xdp-drv
                         pps            pkts           1.00
      rx                 0              0
      tx                 632502         2532160
      Reported-by: Kurt Kanzenbach's avatarKurt Kanzenbach <kurt@linutronix.de>
      Signed-off-by: default avatarOng Boon Leong <boon.leong.ong@intel.com>
      Tested-by: Kurt Kanzenbach's avatarKurt Kanzenbach <kurt@linutronix.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ac746c85
  2. 14 Nov, 2021 3 commits
  3. 12 Nov, 2021 12 commits
    • Linus Torvalds's avatar
      Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · 66f4beaa
      Linus Torvalds authored
      Pull crypto fix from Herbert Xu:
       "This fixes a boot crash regression"
      
      * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
        crypto: api - Fix boot-up crash when crypto manager is disabled
      66f4beaa
    • Linus Torvalds's avatar
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 6cbcc7ab
      Linus Torvalds authored
      Pull more SCSI updates from James Bottomley:
       "This series is all the stragglers that didn't quite make the first
        merge window pull. It's mostly minor updates and bug fixes of merge
        window code but it also has two driver updates: ufs and qla2xxx"
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (46 commits)
        scsi: scsi_debug: Don't call kcalloc() if size arg is zero
        scsi: core: Remove command size deduction from scsi_setup_scsi_cmnd()
        scsi: scsi_ioctl: Validate command size
        scsi: ufs: ufshpb: Properly handle max-single-cmd
        scsi: core: Avoid leaving shost->last_reset with stale value if EH does not run
        scsi: bsg: Fix errno when scsi_bsg_register_queue() fails
        scsi: sr: Remove duplicate assignment
        scsi: ufs: ufs-exynos: Introduce ExynosAuto v9 virtual host
        scsi: ufs: ufs-exynos: Multi-host configuration for ExynosAuto v9
        scsi: ufs: ufs-exynos: Support ExynosAuto v9 UFS
        scsi: ufs: ufs-exynos: Add pre/post_hce_enable drv callbacks
        scsi: ufs: ufs-exynos: Factor out priv data init
        scsi: ufs: ufs-exynos: Add EXYNOS_UFS_OPT_SKIP_CONFIG_PHY_ATTR option
        scsi: ufs: ufs-exynos: Support custom version of ufs_hba_variant_ops
        scsi: ufs: ufs-exynos: Add setup_clocks callback
        scsi: ufs: ufs-exynos: Add refclkout_stop control
        scsi: ufs: ufs-exynos: Simplify drv_data retrieval
        scsi: ufs: ufs-exynos: Change pclk available max value
        scsi: ufs: Add quirk to enable host controller without PH configuration
        scsi: ufs: Add quirk to handle broken UIC command
        ...
      6cbcc7ab
    • Linus Torvalds's avatar
      Merge tag 'pwm/for-5.16-rc1' of... · 030c28a0
      Linus Torvalds authored
      Merge tag 'pwm/for-5.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm
      
      Pull pwm updates from Thierry Reding:
       "This set is mostly small fixes and cleanups, so more of a janitorial
        update for this cycle"
      
      * tag 'pwm/for-5.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm:
        pwm: vt8500: Rename pwm_busy_wait() to make it obviously driver-specific
        dt-bindings: pwm: tpu: Add R-Car M3-W+ device tree bindings
        dt-bindings: pwm: tpu: Add R-Car V3U device tree bindings
        pwm: pwm-samsung: Trigger manual update when disabling PWM
        pwm: visconti: Simplify using devm_pwmchip_add()
        pwm: samsung: Describe driver in Kconfig
        pwm: Make it explicit that pwm_apply_state() might sleep
        pwm: Add might_sleep() annotations for !CONFIG_PWM API functions
        pwm: atmel: Drop unused header
      030c28a0
    • Linus Torvalds's avatar
      Merge tag 'sound-fix-5.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 0d5d7463
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "A collection of fixes for 5.16-rc1, notably for a few regressions that
        were found in 5.15 and pre-rc1:
      
         - revert of the unification of SG-buffer helper functions on x86 and
           the relevant fix
      
         - regression fixes for mmap after the recent code refactoring
      
         - two NULL dereference fixes in HD-audio controller driver
      
         - UAF fixes in ALSA timer core
      
         - a few usual HD-audio and FireWire quirks"
      
      * tag 'sound-fix-5.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: fireworks: add support for Loud Onyx 1200f quirk
        ALSA: hda: fix general protection fault in azx_runtime_idle
        ALSA: hda: Free card instance properly at probe errors
        ALSA: hda/realtek: Add quirk for HP EliteBook 840 G7 mute LED
        ALSA: memalloc: Remove a stale comment
        ALSA: synth: missing check for possible NULL after the call to kstrdup
        ALSA: memalloc: Use proper SG helpers for noncontig allocations
        ALSA: pci: rme: Fix unaligned buffer addresses
        ALSA: firewire-motu: add support for MOTU Track 16
        ALSA: PCM: Fix NULL dereference at mmap checks
        ALSA: hda/realtek: Add quirk for ASUS UX550VE
        ALSA: timer: Unconditionally unlink slave instances, too
        ALSA: memalloc: Catch call with NULL snd_dma_buffer pointer
        Revert "ALSA: memalloc: Convert x86 SG-buffer handling with non-contiguous type"
        ALSA: hda/realtek: Add a quirk for Acer Spin SP513-54N
        ALSA: firewire-motu: add support for MOTU Traveler mk3
        ALSA: hda/realtek: Headset fixup for Clevo NH77HJQ
        ALSA: timer: Fix use-after-free problem
      0d5d7463
    • Linus Torvalds's avatar
      Merge tag 'drm-next-2021-11-12' of git://anongit.freedesktop.org/drm/drm · 304ac803
      Linus Torvalds authored
      Pull more drm updates from Dave Airlie:
       "I missed a drm-misc-next pull for the main pull last week. It wasn't
        that major and isn't the bulk of this at all. This has a bunch of
        fixes all over, a lot for amdgpu and i915.
      
        bridge:
         - HPD improvments for lt9611uxc
         - eDP aux-bus support for ps8640
         - LVDS data-mapping selection support
      
        ttm:
         - remove huge page functionality (needs reworking)
         - fix a race condition during BO eviction
      
        panels:
         - add some new panels
      
        fbdev:
         - fix double-free
         - remove unused scrolling acceleration
         - CONFIG_FB dep improvements
      
        locking:
         - improve contended locking logging
         - naming collision fix
      
        dma-buf:
         - add dma_resv_for_each_fence iterator
         - fix fence refcounting bug
         - name locking fixesA
      
        prime:
         - fix object references during mmap
      
        nouveau:
         - various code style changes
         - refcount fix
         - device removal fixes
         - protect client list with a mutex
         - fix CE0 address calculation
      
        i915:
         - DP rates related fixes
         - Revert disabling dual eDP that was causing state readout problems
         - put the cdclk vtables in const data
         - Fix DVO port type for older platforms
         - Fix blankscreen by turning DP++ TMDS output buffers on encoder->shutdown
         - CCS FBs related fixes
         - Fix recursive lock in GuC submission
         - Revert guc_id from i915_request tracepoint
         - Build fix around dmabuf
      
        amdgpu:
         - GPU reset fix
         - Aldebaran fix
         - Yellow Carp fixes
         - DCN2.1 DMCUB fix
         - IOMMU regression fix for Picasso
         - DSC display fixes
         - BPC display calculation fixes
         - Other misc display fixes
         - Don't allow partial copy from user for DC debugfs
         - SRIOV fixes
         - GFX9 CSB pin count fix
         - Various IP version check fixes
         - DP 2.0 fixes
         - Limit DCN1 MPO fix to DCN1
      
        amdkfd:
         - SVM fixes
         - Fix gfx version for renoir
         - Reset fixes
      
        udl:
         - timeout fix
      
        imx:
         - circular locking fix
      
        virtio:
         - NULL ptr deref fix"
      
      * tag 'drm-next-2021-11-12' of git://anongit.freedesktop.org/drm/drm: (126 commits)
        drm/ttm: Double check mem_type of BO while eviction
        drm/amdgpu: add missed support for UVD IP_VERSION(3, 0, 64)
        drm/amdgpu: drop jpeg IP initialization in SRIOV case
        drm/amd/display: reject both non-zero src_x and src_y only for DCN1x
        drm/amd/display: Add callbacks for DMUB HPD IRQ notifications
        drm/amd/display: Don't lock connection_mutex for DMUB HPD
        drm/amd/display: Add comment where CONFIG_DRM_AMD_DC_DCN macro ends
        drm/amdkfd: Fix retry fault drain race conditions
        drm/amdkfd: lower the VAs base offset to 8KB
        drm/amd/display: fix exit from amdgpu_dm_atomic_check() abruptly
        drm/amd/amdgpu: fix the kfd pre_reset sequence in sriov
        drm/amdgpu: fix uvd crash on Polaris12 during driver unloading
        drm/i915/adlp/fb: Prevent the mapping of redundant trailing padding NULL pages
        drm/i915/fb: Fix rounding error in subsampled plane size calculation
        drm/i915/hdmi: Turn DP++ TMDS output buffers back on in encoder->shutdown()
        drm/locking: fix __stack_depot_* name conflict
        drm/virtio: Fix NULL dereference error in virtio_gpu_poll
        drm/amdgpu: fix SI handling in amdgpu_device_asic_has_dc_support()
        drm/amdgpu: Fix dangling kfd_bo pointer for shared BOs
        drm/amd/amdkfd: Don't sent command to HWS on kfd reset
        ...
      304ac803
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · f78e9de8
      Linus Torvalds authored
      Pull input updates from Dmitry Torokhov:
       "Just one new driver (Cypress StreetFighter touchkey), and no input
        core changes this time.
      
        Plus various fixes and enhancements to existing drivers"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (54 commits)
        Input: iforce - fix control-message timeout
        Input: wacom_i2c - use macros for the bit masks
        Input: ili210x - reduce sample period to 15ms
        Input: ili210x - improve polled sample spacing
        Input: ili210x - special case ili251x sample read out
        Input: elantench - fix misreporting trackpoint coordinates
        Input: synaptics-rmi4 - Fix device hierarchy
        Input: i8042 - Add quirk for Fujitsu Lifebook T725
        Input: cap11xx - add support for cap1206
        Input: remove unused header <linux/input/cy8ctmg110_pdata.h>
        Input: ili210x - add ili251x firmware update support
        Input: ili210x - export ili251x version details via sysfs
        Input: ili210x - use resolution from ili251x firmware
        Input: pm8941-pwrkey - respect reboot_mode for warm reset
        reboot: export symbol 'reboot_mode'
        Input: max77693-haptic - drop unneeded MODULE_ALIAS
        Input: cpcap-pwrbutton - do not set input parent explicitly
        Input: max8925_onkey - don't mark comment as kernel-doc
        Input: ads7846 - do not attempt IRQ workaround when deferring probe
        Input: ads7846 - use input_set_capability()
        ...
      f78e9de8
    • Linus Torvalds's avatar
      Merge tag 'rtc-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux · 3b81bf78
      Linus Torvalds authored
      Pull RTC updates from Alexandre Belloni:
       "This includes new ioctls to get and set parameters and in particular
        the backup switch mode that is needed for some RTCs to actually enable
        the backup voltage (and have a useful RTC).
      
        The same interface can also be used to get the actual features
        supported by the RTC so userspace has a better way than trying and
        failing.
      
        Summary:
      
        Subsystem:
         - Add new ioctl to get and set extra RTC parameters, this includes
           backup switch mode
         - Expose available features to userspace, in particular, when alarmas
           have a resolution of one minute instead of a second.
         - Let the core handle those alarms with a minute resolution
      
        New driver:
         - MSTAR MSC313 RTC
      
        Drivers:
         - Add SPI ID table where necessary
         - Add BSM support for rv3028, rv3032 and pcf8523
         - s3c: set RTC range
         - rx8025: set range, implement .set_offset and .read_offset"
      
      * tag 'rtc-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux: (50 commits)
        rtc: rx8025: use .set_offset/.read_offset
        rtc: rx8025: use rtc_add_group
        rtc: rx8025: clear RTC_FEATURE_ALARM when alarm are not supported
        rtc: rx8025: set range
        rtc: rx8025: let the core handle the alarm resolution
        rtc: rx8025: switch to devm_rtc_allocate_device
        rtc: ab8500: let the core handle the alarm resolution
        rtc: ab-eoz9: support UIE when available
        rtc: ab-eoz9: use RTC_FEATURE_UPDATE_INTERRUPT
        rtc: rv3032: let the core handle the alarm resolution
        rtc: s35390a: let the core handle the alarm resolution
        rtc: handle alarms with a minute resolution
        rtc: pcf85063: silence cppcheck warning
        rtc: rv8803: fix writing back ctrl in flag register
        rtc: s3c: Add time range
        rtc: s3c: Extract read/write IO into separate functions
        rtc: s3c: Remove usage of devm_rtc_device_register()
        rtc: tps80031: Remove driver
        rtc: sun6i: Allow probing without an early clock provider
        rtc: pcf8523: add BSM support
        ...
      3b81bf78
    • Linus Torvalds's avatar
      Merge tag 'libata-5.16-rc1-p2' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/libata · 204d32ef
      Linus Torvalds authored
      Pull more libata updates from Damien Le Moal:
       "Second round of updates for libata for 5.16:
      
         - Fix READ LOG EXT and READ LOG DMA EXT command timeouts during disk
           revalidation after a resume or a modprobe of the LLDD (me)
      
         - Remove unnecessary error message in sata_highbank driver (Xu)
      
         - Better handling of accesses to the IDENTIFY DEVICE data log for
           drives that do not support this log page (me)
      
         - Fix ahci_shost_attr_group declaration in ahci driver (me)"
      
      * tag 'libata-5.16-rc1-p2' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/libata:
        libata: libahci: declare ahci_shost_attr_group as static
        libata: add horkage for missing Identify Device log
        ata: sata_highbank: Remove unnecessary print function dev_err()
        libata: fix read log timeout value
      204d32ef
    • Sasha Levin's avatar
      tools/lib/lockdep: drop liblockdep · 7246f4dc
      Sasha Levin authored
      TL;DR: While a tool like liblockdep is useful, it probably doesn't
      belong within the kernel tree.
      
      liblockdep attempts to reuse kernel code both directly (by directly
      building the kernel's lockdep code) as well as indirectly (by using
      sanitized headers). This makes liblockdep an integral part of the
      kernel.
      
      It also makes liblockdep quite unique: while other userspace code might
      use sanitized headers, it generally doesn't attempt to use kernel code
      directly which means that changes on the kernel side of things don't
      affect (and break) it directly.
      
      All our workflows and tooling around liblockdep don't support this
      uniqueness. Changes that go into the kernel code aren't validated to not
      break in-tree userspace code.
      
      liblockdep ended up being very fragile, breaking over and over, to the
      point that living in the same tree as the lockdep code lost most of it's
      value.
      
      liblockdep should continue living in an external tree, syncing with
      the kernel often, in a controllable way.
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      7246f4dc
    • Linus Torvalds's avatar
      thermal: int340x: fix build on 32-bit targets · d9c8e52f
      Linus Torvalds authored
      Commit aeb58c86 ("thermal/drivers/int340x: processor_thermal: Suppot
      64 bit RFIM responses") started using 'readq()' to read 64-bit status
      responses from the int340x hardware.
      
      That's all fine and good, but on 32-bit targets a 64-bit 'readq()' is
      ambiguous, since it's no longer an atomic access.  Some hardware might
      require 64-bit accesses, and other hardware might want low word first or
      high word first.
      
      It's quite likely that the driver isn't relevant in a 32-bit environment
      any more, and there's a patch floating around to just make it depend on
      X86_64, but let's make it buildable on x86-32 anyway.
      
      The driver previously just read the low 32 bits, so the hardware
      certainly is ok with 32-bit reads, and in a little-endian environment
      the low word first model is the natural one.
      
      So just add the include for the 'io-64-nonatomic-lo-hi.h' version.
      
      Fixes: aeb58c86 ("thermal/drivers/int340x: processor_thermal: Suppot 64 bit RFIM responses")
      Reported-by: default avatarJakub Kicinski <kuba@kernel.org>
      Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
      Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d9c8e52f
    • Dmitry Torokhov's avatar
      Merge branch 'next' into for-linus · efe6f16c
      Dmitry Torokhov authored
      Prepare input updates for 5.16 merge window.
      efe6f16c
    • Dave Airlie's avatar
      Merge tag 'drm-misc-fixes-2021-11-11' of git://anongit.freedesktop.org/drm/drm-misc into drm-next · b6c24725
      Dave Airlie authored
       * dma-buf: name_lock fixes
       * prime: Keep object ref during mmap
       * nouveau: Fix a refcount issue; Fix device removal; Protect client
         list with dedicated mutex; Fix address CE0 address calculation
       * ttm: Fix race condition during BO eviction
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Thomas Zimmermann <tzimmermann@suse.de>
      Link: https://patchwork.freedesktop.org/patch/msgid/YYzY6jeox9EeI15i@linux-uq9g.fritz.box
      b6c24725
  4. 11 Nov, 2021 6 commits
    • Dave Airlie's avatar
      BackMerge tag 'v5.15' into drm-next · 447212bb
      Dave Airlie authored
      I got a drm-fixes which had some 5.15 stuff in it, so to avoid
      the mess just backmerge here.
      
      Linux 5.15
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      447212bb
    • Linus Torvalds's avatar
      Merge tag 'pci-v5.16-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · 5833291a
      Linus Torvalds authored
      Pull PCI fixes from Bjorn Helgaas:
       "Revert conversion to struct device.driver instead of struct
        pci_dev.driver.
      
        The device.driver is set earlier, and using it caused the PCI core to
        call driver PM entry points before .probe() and after .remove(), when
        the driver isn't prepared.
      
        This caused NULL pointer dereferences in i2c_designware_pci and
        probably other driver issues"
      
      * tag 'pci-v5.16-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
        Revert "PCI: Use to_pci_driver() instead of pci_dev->driver"
        Revert "PCI: Remove struct pci_dev->driver"
      5833291a
    • Damien Le Moal's avatar
      libata: libahci: declare ahci_shost_attr_group as static · 1b87bda1
      Damien Le Moal authored
      ahci_shost_attr_group is referenced only in drivers/ata/libahci.c.
      Declare it as static.
      
      Fixes: c3f69c7f ("scsi: ata: Switch to attribute groups")
      Cc: Bart Van Assche <bvanassche@acm.org>
      Signed-off-by: default avatarDamien Le Moal <damien.lemoal@opensource.wdc.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      1b87bda1
    • Damien Le Moal's avatar
      libata: add horkage for missing Identify Device log · 636f6e2a
      Damien Le Moal authored
      ACS-3 introduced the ATA Identify Device Data log as mandatory. A
      warning message currently signals to the user if a device does not
      report supporting this log page in the log directory page, regardless
      of the ATA version of the device. Furthermore, this warning will appear
      for all attempts at accessing this missing log page during device
      revalidation.
      
      Since it is useless to constantly access the log directory and warn
      about this lack of support once we have discovered that the device
      does not support this log page, introduce the horkage flag
      ATA_HORKAGE_NO_ID_DEV_LOG to mark a device as lacking support for
      the Identify Device Data log page. Set this flag when
      ata_log_supported() returns false in ata_identify_page_supported().
      The warning is printed only if the device ATA level is 10 or above
      (ACS-3 or above), and only once on device scan. With this flag set, the
      log directory page is not accessed again to test for Identify Device
      Data log page support.
      Signed-off-by: default avatarDamien Le Moal <damien.lemoal@opensource.wdc.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Reviewed-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      636f6e2a
    • Linus Torvalds's avatar
      Merge tag 'kcsan.2021.11.11a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu · ca2ef2d9
      Linus Torvalds authored
      Pull KCSAN updates from Paul McKenney:
       "This contains initialization fixups, testing improvements, addition of
        instruction pointer to data-race reports, and scoped data-race checks"
      
      * tag 'kcsan.2021.11.11a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu:
        kcsan: selftest: Cleanup and add missing __init
        kcsan: Move ctx to start of argument list
        kcsan: Support reporting scoped read-write access type
        kcsan: Start stack trace with explicit location if provided
        kcsan: Save instruction pointer for scoped accesses
        kcsan: Add ability to pass instruction pointer of access to reporting
        kcsan: test: Fix flaky test case
        kcsan: test: Use kunit_skip() to skip tests
        kcsan: test: Defer kcsan_test_init() after kunit initialization
      ca2ef2d9
    • Linus Torvalds's avatar
      Merge tag 'apparmor-pr-2021-11-10' of... · 5593a733
      Linus Torvalds authored
      Merge tag 'apparmor-pr-2021-11-10' of git://git.kernel.org/pub/scm/linux/kernel/git/jj/linux-apparmor
      
      Pull apparmor updates from John Johansen:
       "Features
         - use per file locks for transactional queries
         - update policy management capability checks to work with LSM stacking
      
        Bug Fixes:
         - check/put label on apparmor_sk_clone_security()
         - fix error check on update of label hname
         - fix introspection of of task mode for unconfined tasks
      
        Cleanups:
         - avoid -Wempty-body warning
         - remove duplicated 'Returns:' comments
         - fix doc warning
         - remove unneeded one-line hook wrappers
         - use struct_size() helper in kzalloc()
         - fix zero-length compiler warning in AA_BUG()
         - file.h: delete duplicated word
         - delete repeated words in comments
         - remove repeated declaration"
      
      * tag 'apparmor-pr-2021-11-10' of git://git.kernel.org/pub/scm/linux/kernel/git/jj/linux-apparmor:
        apparmor: remove duplicated 'Returns:' comments
        apparmor: remove unneeded one-line hook wrappers
        apparmor: Use struct_size() helper in kzalloc()
        apparmor: fix zero-length compiler warning in AA_BUG()
        apparmor: use per file locks for transactional queries
        apparmor: fix doc warning
        apparmor: Remove the repeated declaration
        apparmor: avoid -Wempty-body warning
        apparmor: Fix internal policy capable check for policy management
        apparmor: fix error check
        security: apparmor: delete repeated words in comments
        security: apparmor: file.h: delete duplicated word
        apparmor: switch to apparmor to internal capable check for policy management
        apparmor: update policy capable checks to use a label
        apparmor: fix introspection of of task mode for unconfined tasks
        apparmor: check/put label on apparmor_sk_clone_security()
      5593a733