Skip to content
  1. Mar 10, 2021
    • Jonathan Marek's avatar
      ASoC: codecs: lpass-va-macro: mute/unmute all active decimators · 5346f0e8
      Jonathan Marek authored
      An interface can have multiple decimators enabled, so loop over all active
      decimators. Otherwise only one channel will be unmuted, and other channels
      will be zero. This fixes recording from dual DMIC as a single two channel
      stream.
      
      Also remove the now unused "active_decimator" field.
      
      Fixes: 908e6b1d
      
       ("ASoC: codecs: lpass-va-macro: Add support to VA Macro")
      Signed-off-by: default avatarJonathan Marek <jonathan@marek.ca>
      Reviewed-by: default avatarSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
      Link: https://lore.kernel.org/r/20210304215646.17956-1-jonathan@marek.ca
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      5346f0e8
    • Jon Hunter's avatar
      ASoC: soc-core: Prevent warning if no DMI table is present · 7de14d58
      Jon Hunter authored
      
      
      Many systems do not use ACPI and hence do not provide a DMI table. On
      non-ACPI systems a warning, such as the following, is printed on boot.
      
       WARNING KERN tegra-audio-graph-card sound: ASoC: no DMI vendor name!
      
      The variable 'dmi_available' is not exported and so currently cannot be
      used by kernel modules without adding an accessor. However, it is
      possible to use the function is_acpi_device_node() to determine if the
      sound card is an ACPI device and hence indicate if we expect a DMI table
      to be present. Therefore, call is_acpi_device_node() to see if we are
      using ACPI and only parse the DMI table if we are booting with ACPI.
      
      Signed-off-by: default avatarJon Hunter <jonathanh@nvidia.com>
      Link: https://lore.kernel.org/r/20210303115526.419458-1-jonathanh@nvidia.com
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      7de14d58
    • Pierre-Louis Bossart's avatar
      ASoC: SOF: Intel: unregister DMIC device on probe error · 5bb0ecdd
      Pierre-Louis Bossart authored
      
      
      We only unregister the platform device during the .remove operation,
      but if the probe fails we will never reach this sequence.
      
      Suggested-by: default avatarBard Liao <yung-chuan.liao@linux.intel.com>
      Fixes: dd96daca
      
       ("ASoC: SOF: Intel: Add APL/CNL HW DSP support")
      Signed-off-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
      Reviewed-by: default avatarRanjani Sridharan <ranjani.sridharan@linux.intel.com>
      Reviewed-by: default avatarGuennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
      Link: https://lore.kernel.org/r/20210302003410.1178535-1-pierre-louis.bossart@linux.intel.com
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      5bb0ecdd
    • Mark Brown's avatar
      Merge series "AsoC: rt5640/rt5651: Volume control fixes" from Hans de Goede <hdegoede@redhat.com>: · 19244c6c
      Mark Brown authored
      Hi All,
      
      Here is a series of rt5640/rt5651 volume-control fixes which I wrote
      while working on a bytcr-rt5640 UCM profile patch-series adding
      hardware-volume control to devices using this UCM profile.
      
      The UCM series will also work on older kernels, but it works best on
      kernels with this series applied, giving e.g. finer grained volume
      control and support for hardware muting the outputs.
      
      Regards,
      
      Hans
      
      Hans de Goede (5):
        ASoC: rt5640: Fix dac- and adc- vol-tlv values being off by a factor
          of 10
        ASoC: rt5651: Fix dac- and adc- vol-tlv values being off by a factor
          of 10
        ASoC: rt5640: Add emulated 'DAC1 Playback Switch' control
        ASoC: rt5640: Rename 'Mono DAC Playback Volume' to 'DAC2 Playback
          Volume'
        ASoC: Intel: bytcr_rt5640: Add used AIF to the components string
      
       sound/soc/codecs/rt5640.c             | 106 +++++++++++++++++++++++---
       sound/soc/codecs/rt5640.h             |   4 +
       sound/soc/codecs/rt5651.c             |   4 +-
       sound/soc/intel/boards/bytcr_rt5640.c |  11 ++-
       4 files changed, 111 insertions(+), 14 deletions(-)
      
      --
      2.30.1
      19244c6c
    • Hans de Goede's avatar
      ASoC: es8316: Simplify adc_pga_gain_tlv table · bb18c678
      Hans de Goede authored
      
      
      Most steps in this table are steps of 3dB (300 centi-dB), so we can
      simplify the table.
      
      This not only reduces the amount of space it takes inside the kernel,
      this also makes alsa-lib's mixer code actually accept the table, where
      as before this change alsa-lib saw the "ADC PGA Gain" control as a
      control without a dB scale.
      
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Link: https://lore.kernel.org/r/20210228160441.241110-1-hdegoede@redhat.com
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      bb18c678
    • Benjamin Rood's avatar
      ASoC: sgtl5000: set DAP_AVC_CTRL register to correct default value on probe · f86f58e3
      Benjamin Rood authored
      
      
      According to the SGTL5000 datasheet [1], the DAP_AVC_CTRL register has
      the following bit field definitions:
      
      | BITS  | FIELD       | RW | RESET | DEFINITION                        |
      | 15    | RSVD        | RO | 0x0   | Reserved                          |
      | 14    | RSVD        | RW | 0x1   | Reserved                          |
      | 13:12 | MAX_GAIN    | RW | 0x1   | Max Gain of AVC in expander mode  |
      | 11:10 | RSVD        | RO | 0x0   | Reserved                          |
      | 9:8   | LBI_RESP    | RW | 0x1   | Integrator Response               |
      | 7:6   | RSVD        | RO | 0x0   | Reserved                          |
      | 5     | HARD_LMT_EN | RW | 0x0   | Enable hard limiter mode          |
      | 4:1   | RSVD        | RO | 0x0   | Reserved                          |
      | 0     | EN          | RW | 0x0   | Enable/Disable AVC                |
      
      The original default value written to the DAP_AVC_CTRL register during
      sgtl5000_i2c_probe() was 0x0510.  This would incorrectly write values to
      bits 4 and 10, which are defined as RESERVED.  It would also not set
      bits 12 and 14 to their correct RESET values of 0x1, and instead set
      them to 0x0.  While the DAP_AVC module is effectively disabled because
      the EN bit is 0, this default value is still writing invalid values to
      registers that are marked as read-only and RESERVED as well as not
      setting bits 12 and 14 to their correct default values as defined by the
      datasheet.
      
      The correct value that should be written to the DAP_AVC_CTRL register is
      0x5100, which configures the register bits to the default values defined
      by the datasheet, and prevents any writes to bits defined as
      'read-only'.  Generally speaking, it is best practice to NOT attempt to
      write values to registers/bits defined as RESERVED, as it generally
      produces unwanted/undefined behavior, or errors.
      
      Also, all credit for this patch should go to my colleague Dan MacDonald
      <dmacdonald@curbellmedical.com> for finding this error in the first
      place.
      
      [1] https://www.nxp.com/docs/en/data-sheet/SGTL5000.pdf
      
      Signed-off-by: default avatarBenjamin Rood <benjaminjrood@gmail.com>
      Reviewed-by: default avatarFabio Estevam <festevam@gmail.com>
      Link: https://lore.kernel.org/r/20210219183308.GA2117@ubuntu-dev
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      f86f58e3
    • Hans de Goede's avatar
      ASoC: rt5651: Fix dac- and adc- vol-tlv values being off by a factor of 10 · eee51df7
      Hans de Goede authored
      The adc_vol_tlv volume-control has a range from -17.625 dB to +30 dB,
      not -176.25 dB to + 300 dB. This wrong scale is esp. a problem in userspace
      apps which translate the dB scale to a linear scale. With the logarithmic
      dB scale being of by a factor of 10 we loose all precision in the lower
      area of the range when apps translate things to a linear scale.
      
      E.g. the 0 dB default, which corresponds with a value of 47 of the
      0 - 127 range for the control, would be shown as 0/100 in alsa-mixer.
      
      Since the centi-dB values used in the TLV struct cannot represent the
      0.375 dB step size used by these controls, change the TLV definition
      for them to specify a min and max value instead of min + stepsize.
      
      Note this mirrors commit 3f31f7d9
      
       ("ASoC: rt5670: Fix dac- and adc-
      vol-tlv values being off by a factor of 10") which made the exact same
      change to the rt5670 codec driver.
      
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Link: https://lore.kernel.org/r/20210226143817.84287-3-hdegoede@redhat.com
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      eee51df7
    • Hans de Goede's avatar
      ASoC: rt5640: Fix dac- and adc- vol-tlv values being off by a factor of 10 · cfa26ed1
      Hans de Goede authored
      The adc_vol_tlv volume-control has a range from -17.625 dB to +30 dB,
      not -176.25 dB to + 300 dB. This wrong scale is esp. a problem in userspace
      apps which translate the dB scale to a linear scale. With the logarithmic
      dB scale being of by a factor of 10 we loose all precision in the lower
      area of the range when apps translate things to a linear scale.
      
      E.g. the 0 dB default, which corresponds with a value of 47 of the
      0 - 127 range for the control, would be shown as 0/100 in alsa-mixer.
      
      Since the centi-dB values used in the TLV struct cannot represent the
      0.375 dB step size used by these controls, change the TLV definition
      for them to specify a min and max value instead of min + stepsize.
      
      Note this mirrors commit 3f31f7d9
      
       ("ASoC: rt5670: Fix dac- and adc-
      vol-tlv values being off by a factor of 10") which made the exact same
      change to the rt5670 codec driver.
      
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Link: https://lore.kernel.org/r/20210226143817.84287-2-hdegoede@redhat.com
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      cfa26ed1
    • Hans de Goede's avatar
      ASoC: Intel: bytcr_rt5640: Fix HP Pavilion x2 10-p0XX OVCD current threshold · ca08ddfd
      Hans de Goede authored
      When I added the quirk for the "HP Pavilion x2 10-p0XX" I copied the
      byt_rt5640_quirk_table[] entry for the HP Pavilion x2 10-k0XX / 10-n0XX
      models since these use almost the same settings.
      
      While doing this I accidentally also copied and kept the non-standard
      OVCD_TH_1500UA setting used on those models. This too low threshold is
      causing headsets to often be seen as headphones (without a headset-mic)
      and when correctly identified it is causing ghost play/pause
      button-presses to get detected.
      
      Correct the HP Pavilion x2 10-p0XX quirk to use the default OVCD_TH_2000UA
      setting, fixing these problems.
      
      Fixes: fbdae7d6
      
       ("ASoC: Intel: bytcr_rt5640: Fix HP Pavilion x2 Detachable quirks")
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Acked-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
      Link: https://lore.kernel.org/r/20210224105052.42116-1-hdegoede@redhat.com
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      ca08ddfd
    • Mark Brown's avatar
      Merge series "ASoC: rt5670: Various kcontrol fixes" from Hans de Goede <hdegoede@redhat.com>: · cc73181b
      Mark Brown authored
      Hi All,
      
      While working on adding hardware-volume control support to the UCM
      profile for the rt5672 and on adding LED trigger support to the
      rt5670 codec driver. I hit / noticed a couple of issues this series
      fixes these issues.
      
      Regards,
      
      Hans
      
      Hans de Goede (4):
        ASoC: rt5670: Remove 'OUT Channel Switch' control
        ASoC: rt5670: Remove 'HP Playback Switch' control
        ASoC: rt5670: Remove ADC vol-ctrl mute bits poking from Sto1 ADC mixer
          settings
        ASoC: rt5670: Add emulated 'DAC1 Playback Switch' control
      
       sound/soc/codecs/rt5670.c | 110 +++++++++++++++++++++++++++++++++-----
       sound/soc/codecs/rt5670.h |   9 ++--
       2 files changed, 101 insertions(+), 18 deletions(-)
      
      --
      2.30.1
      cc73181b
    • Shengjiu Wang's avatar
      ASoC: ak5558: Add MODULE_DEVICE_TABLE · 80cffd24
      Shengjiu Wang authored
      Add missed MODULE_DEVICE_TABLE for the driver can be loaded
      automatically at boot.
      
      Fixes: 92088477
      
       ("ASoC: ak5558: Add support for AK5558 ADC driver")
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarShengjiu Wang <shengjiu.wang@nxp.com>
      Link: https://lore.kernel.org/r/1614149872-25510-2-git-send-email-shengjiu.wang@nxp.com
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      80cffd24
    • Shengjiu Wang's avatar
      ASoC: ak4458: Add MODULE_DEVICE_TABLE · 4ec5b967
      Shengjiu Wang authored
      Add missed MODULE_DEVICE_TABLE for the driver can be loaded
      automatically at boot.
      
      Fixes: 08660086
      
       ("ASoC: ak4458: Add support for AK4458 DAC driver")
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarShengjiu Wang <shengjiu.wang@nxp.com>
      Link: https://lore.kernel.org/r/1614149872-25510-1-git-send-email-shengjiu.wang@nxp.com
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      4ec5b967
    • Hans de Goede's avatar
      ASoC: rt5670: Add emulated 'DAC1 Playback Switch' control · 42121c26
      Hans de Goede authored
      
      
      For reliable output-mute LED control we need a "DAC1 Playback Switch"
      control. The "DAC Playback volume" control is the only control in the
      path from the DAC1 data input to the speaker output, so the UCM profile
      for the speaker output will have its PlaybackMixerElem set to "DAC1".
      
      But userspace (pulseaudio) will set the "DAC1 Playback Volume" control to
      its softest setting (which is not fully muted) while still showing the
      speaker as being enabled at a low volume in the UI.
      
      If we were to set the SNDRV_CTL_ELEM_ACCESS_SPK_LED on the "DAC1 Playback
      Volume" control, this would mean then what pressing KEY_VOLUMEDOWN the
      speaker-mute LED (embedded in the volume-mute toggle key) would light
      while the UI is still showing the speaker as being enabled at a low
      volume, meaning that the UI and the LED are out of sync.
      
      Only after an _extra_ KEY_VOLUMEDOWN press would the UI show the
      speaker as being muted.
      
      The path from DAC1 data input to the speaker output does have
      a digital mixer with DAC1's data as one of its inputs direclty after
      the "DAC1 Playback Volume" control.
      
      This commit adds an emulated "DAC1 Playback Switch" control by:
      
      1. Declaring the enable flag for that mixers DAC1 input as well as the
      "DAC1 Playback Switch" control both as SND_SOC_NOPM controls.
      
      2. Storing the settings of both controls as driver-private data
      
      3. Only clearing the mute flag for the DAC1 input of that mixer if the
      stored values indicate both controls are enabled.
      
      This is a preparation patch for adding "audio-mute" LED trigger support.
      
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Link: https://lore.kernel.org/r/20210215142118.308516-5-hdegoede@redhat.com
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      42121c26
    • Hans de Goede's avatar
      ASoC: rt5670: Remove ADC vol-ctrl mute bits poking from Sto1 ADC mixer settings · 02aa946e
      Hans de Goede authored
      
      
      The SND_SOC_DAPM_MIXER declaration for "Sto1 ADC MIXL" and "Sto1 ADC MIXR"
      was using the mute bits from the RT5670_STO1_ADC_DIG_VOL control as mixer
      master mute bits.
      
      But these bits are already exposed to userspace as controls as part of the
      "ADC Capture Volume" / "ADC Capture Switch" control pair:
      
              SOC_DOUBLE("ADC Capture Switch", RT5670_STO1_ADC_DIG_VOL,
                      RT5670_L_MUTE_SFT, RT5670_R_MUTE_SFT, 1, 1),
              SOC_DOUBLE_TLV("ADC Capture Volume", RT5670_STO1_ADC_DIG_VOL,
                              RT5670_L_VOL_SFT, RT5670_R_VOL_SFT,
                              127, 0, adc_vol_tlv),
      
      Both the fact that the mute bits belong to the same reg as the vol-ctrl
      and the "Digital Mixer Path" diagram in the datasheet clearly shows that
      these mute bits are not part of the mixer and having 2 separate controls
      poking at the same bits is a bad idea.
      
      Remove the master-mute bits settings from the  "Sto1 ADC MIXL" and
      "Sto1 ADC MIXR" DAPM widget declarations, avoiding these bits getting
      poked from 2 different places.
      
      This should not cause any issues for userspace. AFAICT the rt567x codecs
      are only used on x86/ACPI devices and the UCM profiles used there already
      set the "ADC Capture Switch" as needed.
      
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Link: https://lore.kernel.org/r/20210215142118.308516-4-hdegoede@redhat.com
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      02aa946e
    • Hans de Goede's avatar
      ASoC: rt5670: Remove 'HP Playback Switch' control · caba8d76
      Hans de Goede authored
      
      
      The RT5670_L_MUTE_SFT and RT5670_R_MUTE_SFT bits (bits 15 and 7) of the
      RT5670_HP_VOL register are set / unset by the headphones deplop code
      run by rt5670_hp_event() on SND_SOC_DAPM_POST_PMU / SND_SOC_DAPM_PRE_PMD.
      
      So we should not also export a control to userspace which toggles these
      same bits.
      
      This should not cause any issues for userspace. AFAICT the rt567x codecs
      are only used on x86/ACPI devices and the UCM profiles used there do not
      use the "HP Playback Switch" control.
      
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Link: https://lore.kernel.org/r/20210215142118.308516-3-hdegoede@redhat.com
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      caba8d76
    • Hans de Goede's avatar
      ASoC: rt5670: Remove 'OUT Channel Switch' control · d917b5dd
      Hans de Goede authored
      
      
      The "OUT Channel Switch" control is a left over from code copied from
      thr rt5640 codec driver.
      
      With the rt5640 codec driver the output volume controls have 2 pairs of
      mute bits:
      bit 7, 15: Mute Control for Spk/Headphone/Line Output Port
      bit 6, 14: Mute Control for Spk/Headphone/Line Volume Channel
      
      Bits 7 and 15 are normal mute bits on the rt5670/5672 which are
      controlled by 2 dapm widgets:
      	SND_SOC_DAPM_SWITCH("LOUT L Playback", SND_SOC_NOPM, 0, 0,
      			    &lout_l_enable_control),
      	SND_SOC_DAPM_SWITCH("LOUT R Playback", SND_SOC_NOPM, 0, 0,
      			    &lout_r_enable_control),
      
      But on the 5670/5672 bit 6 is always reserved, where as bit 14 is
      "LOUT Differential Mode" on the 5670 and also reserved on the 5672.
      
      So the "OUT Channel Switch" control which is controlling bits 6+14
      of the "LINE Output Control" register is bogus -> remove it.
      
      This should not cause any issues for userspace. AFAICT the rt567x codecs
      are only used on x86/ACPI devices and the UCM profiles used there do not
      use the "OUT Channel Switch" control.
      
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Link: https://lore.kernel.org/r/20210215142118.308516-2-hdegoede@redhat.com
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      d917b5dd
    • Alexander Shiyan's avatar
      ASoC: fsl_ssi: Fix TDM slot setup for I2S mode · 87263968
      Alexander Shiyan authored
      When using the driver in I2S TDM mode, the _fsl_ssi_set_dai_fmt()
      function rewrites the number of slots previously set by the
      fsl_ssi_set_dai_tdm_slot() function to 2 by default.
      To fix this, let's use the saved slot count value or, if TDM
      is not used and the slot count is not set, proceed as before.
      
      Fixes: 4f14f5c1
      
       ("ASoC: fsl_ssi: Fix number of words per frame for I2S-slave mode")
      Signed-off-by: default avatarAlexander Shiyan <shc_work@mail.ru>
      Acked-by: default avatarNicolin Chen <nicoleotsuka@gmail.com>
      Link: https://lore.kernel.org/r/20210216114221.26635-1-shc_work@mail.ru
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      87263968
    • Colin Ian King's avatar
      ASoC: codecs: lpass-rx-macro: Fix uninitialized variable ec_tx · 0c0a5883
      Colin Ian King authored
      There is potential read of the uninitialized variable ec_tx if the call
      to snd_soc_component_read fails or returns an unrecognized w->name. To
      avoid this corner case, initialize ec_tx to -1 so that it is caught
      later when ec_tx is bounds checked.
      
      Addresses-Coverity: ("Uninitialized scalar variable")
      Fixes: 4f692926
      
       ("ASoC: codecs: lpass-rx-macro: add dapm widgets and route")
      Signed-off-by: default avatarColin Ian King <colin.king@canonical.com>
      Link: https://lore.kernel.org/r/20210215163313.84026-1-colin.king@canonical.com
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      0c0a5883
    • Jack Yu's avatar
      ASoC: rt1015: enable BCLK detection after calibration · 0d2b6e39
      Jack Yu authored
      
      
      Enable BCLK detection after calibration.
      
      Signed-off-by: default avatarJack Yu <jack.yu@realtek.com>
      Link: https://lore.kernel.org/r/20210222090057.29532-2-jack.yu@realtek.com
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      0d2b6e39
    • Jack Yu's avatar
      ASoC: rt1015: fix i2c communication error · 9e0bdaa9
      Jack Yu authored
      
      
      Remove 0x100 cache re-sync to solve i2c communication error.
      
      Signed-off-by: default avatarJack Yu <jack.yu@realtek.com>
      Link: https://lore.kernel.org/r/20210222090057.29532-1-jack.yu@realtek.com
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      9e0bdaa9
  2. Mar 06, 2021
    • Linus Torvalds's avatar
      Linux 5.12-rc2 · a38fd874
      Linus Torvalds authored
      a38fd874
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma · f3ed4de6
      Linus Torvalds authored
      Pull rdma fixes from Jason Gunthorpe:
       "Nothing special here, though Bob's regression fixes for rxe would have
        made it before the rc cycle had there not been such strong winter
        weather!
      
         - Fix corner cases in the rxe reference counting cleanup that are
           causing regressions in blktests for SRP
      
         - Two kdoc fixes so W=1 is clean
      
         - Missing error return in error unwind for mlx5
      
         - Wrong lock type nesting in IB CM"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma:
        RDMA/rxe: Fix errant WARN_ONCE in rxe_completer()
        RDMA/rxe: Fix extra deref in rxe_rcv_mcast_pkt()
        RDMA/rxe: Fix missed IB reference counting in loopback
        RDMA/uverbs: Fix kernel-doc warning of _uverbs_alloc
        RDMA/mlx5: Set correct kernel-doc identifier
        IB/mlx5: Add missing error code
        RDMA/rxe: Fix missing kconfig dependency on CRYPTO
        RDMA/cm: Fix IRQ restore in ib_send_cm_sidr_rep
      f3ed4de6
    • Linus Torvalds's avatar
      Merge tag 'gcc-plugins-v5.12-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · de5bd6c5
      Linus Torvalds authored
      Pull gcc-plugins fixes from Kees Cook:
       "Tiny gcc-plugin fixes for v5.12-rc2. These issues are small but have
        been reported a couple times now by static analyzers, so best to get
        them fixed to reduce the noise. :)
      
         - Fix coding style issues (Jason Yan)"
      
      * tag 'gcc-plugins-v5.12-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        gcc-plugins: latent_entropy: remove unneeded semicolon
        gcc-plugins: structleak: remove unneeded variable 'ret'
      de5bd6c5
    • Linus Torvalds's avatar
      Merge tag 'pstore-v5.12-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 8b24ef44
      Linus Torvalds authored
      Pull pstore fixes from Kees Cook:
      
       - Rate-limit ECC warnings (Dmitry Osipenko)
      
       - Fix error path check for NULL (Tetsuo Handa)
      
      * tag 'pstore-v5.12-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        pstore/ram: Rate-limit "uncorrectable error in header" message
        pstore: Fix warning in pstore_kill_sb()
      8b24ef44
    • Linus Torvalds's avatar
      Merge tag 'for-5.12/dm-fixes' of... · 63dcd69d
      Linus Torvalds authored
      Merge tag 'for-5.12/dm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm
      
      Pull device mapper fixes from Mike Snitzer:
       "Fix DM verity target's optional Forward Error Correction (FEC) for
        Reed-Solomon roots that are unaligned to block size"
      
      * tag 'for-5.12/dm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
        dm verity: fix FEC for RS roots unaligned to block size
        dm bufio: subtract the number of initial sectors in dm_bufio_get_device_size
      63dcd69d
    • Linus Torvalds's avatar
      Merge tag 'block-5.12-2021-03-05' of git://git.kernel.dk/linux-block · 47454caf
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
      
       - NVMe fixes:
            - more device quirks (Julian Einwag, Zoltán Böszörményi, Pascal
              Terjan)
            - fix a hwmon error return (Daniel Wagner)
            - fix the keep alive timeout initialization (Martin George)
            - ensure the model_number can't be changed on a used subsystem
              (Max Gurtovoy)
      
       - rsxx missing -EFAULT on copy_to_user() failure (Dan)
      
       - rsxx remove unused linux.h include (Tian)
      
       - kill unused RQF_SORTED (Jean)
      
       - updated outdated BFQ comments (Joseph)
      
       - revert work-around commit for bd_size_lock, since we removed the
         offending user in this merge window (Damien)
      
      * tag 'block-5.12-2021-03-05' of git://git.kernel.dk/linux-block:
        nvmet: model_number must be immutable once set
        nvme-fabrics: fix kato initialization
        nvme-hwmon: Return error code when registration fails
        nvme-pci: add quirks for Lexar 256GB SSD
        nvme-pci: mark Kingston SKC2000 as not supporting the deepest power state
        nvme-pci: mark Seagate Nytro XM1440 as QUIRK_NO_NS_DESC_LIST.
        rsxx: Return -EFAULT if copy_to_user() fails
        block/bfq: update comments and default value in docs for fifo_expire
        rsxx: remove unused including <linux/version.h>
        block: Drop leftover references to RQF_SORTED
        block: revert "block: fix bd_size_lock use"
      47454caf
    • Linus Torvalds's avatar
      Merge tag 'io_uring-5.12-2021-03-05' of git://git.kernel.dk/linux-block · f292e873
      Linus Torvalds authored
      Pull io_uring fixes from Jens Axboe:
       "A bit of a mix between fallout from the worker change, cleanups and
        reductions now possible from that change, and fixes in general. In
        detail:
      
         - Fully serialize manager and worker creation, fixing races due to
           that.
      
         - Clean up some naming that had gone stale.
      
         - SQPOLL fixes.
      
         - Fix race condition around task_work rework that went into this
           merge window.
      
         - Implement unshare. Used for when the original task does unshare(2)
           or setuid/seteuid and friends, drops the original workers and forks
           new ones.
      
         - Drop the only remaining piece of state shuffling we had left, which
           was cred. Move it into issue instead, and we can drop all of that
           code too.
      
         - Kill f_op->flush() usage. That was such a nasty hack that we had
           out of necessity, we no longer need it.
      
         - Following from ->flush() removal, we can also drop various bits of
           ctx state related to SQPOLL and cancelations.
      
         - Fix an issue with IOPOLL retry, which originally was fallout from a
           filemap change (removing iov_iter_revert()), but uncovered an issue
           with iovec re-import too late.
      
         - Fix an issue with system suspend.
      
         - Use xchg() for fallback work, instead of cmpxchg().
      
         - Properly destroy io-wq on exec.
      
         - Add create_io_thread() core helper, and use that in io-wq and
           io_uring. This allows us to remove various silly completion events
           related to thread setup.
      
         - A few error handling fixes.
      
        This should be the grunt of fixes necessary for the new workers, next
        week should be quieter. We've got a pending series from Pavel on
        cancelations, and how tasks and rings are indexed. Outside of that,
        should just be minor fixes. Even with these fixes, we're still killing
        a net ~80 lines"
      
      * tag 'io_uring-5.12-2021-03-05' of git://git.kernel.dk/linux-block: (41 commits)
        io_uring: don't restrict issue_flags for io_openat
        io_uring: make SQPOLL thread parking saner
        io-wq: kill hashed waitqueue before manager exits
        io_uring: clear IOCB_WAITQ for non -EIOCBQUEUED return
        io_uring: don't keep looping for more events if we can't flush overflow
        io_uring: move to using create_io_thread()
        kernel: provide create_io_thread() helper
        io_uring: reliably cancel linked timeouts
        io_uring: cancel-match based on flags
        io-wq: ensure all pending work is canceled on exit
        io_uring: ensure that threads freeze on suspend
        io_uring: remove extra in_idle wake up
        io_uring: inline __io_queue_async_work()
        io_uring: inline io_req_clean_work()
        io_uring: choose right tctx->io_wq for try cancel
        io_uring: fix -EAGAIN retry with IOPOLL
        io-wq: fix error path leak of buffered write hash map
        io_uring: remove sqo_task
        io_uring: kill sqo_dead and sqo submission halting
        io_uring: ignore double poll add on the same waitqueue head
        ...
      f292e873
    • Linus Torvalds's avatar
      Merge tag 'pm-5.12-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 6d47254c
      Linus Torvalds authored
      Pull power management fixes from Rafael Wysocki:
       "These fix the usage of device links in the runtime PM core code and
        update the DTPM (Dynamic Thermal Power Management) feature added
        recently.
      
        Specifics:
      
         - Make the runtime PM core code avoid attempting to suspend supplier
           devices before updating the PM-runtime status of a consumer to
           'suspended' (Rafael Wysocki).
      
         - Fix DTPM (Dynamic Thermal Power Management) root node
           initialization and label that feature as EXPERIMENTAL in Kconfig
           (Daniel Lezcano)"
      
      * tag 'pm-5.12-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        powercap/drivers/dtpm: Add the experimental label to the option description
        powercap/drivers/dtpm: Fix root node initialization
        PM: runtime: Update device status before letting suppliers suspend
      6d47254c
    • Linus Torvalds's avatar
      Merge tag 'acpi-5.12-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · ea6be461
      Linus Torvalds authored
      Pull ACPI fix from Rafael Wysocki:
       "Make the empty stubs of some helper functions used when CONFIG_ACPI is
        not set actually match those functions (Andy Shevchenko)"
      
      * tag 'acpi-5.12-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI: bus: Constify is_acpi_node() and friends (part 2)
      ea6be461
    • Linus Torvalds's avatar
      Merge tag 'iommu-fixes-v5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu · fc2c8d0a
      Linus Torvalds authored
      Pull iommu fixes from Joerg Roedel:
      
       - Fix a sleeping-while-atomic issue in the AMD IOMMU code
      
       - Disable lazy IOTLB flush for untrusted devices in the Intel VT-d
         driver
      
       - Fix status code definitions for Intel VT-d
      
       - Fix IO Page Fault issue in Tegra IOMMU driver
      
      * tag 'iommu-fixes-v5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
        iommu/vt-d: Fix status code for Allocate/Free PASID command
        iommu: Don't use lazy flush for untrusted device
        iommu/tegra-smmu: Fix mc errors on tegra124-nyan
        iommu/amd: Fix sleeping in atomic in increase_address_space()
      fc2c8d0a
    • Linus Torvalds's avatar
      Merge tag 'for-5.12-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · f09b04cc
      Linus Torvalds authored
      Pull btrfs fixes from David Sterba:
       "More regression fixes and stabilization.
      
        Regressions:
      
         - zoned mode
            - count zone sizes in wider int types
            - fix space accounting for read-only block groups
      
         - subpage: fix page tail zeroing
      
        Fixes:
      
         - fix spurious warning when remounting with free space tree
      
         - fix warning when creating a directory with smack enabled
      
         - ioctl checks for qgroup inheritance when creating a snapshot
      
         - qgroup
            - fix missing unlock on error path in zero range
            - fix amount of released reservation on error
            - fix flushing from unsafe context with open transaction,
              potentially deadlocking
      
         - minor build warning fixes"
      
      * tag 'for-5.12-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
        btrfs: zoned: do not account freed region of read-only block group as zone_unusable
        btrfs: zoned: use sector_t for zone sectors
        btrfs: subpage: fix the false data csum mismatch error
        btrfs: fix warning when creating a directory with smack enabled
        btrfs: don't flush from btrfs_delayed_inode_reserve_metadata
        btrfs: export and rename qgroup_reserve_meta
        btrfs: free correct amount of space in btrfs_delayed_inode_reserve_metadata
        btrfs: fix spurious free_space_tree remount warning
        btrfs: validate qgroup inherit for SNAP_CREATE_V2 ioctl
        btrfs: unlock extents in btrfs_zero_range in case of quota reservation errors
        btrfs: ref-verify: use 'inline void' keyword ordering
      f09b04cc
    • Linus Torvalds's avatar
      Merge tag 'devicetree-fixes-for-5.12-1' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux · 6bf331d5
      Linus Torvalds authored
      Pull devicetree fixes from Rob Herring:
      
       - Another batch of graph and video-interfaces schema conversions
      
       - Drop DT header symlink for dropped C6X arch
      
       - Fix bcm2711-hdmi schema error
      
      * tag 'devicetree-fixes-for-5.12-1' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
        dt-bindings: media: Use graph and video-interfaces schemas, round 2
        dts: drop dangling c6x symlink
        dt-bindings: bcm2711-hdmi: Fix broken schema
      6bf331d5
    • Linus Torvalds's avatar
      Merge tag 'trace-v5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · 54663cf3
      Linus Torvalds authored
      Pull tracing fixes from Steven Rostedt:
       "Functional fixes:
      
         - Fix big endian conversion for arm64 in recordmcount processing
      
         - Fix timestamp corruption in ring buffer on discarding events
      
         - Fix memory leak in __create_synth_event()
      
         - Skip selftests if tracing is disabled as it will cause them to
           fail.
      
        Non-functional fixes:
      
         - Fix help text in Kconfig
      
         - Remove duplicate prototype for trace_empty()
      
         - Fix stale comment about the trace_event_call flags.
      
        Self test update:
      
         - Add more information to the validation output of when a corrupt
           timestamp is found in the ring buffer, and also trigger a warning
           to make sure that tests catch it"
      
      * tag 'trace-v5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        tracing: Fix comment about the trace_event_call flags
        tracing: Skip selftests if tracing is disabled
        tracing: Fix memory leak in __create_synth_event()
        ring-buffer: Add a little more information and a WARN when time stamp going backwards is detected
        ring-buffer: Force before_stamp and write_stamp to be different on discard
        tracing: Fix help text of TRACEPOINT_BENCHMARK in Kconfig
        tracing: Remove duplicate declaration from trace.h
        ftrace: Have recordmcount use w8 to read relp->r_info in arm64_is_fake_mcount
      54663cf3
    • Bob Pearson's avatar
      RDMA/rxe: Fix errant WARN_ONCE in rxe_completer() · 545c4ab4
      Bob Pearson authored
      In rxe_comp.c in rxe_completer() the function free_pkt() did not clear skb
      which triggered a warning at 'done:' and could possibly at 'exit:'. The
      WARN_ONCE() calls are not actually needed.  The call to free_pkt() is
      moved to the end to clearly show that all skbs are freed.
      
      Fixes: 899aba89
      
       ("RDMA/rxe: Fix FIXME in rxe_udp_encap_recv()")
      Link: https://lore.kernel.org/r/20210304192048.2958-1-rpearson@hpe.com
      Signed-off-by: default avatarBob Pearson <rpearsonhpe@gmail.com>
      Signed-off-by: default avatarJason Gunthorpe <jgg@nvidia.com>
      545c4ab4
    • Bob Pearson's avatar
      RDMA/rxe: Fix extra deref in rxe_rcv_mcast_pkt() · 5e4a7ccc
      Bob Pearson authored
      rxe_rcv_mcast_pkt() dropped a reference to ib_device when no error
      occurred causing an underflow on the reference counter.  This code is
      cleaned up to be clearer and easier to read.
      
      Fixes: 899aba89
      
       ("RDMA/rxe: Fix FIXME in rxe_udp_encap_recv()")
      Link: https://lore.kernel.org/r/20210304192048.2958-1-rpearson@hpe.com
      Signed-off-by: default avatarBob Pearson <rpearsonhpe@gmail.com>
      Signed-off-by: default avatarJason Gunthorpe <jgg@nvidia.com>
      5e4a7ccc
    • Bob Pearson's avatar
      RDMA/rxe: Fix missed IB reference counting in loopback · 21e27ac8
      Bob Pearson authored
      When the noted patch below extending the reference taken by
      rxe_get_dev_from_net() in rxe_udp_encap_recv() until each skb is freed it
      was not matched by a reference in the loopback path resulting in
      underflows.
      
      Fixes: 899aba89
      
       ("RDMA/rxe: Fix FIXME in rxe_udp_encap_recv()")
      Link: https://lore.kernel.org/r/20210304192048.2958-1-rpearson@hpe.com
      Signed-off-by: default avatarBob Pearson <rpearsonhpe@gmail.com>
      Signed-off-by: default avatarJason Gunthorpe <jgg@nvidia.com>
      21e27ac8
    • Pavel Begunkov's avatar
      io_uring: don't restrict issue_flags for io_openat · e45cff58
      Pavel Begunkov authored
      45d189c6
      
       ("io_uring: replace force_nonblock with flags") did
      something strange for io_openat() slicing all issue_flags but
      IO_URING_F_NONBLOCK. Not a bug for now, but better to just forward the
      flags.
      
      Signed-off-by: default avatarPavel Begunkov <asml.silence@gmail.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      e45cff58
    • Jens Axboe's avatar
      Merge tag 'nvme-5.12-2021-03-05' of git://git.infradead.org/nvme into block-5.12 · a2b658e4
      Jens Axboe authored
      Pull NVMe fixes from Christoph:
      
      "nvme fixes for 5.12:
      
       - more device quirks (Julian Einwag, Zoltán Böszörményi, Pascal Terjan)
       - fix a hwmon error return (Daniel Wagner)
       - fix the keep alive timeout initialization (Martin George)
       - ensure the model_number can't be changed on a used subsystem
         (Max Gurtovoy)"
      
      * tag 'nvme-5.12-2021-03-05' of git://git.infradead.org/nvme:
        nvmet: model_number must be immutable once set
        nvme-fabrics: fix kato initialization
        nvme-hwmon: Return error code when registration fails
        nvme-pci: add quirks for Lexar 256GB SSD
        nvme-pci: mark Kingston SKC2000 as not supporting the deepest power state
        nvme-pci: mark Seagate Nytro XM1440 as QUIRK_NO_NS_DESC_LIST.
      a2b658e4
  3. Mar 05, 2021
    • Jens Axboe's avatar
      io_uring: make SQPOLL thread parking saner · 86e0d676
      Jens Axboe authored
      
      
      We have this weird true/false return from parking, and then some of the
      callers decide to look at that. It can lead to unbalanced parks and
      sqd locking. Have the callers check the thread status once it's parked.
      We know we have the lock at that point, so it's either valid or it's NULL.
      
      Fix race with parking on thread exit. We need to be careful here with
      ordering of the sdq->lock and the IO_SQ_THREAD_SHOULD_PARK bit.
      
      Rename sqd->completion to sqd->parked to reflect that this is the only
      thing this completion event doesn.
      
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      86e0d676
    • Jens Axboe's avatar
      io-wq: kill hashed waitqueue before manager exits · 09ca6c40
      Jens Axboe authored
      If we race with shutting down the io-wq context and someone queueing
      a hashed entry, then we can exit the manager with it armed. If it then
      triggers after the manager has exited, we can have a use-after-free where
      io_wqe_hash_wake() attempts to wake a now gone manager process.
      
      Move the killing of the hashed write queue into the manager itself, so
      that we know we've killed it before the task exits.
      
      Fixes: e941894e
      
       ("io-wq: make buffered file write hashed work map per-ctx")
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      09ca6c40