09 May, 2019

5 commits

  • Pull sound updates from Takashi Iwai:
    "The most significant changes at this cycle are the Sound Open Firmware
    support from Intel for the common DSP framework along with its support
    for Intel platforms. It's a door opened to a real "free" firmware (in
    the sense of FOSS), and other parties show interests in it.

    In addition to SOF, we've got a bunch of updates and fixes as usual.
    Some highlights are below.

    ALSA core:
    - Cleanups and fixes in ALSA timer code to cover some races spotted
    by syzkaller
    - Cleanups and fixes in ALSA sequencer code to cover some races,
    again unsurprisingly, spotted by syzkaller
    - Optimize the common page allocation helper with alloc_pages_exact()

    ASoC:
    - Add SOF core support, as well as Intel SOF platform support
    - Generic card driver improvements: support for MCLK/sample rate
    ratio and pin switches
    - A big set of improvements to TLV320AIC32x4 drivers
    - New drivers for Freescale audio mixers, several Intel machines,
    several Mediatek machines, Meson G12A, Spreadtrum compressed audio
    and DMA devices

    HD-audio:
    - A few Realtek codec fixes for reducing pop noises
    - Quirks for Chromebooks
    - Workaround for faulty connection report on AMD/Nvidia HDMI

    Others:
    - A quirk for Focusrite Scarlett Solo USB-audio
    - Add support for MOTU 8pre FireWire
    - 24bit sample format support in aloop
    - GUS patch format support (finally, over a decade) in native emux
    synth code"

    * tag 'sound-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (375 commits)
    ASoC: SOF: Fix unused variable warnings
    ALSA: line6: toneport: Fix broken usage of timer for delayed execution
    ALSA: aica: Fix a long-time build breakage
    ALSA: hda/realtek - Support low power consumption for ALC256
    ASoC: stm32: i2s: update pcm hardware constraints
    ASoC: codec: hdac_hdmi: no checking monitor in hw_params
    ASoC: mediatek: mt6358: save PGA for mixer control
    ASoC: mediatek: mt6358: save output volume for mixer controls
    ASoC: mediatek: mt6358: initialize setting when ramping volume
    ASoC: SOF: core: fix undefined nocodec reference
    ASoC: SOF: xtensa: fix undefined references
    ASoC: SOF: Propagate sof_get_ctrl_copy_params() error properly
    ALSA: hdea/realtek - Headset fixup for System76 Gazelle (gaze14)
    ALSA: hda/intel: add CometLake PCI IDs
    ALSA: hda/realtek - Support low power consumption for ALC295
    ASoC: rockchip: Fix an uninitialized variable compile warning
    ASoC: SOF: Fix a compile warning with CONFIG_PCI=n
    ASoC: da7219: Fix a compile warning at CONFIG_COMMON_CLK=n
    ASoC: sound/soc/sof/: fix kconfig dependency warning
    ASoC: stm32: spdifrx: change trace level on iec control
    ...

    Linus Torvalds
     
  • …/sound into for-linus

    ASoC: Fixes for v5.2

    A bunch of driver specific fixes that came in since the initial pull
    request for v5.2, mainly warning fixes for the newly added Sound Open
    Firmware code which people appeared to only start looking at after I'd
    sent the pull request.

    Takashi Iwai
     
  • Pull drm updates from Dave Airlie:
    "This has two exciting community drivers for ARM Mali accelerators.
    Since ARM has never been open source friendly on the GPU side of the
    house, the community has had to create open source drivers for the
    Mali GPUs. Lima covers the older t4xx and panfrost the newer 6xx/7xx
    series. Well done to all involved and hopefully this will help ARM
    head in the right direction.

    There is also now the ability if you don't have any of the legacy
    drivers enabled (pre-KMS) to remove all the pre-KMS support code from
    the core drm, this saves 10% or so in codesize on my machine.

    i915 also enable Icelake/Elkhart Lake Gen11 GPUs by default, vboxvideo
    moves out of staging.

    There are also some rcar-du patches which crossover with media tree
    but all should be acked by Mauro.

    Summary:

    uapi changes:
    - Colorspace connector property
    - fourcc - new YUV formts
    - timeline sync objects initially merged
    - expose FB_DAMAGE_CLIPS to atomic userspace

    new drivers:
    - vboxvideo: moved out of staging
    - aspeed: ASPEED SoC BMC chip display support
    - lima: ARM Mali4xx GPU acceleration driver support
    - panfrost: ARM Mali6xx/7xx Midgard/Bitfrost acceleration driver support

    core:
    - component helper docs
    - unplugging fixes
    - devm device init
    - MIPI/DSI rate control
    - shmem backed gem objects
    - connector, display_info, edid_quirks cleanups
    - dma_buf fence chain support
    - 64-bit dma-fence seqno comparison fixes
    - move initial fb config code to core
    - gem fence array helpers for Lima
    - ability to remove legacy support code if no drivers requires it (removes 10% of drm.ko size)
    - lease fixes

    ttm:
    - unified DRM_FILE_PAGE_OFFSET handling
    - Account for kernel allocations in kernel zone only

    panel:
    - OSD070T1718-19TS panel support
    - panel-tpo-td028ttec1 backlight support
    - Ronbo RB070D30 MIPI/DSI
    - Feiyang FY07024DI26A30-D MIPI-DSI panel
    - Rocktech jh057n00900 MIPI-DSI panel

    i915:
    - Comet Lake (Gen9) PCI IDs
    - Updated Icelake PCI IDs
    - Elkhartlake (Gen11) support
    - DP MST property addtions
    - plane and watermark fixes
    - Icelake port sync and VEBOX disable fixes
    - struct_mutex usage reduction
    - Icelake gamma fix
    - GuC reset fixes
    - make mmap more asynchronous
    - sound display power well race fixes
    - DDI/MIPI-DSI clocks for Icelake
    - Icelake RPS frequency changing support
    - Icelake workarounds

    amdgpu:
    - Use HMM for userptr
    - vega20 experimental smu11 support
    - RAS support for vega20
    - BACO support for vega12 + fixes for vega20
    - reworked IH interrupt handling
    - amdkfd RAS support
    - Freesync improvements
    - initial timeline sync object support
    - DC Z ordering fixes
    - NV12 planes support
    - colorspace properties for planes=
    - eDP opts if eDP already initialized

    nouveau:
    - misc fixes

    etnaviv:
    - misc fixes

    msm:
    - GPU zap shader support expansion
    - robustness ABI addition

    exynos:
    - Logging cleanups

    tegra:
    - Shared reset fix
    - CPU cache maintenance fix

    cirrus:
    - driver rewritten using simple helpers

    meson:
    - G12A support

    vmwgfx:
    - Resource dirtying management improvements
    - Userspace logging improvements

    virtio:
    - PRIME fixes

    rockchip:
    - rk3066 hdmi support

    sun4i:
    - DSI burst mode support

    vc4:
    - load tracker to detect underflow

    v3d:
    - v3d v4.2 support

    malidp:
    - initial Mali D71 support in komeda driver

    tfp410:
    - omap related improvement

    omapdrm:
    - drm bridge/panel support
    - drop some omap specific panels

    rcar-du:
    - Display writeback support"

    * tag 'drm-next-2019-05-09' of git://anongit.freedesktop.org/drm/drm: (1507 commits)
    drm/msm/a6xx: No zap shader is not an error
    drm/cma-helper: Fix drm_gem_cma_free_object()
    drm: Fix timestamp docs for variable refresh properties.
    drm/komeda: Mark the local functions as static
    drm/komeda: Fixed warning: Function parameter or member not described
    drm/komeda: Expose bus_width to Komeda-CORE
    drm/komeda: Add sysfs attribute: core_id and config_id
    drm: add non-desktop quirk for Valve HMDs
    drm/panfrost: Show stored feature registers
    drm/panfrost: Don't scream about deferred probe
    drm/panfrost: Disable PM on probe failure
    drm/panfrost: Set DMA masks earlier
    drm/panfrost: Add sanity checks to submit IOCTL
    drm/etnaviv: initialize idle mask before querying the HW db
    drm: introduce a capability flag for syncobj timeline support
    drm: report consistent errors when checking syncobj capibility
    drm/nouveau/nouveau: forward error generated while resuming objects tree
    drm/nouveau/fb/ramgk104: fix spelling mistake "sucessfully" -> "successfully"
    drm/nouveau/i2c: Disable i2c bus access after ->fini()
    drm/nouveau: Remove duplicate ACPI_VIDEO_NOTIFY_PROBE definition
    ...

    Linus Torvalds
     
  • The recent fix for the build fix caused a couple of unused variable
    compiler warnings when CONFIG_SND_SOC_SOF_NOCODEC isn't set:
    sound/soc/sof/core.c:263:6: warning: unused variable ‘ret’ [-Wunused-variable]
    sound/soc/sof/core.c:262:28: warning: unused variable ‘machine’ [-Wunused-variable]

    Fix them by adding another ifdef.

    Fixes: ce38a75089f7 ("ASoC: SOF: core: fix undefined nocodec reference")
    Signed-off-by: Takashi Iwai
    Signed-off-by: Mark Brown

    Takashi Iwai
     
  • Pull media updates from Mauro Carvalho Chehab:

    - remove the deprecated Zoran driver from staging

    - new I2C driver: ST MIPID02 CSI-2 camera bridge

    - new platform driver: Amlogic Meson AO CEC G12A Controller

    - add support for USB audio via the media controller

    - au0828 driver is now supported via the media controller on both on
    media and on usbaudio

    - new kernel test for the media device allocator

    - add support for stateless decoder at vicodec driver

    - lots of other driver improvements fixes and cleanups

    * tag 'media/v5.1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (218 commits)
    media: dt-bindings: aspeed-video: Add missing memory-region property
    media: platform: Aspeed: Make reserved memory optional
    media: platform: Aspeed: Remove use of reset line
    media: stm32-dcmi: return appropriate error codes during probe
    media: vsp1: Add support for missing 16-bit RGB555 formats
    media: vsp1: Add support for missing 16-bit RGB444 formats
    media: vsp1: Add support for missing 32-bit RGB formats
    media: v4l: Add definitions for missing 16-bit RGB555 formats
    media: v4l: Add definitions for missing 16-bit RGB4444 formats
    media: v4l: Add definitions for missing 32-bit RGB formats
    media: zoran: remove deprecated driver
    media: MAINTAINERS: Update AO CEC with ao-cec-g12a driver
    media: platform: meson: Add Amlogic Meson G12A AO CEC Controller driver
    media: dt-bindings: media: meson-ao-cec: Add G12A AO-CEC-B Compatible
    media: cros-ec-cec: decrement HDMI device refcount
    media: seco-cec: decrement HDMI device refcount
    media: tegra_cec: use new cec_notifier_parse_hdmi_phandle helper
    media: stih_cec: use new cec_notifier_parse_hdmi_phandle helper
    media: s5p_cec: use new cec_notifier_parse_hdmi_phandle helper
    media: meson: ao-cec: use new cec_notifier_parse_hdmi_phandle helper
    ...

    Linus Torvalds
     

08 May, 2019

16 commits

  • The line6 toneport driver has code for some delayed initialization,
    and this hits the kernel Oops because mutex and other sleepable
    functions are used in the timer callback. Fix the abuse by a delayed
    work instead so that everything works gracefully.

    Reported-by: syzbot+a07d0142e74fdd595cfb@syzkaller.appspotmail.com
    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • The build of aica sound driver has been broken since the timer API
    conversion and some code rewrite. This patch fixes the breakage by
    using the common substream field, as well as a bit cleaning up wrt the
    timer handling in the code.

    Fixes: d522bb6a105f ("ALSA: sh: aica: Convert timers to use timer_setup()")
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • Remove hp_pin = 0 return. Add the default pin 0x21 as headphone.
    Supported low power consumption, it must do depop procedure when
    headset jack was plugged or unplugged.
    So, alc256_init() and alc256_shutup() must run delay when headset jack
    was plugged or unplugged.
    If depop procedure not run with delay, it will have a chance to let
    power consumption raise high.

    [ NOTE: this is a quite quite similar change for ALC295 by commit
    d3ba58bb8959 ("ALSA: hda/realtek - Support low power consumption for
    ALC295"), but applied to ALC256 codec instead -- tiwai ]

    Fixes: 8983eb602af5 ("ALSA: hda/realtek - Move to ACT_INIT state")
    Signed-off-by: Kailang Yang
    Signed-off-by: Takashi Iwai

    Kailang Yang
     
  • …/sound into for-linus

    ASoC: Fixes for v5.2

    A bunch of driver specific fixes that came in since the initial pull
    request for v5.2, mainly warning fixes for the newly added Sound Open
    Firmware code which people appeared to only start looking at after I'd
    sent the pull request.

    Takashi Iwai
     
  • - Set period minimum size. Ensure at least 5ms period
    up to 48kHz/16 bits to prevent underrun/overrun.
    - Remove MDMA constraints on period maximum size and
    set period maximum to half the buffer maximum size.

    Signed-off-by: Olivier Moysan
    Signed-off-by: Mark Brown

    Olivier Moysan
     
  • Some userspace apps, like pulseaudio, may call open, hw_params,
    prepare to judge whether the pcm is ready or not. Current hdac_hdmi
    will return -ENODEV if monitor is not connected, which will cause
    the apps believe the pcm is not ready. Actually PCM for hdmi is ready,
    even the monitor is not connected.

    This patch removes the check of monitor presence in hw_params, just like
    what the legacy HD-Audio driver does.

    Signed-off-by: Libin Yang
    Acked-by: Pierre-Louis Bossart
    Signed-off-by: Mark Brown

    Libin Yang
     
  • mt6358_amic_disable() resets PGA to 0.

    Save the gain settings from mixer control and restore them when using
    the microphone.

    Signed-off-by: Tzung-Bi Shih
    Signed-off-by: Mark Brown

    Tzung-Bi Shih
     
  • Output volume settings from mixer controls would be lost.

    Imagine that "Headphone Volume" has set to -10dB via amixer:
    - in mtk_hp_enable()
    - hp_store_gain() saves the volume setting -10dB from regmap_read()
    to ana_gain[AUDIO_ANALOG_VOLUME_HPOUTL]
    - headset_volume_ramp() ramps up from -10dB to -10dB
    - in mtk_hp_disable()
    - headset_volume_ramp() ramps down from -10dB to -40dB

    Next time in mtk_hp_enable(), hp_store_gain() would save -40dB but
    not -10dB. As a result, headset_volume_ramp() would ramp from -10dB to
    -40dB (which is mute).

    Signed-off-by: Tzung-Bi Shih
    Signed-off-by: Mark Brown

    Tzung-Bi Shih
     
  • Mt6358 ramps up from the smallest volume (i.e. -10dB) to target dB when
    opening and ramps down from target dB to mute (i.e. -40dB) when closing.
    If target is equal to -10dB when opening, headset_volume_ramp() simply
    leaves current setting (which may not be -10dB) unchanged.

    Execute the loop at least once to initialize the setting to the
    starting point (i.e. from).

    Signed-off-by: Tzung-Bi Shih
    Signed-off-by: Mark Brown

    Tzung-Bi Shih
     
  • The existing code mistakenly uses IS_ENABLED in C code instead of as
    in conditional compilation, leading to the following error:

    ld: sound/soc/sof/core.o: in function `sof_machine_check':
    sound/soc/sof/core.c:279: undefined reference to `sof_nocodec_setup'

    Fix by using #if !IS_ENABLED()

    Reported-by: kbuild test robot
    Signed-off-by: Pierre-Louis Bossart
    Signed-off-by: Mark Brown

    Pierre-Louis Bossart
     
  • The SND_SOC_INTEL_COMMON Kconfig was removed months ago from SOF
    Kconfig files but is still selected instead of the correct
    SND_SOC_SOF_INTEL_COMMON kconfig which does select xtensa stuff,
    leading to the following errors.

    ld: sound/soc/sof/sof-acpi-dev.o:(.rodata+0x120): undefined reference
    to `sof_xtensa_arch_ops'
    ld: sound/soc/sof/sof-acpi-dev.o:(.rodata+0x180): undefined reference
    to `sof_xtensa_arch_ops'
    ld: sound/soc/sof/sof-acpi-dev.o:(.rodata+0x1e0): undefined reference
    to `sof_xtensa_arch_ops'

    Reported-by: kbuild test robot
    Signed-off-by: Pierre-Louis Bossart
    Signed-off-by: Mark Brown

    Pierre-Louis Bossart
     
  • This fixes a compile warning below by properly handling the error code
    from sof_get_ctrl_copy_params():
    include/linux/kernel.h:843:43: warning: 'sparams.pl_size' may be used uninitialized in this function [-Wmaybe-uninitialized]
    sound/soc/sof/ipc.c:639:34: note: 'sparams.pl_size' was declared here

    The function returns an error before setting sparams.pl_size, so it'd
    assign an uninitialized value at a later point.

    Fixes: 53e0c72d98ba ("ASoC: SOF: Add support for IPC IO between DSP and Host")
    Signed-off-by: Takashi Iwai
    Signed-off-by: Mark Brown

    Takashi Iwai
     
  • On the System76 Gazelle (gaze14), there is a headset microphone input
    attached to 0x1a that does not have a jack detect. In order to get it
    working, the pin configuration needs to be set correctly, and the
    ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC fixup needs to be applied. This is
    identical to the patch already applied for the System76 Darter Pro
    (darp5).

    Signed-off-by: Jeremy Soller
    Cc:
    Signed-off-by: Takashi Iwai

    Jeremy Soller
     
  • …anaszewski/linux-leds

    Pull LED updates from Jacek Anaszewski:
    "LED core fixes and improvements:

    - avoid races with workqueue
    - Kconfig: pedantic cleanup
    - small fixes for Flash class description

    leds-lt3593:

    - remove unneeded assignment in lt3593_led_probe
    - drop pdata handling code

    leds-blinkm:

    - clean up double assignment to data->i2c_addr

    leds-pca955x, leds-pca963x:

    - revert ACPI support, as it turned out that there is no evidence
    of officially registered ACPI IDs for these devices.
    - make use of device property API

    leds-as3645a:

    - switch to fwnode property API

    LED related addition to ACPI documentation:

    - document how to refer to LEDs from remote nodes

    LED related fix to ALSA line6/toneport driver:

    - avoid polluting led_* namespace

    And lm3532 driver relocation from MFD to LED subsystem, accompanied by
    various improvements and optimizations; it entails also a change in
    omap4-droid4-xt894.dts:

    - leds: lm3532: Introduce the lm3532 LED driver
    - mfd: ti-lmu: Remove LM3532 backlight driver references
    - ARM: dts: omap4-droid4: Update backlight dt properties
    - dt: lm3532: Add lm3532 dt doc and update ti_lmu doc"

    * tag 'leds-for-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds:
    leds: avoid races with workqueue
    ALSA: line6: Avoid polluting led_* namespace
    leds: lm3532: Introduce the lm3532 LED driver
    mfd: ti-lmu: Remove LM3532 backlight driver references
    ARM: dts: omap4-droid4: Update backlight dt properties
    dt: lm3532: Add lm3532 dt doc and update ti_lmu doc
    leds: Small fixes for Flash class description
    leds: blinkm: clean up double assignment to data->i2c_addr
    leds: pca963x: Make use of device property API
    leds: pca955x: Make use of device property API
    leds: lt3593: Remove unneeded assignment in lt3593_led_probe
    leds: lt3593: drop pdata handling code
    leds: pca955x: Revert "Add ACPI support"
    leds: pca963x: Revert "Add ACPI support"
    drivers: leds: Kconfig: pedantic cleanups
    ACPI: Document how to refer to LEDs from remote nodes
    leds: as3645a: Switch to fwnode property API

    Linus Torvalds
     
  • Add PCI IDs for LP and H skews.

    Signed-off-by: Pierre-Louis Bossart
    Signed-off-by: Takashi Iwai

    Pierre-Louis Bossart
     
  • Pull stream_open conversion from Kirill Smelkov:

    - remove unnecessary double nonseekable_open from drivers/char/dtlk.c
    as noticed by Pavel Machek while reviewing nonseekable_open ->
    stream_open mass conversion.

    - the mass conversion patch promised in commit 10dce8af3422 ("fs:
    stream_open - opener for stream-like files so that read and write can
    run simultaneously without deadlock") and is automatically generated
    by running

    $ make coccicheck MODE=patch COCCI=scripts/coccinelle/api/stream_open.cocci

    I've verified each generated change manually - that it is correct to
    convert - and each other nonseekable_open instance left - that it is
    either not correct to convert there, or that it is not converted due
    to current stream_open.cocci limitations. More details on this in the
    patch.

    - finally, change VFS to pass ppos=NULL into .read/.write for files
    that declare themselves streams. It was suggested by Rasmus Villemoes
    and makes sure that if ppos starts to be erroneously used in a stream
    file, such bug won't go unnoticed and will produce an oops instead of
    creating illusion of position change being taken into account.

    Note: this patch does not conflict with "fuse: Add FOPEN_STREAM to
    use stream_open()" that will be hopefully coming via FUSE tree,
    because fs/fuse/ uses new-style .read_iter/.write_iter, and for these
    accessors position is still passed as non-pointer kiocb.ki_pos .

    * tag 'stream_open-5.2' of https://lab.nexedi.com/kirr/linux:
    vfs: pass ppos=NULL to .read()/.write() of FMODE_STREAM files
    *: convert stream-like files from nonseekable_open -> stream_open
    dtlk: remove double call to nonseekable_open

    Linus Torvalds
     

07 May, 2019

9 commits

  • Pull spi updates from Mark Brown:
    "One small feature was added this release but the bulk of the diffstat
    and the changelog comes from the fact that several older drivers got
    some fairly hefty reworks and a couple of new drivers were added:

    - Support for detailed control of timing around chip selects from
    Sowjanya Komatineni.

    - A big set of fixes and imrovements for the Tegra114 driver from
    Sowjanya Komatineni.

    - A big simplification of the GPIO driver from Andrey Smirnov.

    - DMA support and fixes for the Freescale LPSPI driver from Clark
    Wang.

    - Fixes and optimizations for the bcm2835aux from Martin Sparl.

    - New drivers for Mediatek MT7621 (graduated from staging) and Zynq
    QSPI"

    [ This is a so-called "evil merge" that additionally removes a warning
    due to an unused variable 'i' introduced by commit 1dfbf334f123 ("spi:
    ep93xx: Convert to use CS GPIO descriptors") - Linus ]

    * tag 'spi-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (127 commits)
    spi: rspi: Fix handling of QSPI code when transmit and receive
    spi: atmel-quadspi: fix crash while suspending
    spi: stm32: return the get_irq error
    spi: tegra114: fix PIO transfer
    spi: pxa2xx: fix SCR (divisor) calculation
    spi: Clear SPI_CS_HIGH flag from bad_bits for GPIO chip-select
    spi: ep93xx: Convert to use CS GPIO descriptors
    spi: AD ASoC: declare missing of table
    spi: spi-mem: zynq-qspi: Fix build error on architectures missing readsl/writesl
    spi: stm32-qspi: manage the get_irq error case
    spi/spi-bcm2835: Split transfers that exceed DLEN
    spi: expand mode support
    dt-bindings: spi: spi-mt65xx: add support for MT8516
    spi: pxa2xx: Add support for Intel Comet Lake
    spi/trace: Cap buffer contents at 64 bytes
    spi: Release spi_res after finalizing message
    spi: Remove warning in spi_split_transfers_maxsize()
    spi: Remove one needless transfer speed fall back case
    spi: sh-msiof: Document r8a77470 bindings
    spi: pxa2xx: use a module softdep for dw_dmac
    ...

    Linus Torvalds
     
  • Pull regulator updates from Mark Brown:
    "In terms of big picture changes this has been an extremely quiet
    release however there's a lot of changes and a fairly big diffstat
    thanks to a bunch of small fixes, mainly coming from Axel Lin. Thanks
    to his work this release removes code overall even though we've added
    a new (albiet fairly small) driver.

    Notable things:

    - A fix for a long standing issue with locking on error interrupts
    from Steve Twiss.

    - A new driver for ST Microelectonics STM32 PWR"

    * tag 'regulator-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (134 commits)
    regulator: core: simplify return value on suported_voltage
    regulator: da9xxx: Switch to SPDX identifier
    regulator: stm32-pwr: Remove unneeded .min_uV and .list_volage
    regulator: stm32-pwr: Remove unneeded *desc from struct stm32_pwr_reg
    regulator: ab3100: Set fixed_uV instead of min_uV for fixed regulators
    regulator: ab3100: Constify regulator_ops and ab3100_regulator_desc
    regulator: pv880x0: Switch to SPDX identifier
    regulator: hi6xxx: Switch to SPDX identifier
    regulator: vexpress: Switch to SPDX identifier
    regulator: vexpress: Get rid of struct vexpress_regulator
    regulator: sky81452: Switch to SPDX identifier
    regulator: sky81452: Constify sky81452_reg_ops
    regulator: sy8106a: Get rid of struct sy8106a
    regulator: core: do not report EPROBE_DEFER as error but as debug
    regulator: mt63xx: Switch to SPDX identifier
    regulator: fan53555: Switch to SPDX identifier
    regulator: fan53555: Clean up unneeded fields from struct fan53555_device_info
    regulator: ltc3589: Switch to SPDX identifier
    regulator: ltc3589: Get rid of struct ltc3589_regulator
    regulator: ltc3589: Convert to use simplified DT parsing
    ...

    Linus Torvalds
     
  • Enter to close more power control widgets at suspend.
    Remove hp_pin check. Add the default pin 0x21 as headphone.
    Supported low power consumption, it must do depop procedure when
    headset jack was plugged or unplugged.
    So, alc225_init() and alc225_shutup() must run delay when headset
    jack was plugged or unplugged.
    If depop procedure not run with delay, it will have a chance to let
    power consumption raise high.

    [ A few compile fixes by tiwai ]

    Fixes: 8983eb602af5 ("ALSA: hda/realtek - Move to ACT_INIT state")
    Signed-off-by: Kailang Yang
    Signed-off-by: Takashi Iwai

    Kailang Yang
     
  • Pull ACPI updates from Rafael Wysocki:
    "These rearrange the ACPI documentation by converting it to the .rst
    format and splitting it into clear categories (admin guide, driver
    API, firmware guide), switch over multiple users of a problematic
    library function to a new better one, update the ACPICA code in the
    kernel to a new upstream release, fix a few issues, improve power
    device management diagnostics and do some cleanups.

    Specifics:

    - Convert the ACPI documentation in the kernel source tree to the
    .rst format and split it into the admin guide, driver API and
    firmware guide parts (Changbin Du).

    - Add a PRP0001 usage example to the ACPI documentation (Thomas
    Preston).

    - Switch over the users of the acpi_dev_get_first_match_name()
    library function which turned out to be problematic to a new,
    better one called acpi_dev_get_first_match_dev() (Andy Shevchenko,
    YueHaibing).

    - Update the ACPICA code in the kernel to upstream release 20190405
    including:
    * Null pointer dereference check in acpi_ns_delete_node() (Erik
    Schmauss).
    * Multiple macro and function name changes (Bob Moore).
    * Predefined operation region name fix (Erik Schmauss).

    - Fix hibernation issue on systems using the Baytrail and Cherrytrail
    Intel SoCs introduced during the 4.20 development cycle (Hans de
    Goede).

    - Add Sony VPCEH3U1E to the backlight quirk list (Zhang Rui).

    - Fix button handling during system resume (Zhang Rui).

    - Add a device PM diagnostic message (Rafael Wysocki).

    - Clean up the code, comments and white space in multiple places
    (Bjorn Helgaas, Gustavo Silva, Kefeng Wang)"

    * tag 'acpi-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (53 commits)
    Documentation: ACPI: move video_extension.txt to firmware-guide/acpi and convert to reST
    Documentation: ACPI: move ssdt-overlays.txt to admin-guide/acpi and convert to reST
    Documentation: ACPI: move lpit.txt to firmware-guide/acpi and convert to reST
    Documentation: ACPI: move cppc_sysfs.txt to admin-guide/acpi and convert to reST
    Documentation: ACPI: move apei/einj.txt to firmware-guide/acpi and convert to reST
    Documentation: ACPI: move apei/output_format.txt to firmware-guide/acpi and convert to reST
    Documentation: ACPI: move aml-debugger.txt to firmware-guide/acpi and convert to reST
    Documentation: ACPI: move method-tracing.txt to firmware-guide/acpi and convert to rsST
    Documentation: ACPI: move debug.txt to firmware-guide/acpi and convert to reST
    Documentation: ACPI: move dsd/data-node-references.txt to firmware-guide/acpi and convert to reST
    Documentation: ACPI: move dsd/graph.txt to firmware-guide/acpi and convert to reST
    Documentation: ACPI: move acpi-lid.txt to firmware-guide/acpi and convert to reST
    Documentation: ACPI: move i2c-muxes.txt to firmware-guide/acpi and convert to reST
    Documentation: ACPI: move dsdt-override.txt to admin-guide/acpi and convert to reST
    Documentation: ACPI: move initrd_table_override.txt to admin-guide/acpi and convert to reST
    Documentation: ACPI: move method-customizing.txt to firmware-guide/acpi and convert to reST
    Documentation: ACPI: move gpio-properties.txt to firmware-guide/acpi and convert to reST
    Documentation: ACPI: move DSD-properties-rules.txt to firmware-guide/acpi and covert to reST
    Documentation: ACPI: move scan_handlers.txt to driver-api/acpi and convert to reST
    Documentation: ACPI: move linuxized-acpica.txt to driver-api/acpi and convert to reST
    ...

    Linus Torvalds
     
  • Paper over a trivial case leading to an uninitialized variable compile
    warning:
    sound/soc/rockchip/rockchip_pdm.c:179:3: warning: ‘clk_out’ may be used uninitialized in this function [-Wmaybe-uninitialized]

    Fixes: 624e8e00acaf ("ASoC: rockchip: pdm: fixup pdm fractional div")
    Signed-off-by: Takashi Iwai
    Signed-off-by: Mark Brown

    Takashi Iwai
     
  • A trivial fix for the randconfig build error:
    sound/soc/sof/ops.c:20:6: warning: ‘ret’ is used uninitialized in this function [-Wuninitialized]

    Fixes: d1d95fcb63e3 ("ASoC: SOF: Add DSP HW abstraction operations")
    Signed-off-by: Takashi Iwai
    Acked-by: Pierre-Louis Bossart
    Signed-off-by: Mark Brown

    Takashi Iwai
     
  • A trivial fix for the randconfig build error:
    sound/soc/codecs/da7219.c:2366:6: warning: unused variable ‘i’ [-Wunused-variable]

    Fixes: d90ba6c8b53e ("ASoC: da7219: Expose BCLK and WCLK control through CCF")
    Signed-off-by: Takashi Iwai
    Signed-off-by: Mark Brown

    Takashi Iwai
     
  • Fix kconfig warning for unmet dependency for IOSF_MBI when
    PCI is not set/enabled. Fixes this warning:

    WARNING: unmet direct dependencies detected for IOSF_MBI
    Depends on [n]: PCI [=n]
    Selected by [y]:
    - SND_SOC_SOF_ACPI [=y] && SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && SND_SOC_SOF_TOPLEVEL [=y] && (ACPI [=y] || COMPILE_TEST [=n]) && X86 [=y]

    Signed-off-by: Randy Dunlap
    Cc: Liam Girdwood
    Cc: Mark Brown
    Cc: alsa-devel@alsa-project.org
    Acked-by: Pierre-Louis Bossart
    Signed-off-by: Mark Brown

    Randy Dunlap
     
  • Pull mmiowb removal from Will Deacon:
    "Remove Mysterious Macro Intended to Obscure Weird Behaviours (mmiowb())

    Remove mmiowb() from the kernel memory barrier API and instead, for
    architectures that need it, hide the barrier inside spin_unlock() when
    MMIO has been performed inside the critical section.

    The only relatively recent changes have been addressing review
    comments on the documentation, which is in a much better shape thanks
    to the efforts of Ben and Ingo.

    I was initially planning to split this into two pull requests so that
    you could run the coccinelle script yourself, however it's been plain
    sailing in linux-next so I've just included the whole lot here to keep
    things simple"

    * tag 'arm64-mmiowb' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (23 commits)
    docs/memory-barriers.txt: Update I/O section to be clearer about CPU vs thread
    docs/memory-barriers.txt: Fix style, spacing and grammar in I/O section
    arch: Remove dummy mmiowb() definitions from arch code
    net/ethernet/silan/sc92031: Remove stale comment about mmiowb()
    i40iw: Redefine i40iw_mmiowb() to do nothing
    scsi/qla1280: Remove stale comment about mmiowb()
    drivers: Remove explicit invocations of mmiowb()
    drivers: Remove useless trailing comments from mmiowb() invocations
    Documentation: Kill all references to mmiowb()
    riscv/mmiowb: Hook up mmwiob() implementation to asm-generic code
    powerpc/mmiowb: Hook up mmwiob() implementation to asm-generic code
    ia64/mmiowb: Add unconditional mmiowb() to arch_spin_unlock()
    mips/mmiowb: Add unconditional mmiowb() to arch_spin_unlock()
    sh/mmiowb: Add unconditional mmiowb() to arch_spin_unlock()
    m68k/io: Remove useless definition of mmiowb()
    nds32/io: Remove useless definition of mmiowb()
    x86/io: Remove useless definition of mmiowb()
    arm64/io: Remove useless definition of mmiowb()
    ARM/io: Remove useless definition of mmiowb()
    mmiowb: Hook up mmiowb helpers to spinlocks and generic I/O accessors
    ...

    Linus Torvalds
     

06 May, 2019

10 commits

  • Change trace level to debug to avoid spurious messages.
    Return quietly when accessing iec958 control, while no
    S/PDIF signal is available.

    Signed-off-by: Olivier Moysan
    Signed-off-by: Mark Brown

    Olivier Moysan
     
  • Using scripts/coccinelle/api/stream_open.cocci added in 10dce8af3422
    ("fs: stream_open - opener for stream-like files so that read and write
    can run simultaneously without deadlock"), search and convert to
    stream_open all in-kernel nonseekable_open users for which read and
    write actually do not depend on ppos and where there is no other methods
    in file_operations which assume @offset access.

    I've verified each generated change manually - that it is correct to convert -
    and each other nonseekable_open instance left - that it is either not correct
    to convert there, or that it is not converted due to current stream_open.cocci
    limitations. The script also does not convert files that should be valid to
    convert, but that currently have .llseek = noop_llseek or generic_file_llseek
    for unknown reason despite file being opened with nonseekable_open (e.g.
    drivers/input/mousedev.c)

    Among cases converted 14 were potentially vulnerable to read vs write deadlock
    (see details in 10dce8af3422):

    drivers/char/pcmcia/cm4000_cs.c:1685:7-23: ERROR: cm4000_fops: .read() can deadlock .write(); change nonseekable_open -> stream_open to fix.
    drivers/gnss/core.c:45:1-17: ERROR: gnss_fops: .read() can deadlock .write(); change nonseekable_open -> stream_open to fix.
    drivers/hid/uhid.c:635:1-17: ERROR: uhid_fops: .read() can deadlock .write(); change nonseekable_open -> stream_open to fix.
    drivers/infiniband/core/user_mad.c:988:1-17: ERROR: umad_fops: .read() can deadlock .write(); change nonseekable_open -> stream_open to fix.
    drivers/input/evdev.c:527:1-17: ERROR: evdev_fops: .read() can deadlock .write(); change nonseekable_open -> stream_open to fix.
    drivers/input/misc/uinput.c:401:1-17: ERROR: uinput_fops: .read() can deadlock .write(); change nonseekable_open -> stream_open to fix.
    drivers/isdn/capi/capi.c:963:8-24: ERROR: capi_fops: .read() can deadlock .write(); change nonseekable_open -> stream_open to fix.
    drivers/leds/uleds.c:77:1-17: ERROR: uleds_fops: .read() can deadlock .write(); change nonseekable_open -> stream_open to fix.
    drivers/media/rc/lirc_dev.c:198:1-17: ERROR: lirc_fops: .read() can deadlock .write(); change nonseekable_open -> stream_open to fix.
    drivers/s390/char/fs3270.c:488:1-17: ERROR: fs3270_fops: .read() can deadlock .write(); change nonseekable_open -> stream_open to fix.
    drivers/usb/misc/ldusb.c:310:1-17: ERROR: ld_usb_fops: .read() can deadlock .write(); change nonseekable_open -> stream_open to fix.
    drivers/xen/evtchn.c:667:8-24: ERROR: evtchn_fops: .read() can deadlock .write(); change nonseekable_open -> stream_open to fix.
    net/batman-adv/icmp_socket.c:80:1-17: ERROR: batadv_fops: .read() can deadlock .write(); change nonseekable_open -> stream_open to fix.
    net/rfkill/core.c:1146:8-24: ERROR: rfkill_fops: .read() can deadlock .write(); change nonseekable_open -> stream_open to fix.

    and the rest were just safe to convert to stream_open because their read and
    write do not use ppos at all and corresponding file_operations do not
    have methods that assume @offset file access(*):

    arch/powerpc/platforms/52xx/mpc52xx_gpt.c:631:8-24: WARNING: mpc52xx_wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    arch/powerpc/platforms/cell/spufs/file.c:591:8-24: WARNING: spufs_ibox_fops: .read() has stream semantic; safe to change nonseekable_open -> stream_open.
    arch/powerpc/platforms/cell/spufs/file.c:591:8-24: WARNING: spufs_ibox_stat_fops: .read() has stream semantic; safe to change nonseekable_open -> stream_open.
    arch/powerpc/platforms/cell/spufs/file.c:591:8-24: WARNING: spufs_mbox_fops: .read() has stream semantic; safe to change nonseekable_open -> stream_open.
    arch/powerpc/platforms/cell/spufs/file.c:591:8-24: WARNING: spufs_mbox_stat_fops: .read() has stream semantic; safe to change nonseekable_open -> stream_open.
    arch/powerpc/platforms/cell/spufs/file.c:591:8-24: WARNING: spufs_wbox_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    arch/powerpc/platforms/cell/spufs/file.c:591:8-24: WARNING: spufs_wbox_stat_fops: .read() has stream semantic; safe to change nonseekable_open -> stream_open.
    arch/um/drivers/harddog_kern.c:88:8-24: WARNING: harddog_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    arch/x86/kernel/cpu/microcode/core.c:430:33-49: WARNING: microcode_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/char/ds1620.c:215:8-24: WARNING: ds1620_fops: .read() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/char/dtlk.c:301:1-17: WARNING: dtlk_fops: .read() and .write() have stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/char/ipmi/ipmi_watchdog.c:840:9-25: WARNING: ipmi_wdog_fops: .read() and .write() have stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/char/pcmcia/scr24x_cs.c:95:8-24: WARNING: scr24x_fops: .read() and .write() have stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/char/tb0219.c:246:9-25: WARNING: tb0219_fops: .read() and .write() have stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/firewire/nosy.c:306:8-24: WARNING: nosy_ops: .read() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/hwmon/fschmd.c:840:8-24: WARNING: watchdog_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/hwmon/w83793.c:1344:8-24: WARNING: watchdog_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/infiniband/core/ucma.c:1747:8-24: WARNING: ucma_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/infiniband/core/ucm.c:1178:8-24: WARNING: ucm_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/infiniband/core/uverbs_main.c:1086:8-24: WARNING: uverbs_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/input/joydev.c:282:1-17: WARNING: joydev_fops: .read() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/pci/switch/switchtec.c:393:1-17: WARNING: switchtec_fops: .read() and .write() have stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/platform/chrome/cros_ec_debugfs.c:135:8-24: WARNING: cros_ec_console_log_fops: .read() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/rtc/rtc-ds1374.c:470:9-25: WARNING: ds1374_wdt_fops: .read() and .write() have stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/rtc/rtc-m41t80.c:805:9-25: WARNING: wdt_fops: .read() and .write() have stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/s390/char/tape_char.c:293:2-18: WARNING: tape_fops: .read() and .write() have stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/s390/char/zcore.c:194:8-24: WARNING: zcore_reipl_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/s390/crypto/zcrypt_api.c:528:8-24: WARNING: zcrypt_fops: .read() and .write() have stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/spi/spidev.c:594:1-17: WARNING: spidev_fops: .read() and .write() have stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/staging/pi433/pi433_if.c:974:1-17: WARNING: pi433_fops: .read() and .write() have stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/acquirewdt.c:203:8-24: WARNING: acq_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/advantechwdt.c:202:8-24: WARNING: advwdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/alim1535_wdt.c:252:8-24: WARNING: ali_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/alim7101_wdt.c:217:8-24: WARNING: wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/ar7_wdt.c:166:8-24: WARNING: ar7_wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/at91rm9200_wdt.c:113:8-24: WARNING: at91wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/ath79_wdt.c:135:8-24: WARNING: ath79_wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/bcm63xx_wdt.c:119:8-24: WARNING: bcm63xx_wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/cpu5wdt.c:143:8-24: WARNING: cpu5wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/cpwd.c:397:8-24: WARNING: cpwd_fops: .read() and .write() have stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/eurotechwdt.c:319:8-24: WARNING: eurwdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/f71808e_wdt.c:528:8-24: WARNING: watchdog_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/gef_wdt.c:232:8-24: WARNING: gef_wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/geodewdt.c:95:8-24: WARNING: geodewdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/ib700wdt.c:241:8-24: WARNING: ibwdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/ibmasr.c:326:8-24: WARNING: asr_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/indydog.c:80:8-24: WARNING: indydog_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/intel_scu_watchdog.c:307:8-24: WARNING: intel_scu_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/iop_wdt.c:104:8-24: WARNING: iop_wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/it8712f_wdt.c:330:8-24: WARNING: it8712f_wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/ixp4xx_wdt.c:68:8-24: WARNING: ixp4xx_wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/ks8695_wdt.c:145:8-24: WARNING: ks8695wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/m54xx_wdt.c:88:8-24: WARNING: m54xx_wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/machzwd.c:336:8-24: WARNING: zf_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/mixcomwd.c:153:8-24: WARNING: mixcomwd_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/mtx-1_wdt.c:121:8-24: WARNING: mtx1_wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/mv64x60_wdt.c:136:8-24: WARNING: mv64x60_wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/nuc900_wdt.c:134:8-24: WARNING: nuc900wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/nv_tco.c:164:8-24: WARNING: nv_tco_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/pc87413_wdt.c:289:8-24: WARNING: pc87413_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/pcwd.c:698:8-24: WARNING: pcwd_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/pcwd.c:737:8-24: WARNING: pcwd_temp_fops: .read() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/pcwd_pci.c:581:8-24: WARNING: pcipcwd_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/pcwd_pci.c:623:8-24: WARNING: pcipcwd_temp_fops: .read() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/pcwd_usb.c:488:8-24: WARNING: usb_pcwd_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/pcwd_usb.c:527:8-24: WARNING: usb_pcwd_temperature_fops: .read() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/pika_wdt.c:121:8-24: WARNING: pikawdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/pnx833x_wdt.c:119:8-24: WARNING: pnx833x_wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/rc32434_wdt.c:153:8-24: WARNING: rc32434_wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/rdc321x_wdt.c:145:8-24: WARNING: rdc321x_wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/riowd.c:79:1-17: WARNING: riowd_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/sa1100_wdt.c:62:8-24: WARNING: sa1100dog_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/sbc60xxwdt.c:211:8-24: WARNING: wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/sbc7240_wdt.c:139:8-24: WARNING: wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/sbc8360.c:274:8-24: WARNING: sbc8360_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/sbc_epx_c3.c:81:8-24: WARNING: epx_c3_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/sbc_fitpc2_wdt.c:78:8-24: WARNING: fitpc2_wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/sb_wdog.c:108:1-17: WARNING: sbwdog_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/sc1200wdt.c:181:8-24: WARNING: sc1200wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/sc520_wdt.c:261:8-24: WARNING: wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/sch311x_wdt.c:319:8-24: WARNING: sch311x_wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/scx200_wdt.c:105:8-24: WARNING: scx200_wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/smsc37b787_wdt.c:369:8-24: WARNING: wb_smsc_wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/w83877f_wdt.c:227:8-24: WARNING: wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/w83977f_wdt.c:301:8-24: WARNING: wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/wafer5823wdt.c:200:8-24: WARNING: wafwdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/watchdog_dev.c:828:8-24: WARNING: watchdog_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/wdrtas.c:379:8-24: WARNING: wdrtas_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/wdrtas.c:445:8-24: WARNING: wdrtas_temp_fops: .read() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/wdt285.c:104:1-17: WARNING: watchdog_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/wdt977.c:276:8-24: WARNING: wdt977_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/wdt.c:424:8-24: WARNING: wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/wdt.c:484:8-24: WARNING: wdt_temp_fops: .read() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/wdt_pci.c:464:8-24: WARNING: wdtpci_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open.
    drivers/watchdog/wdt_pci.c:527:8-24: WARNING: wdtpci_temp_fops: .read() has stream semantic; safe to change nonseekable_open -> stream_open.
    net/batman-adv/log.c:105:1-17: WARNING: batadv_log_fops: .read() has stream semantic; safe to change nonseekable_open -> stream_open.
    sound/core/control.c:57:7-23: WARNING: snd_ctl_f_ops: .read() has stream semantic; safe to change nonseekable_open -> stream_open.
    sound/core/rawmidi.c:385:7-23: WARNING: snd_rawmidi_f_ops: .read() and .write() have stream semantic; safe to change nonseekable_open -> stream_open.
    sound/core/seq/seq_clientmgr.c:310:7-23: WARNING: snd_seq_f_ops: .read() and .write() have stream semantic; safe to change nonseekable_open -> stream_open.
    sound/core/timer.c:1428:7-23: WARNING: snd_timer_f_ops: .read() has stream semantic; safe to change nonseekable_open -> stream_open.

    One can also recheck/review the patch via generating it with explanation comments included via

    $ make coccicheck MODE=patch COCCI=scripts/coccinelle/api/stream_open.cocci SPFLAGS="-D explain"

    (*) This second group also contains cases with read/write deadlocks that
    stream_open.cocci don't yet detect, but which are still valid to convert to
    stream_open since ppos is not used. For example drivers/pci/switch/switchtec.c
    calls wait_for_completion_interruptible() in its .read, but stream_open.cocci
    currently detects only "wait_event*" as blocking.

    Cc: Michael Kerrisk
    Cc: Yongzhi Pan
    Cc: Jonathan Corbet
    Cc: David Vrabel
    Cc: Juergen Gross
    Cc: Miklos Szeredi
    Cc: Tejun Heo
    Cc: Kirill Tkhai
    Cc: Arnd Bergmann
    Cc: Christoph Hellwig
    Cc: Greg Kroah-Hartman
    Cc: Julia Lawall
    Cc: Nikolaus Rath
    Cc: Han-Wen Nienhuys
    Cc: Anatolij Gustschin
    Cc: Jeff Dike
    Cc: Richard Weinberger
    Cc: Anton Ivanov
    Cc: Borislav Petkov
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: "James R. Van Zandt"
    Cc: Corey Minyard
    Cc: Harald Welte
    Acked-by: Lubomir Rintel [scr24x_cs]
    Cc: Stefan Richter
    Cc: Johan Hovold
    Cc: David Herrmann
    Cc: Jiri Kosina
    Cc: Benjamin Tissoires
    Cc: Jean Delvare
    Acked-by: Guenter Roeck [watchdog/* hwmon/*]
    Cc: Rudolf Marek
    Cc: Dmitry Torokhov
    Cc: Karsten Keil
    Cc: Jacek Anaszewski
    Cc: Pavel Machek
    Cc: Mauro Carvalho Chehab
    Cc: Kurt Schwemmer
    Acked-by: Logan Gunthorpe [drivers/pci/switch/switchtec]
    Acked-by: Bjorn Helgaas [drivers/pci/switch/switchtec]
    Cc: Benson Leung
    Acked-by: Enric Balletbo i Serra [platform/chrome]
    Cc: Alessandro Zummo
    Acked-by: Alexandre Belloni [rtc/*]
    Cc: Mark Brown
    Cc: Wim Van Sebroeck
    Cc: Florian Fainelli
    Cc: bcm-kernel-feedback-list@broadcom.com
    Cc: Wan ZongShun
    Cc: Zwane Mwaikambo
    Cc: Marek Lindner
    Cc: Simon Wunderlich
    Cc: Antonio Quartulli
    Cc: "David S. Miller"
    Cc: Johannes Berg
    Cc: Jaroslav Kysela
    Cc: Takashi Iwai
    Signed-off-by: Kirill Smelkov

    Kirill Smelkov
     
  • - Set period minimum size. Ensure at least 5ms period
    up to 48kHz/16 bits to prevent underrun/overrun.
    - Remove MDMA constraints on period maximum size and
    set period maximum to half the buffer maximum size.

    Signed-off-by: Olivier Moysan
    Signed-off-by: Mark Brown

    Olivier Moysan
     
  • The max98090 driver defines 3 DAPM muxes; one for the right line output
    (LINMOD Mux), one for the left headphone mixer source (MIXHPLSEL Mux)
    and one for the right headphone mixer source (MIXHPRSEL Mux). The same
    bit is used for the mux as well as the DAPM enable, and although the mux
    can be correctly configured, after playback has completed, the mux will
    be reset during the disable phase. This is preventing the state of these
    muxes from being saved and restored correctly on system reboot. Fix this
    by marking these muxes as SND_SOC_NOPM.

    Note this has been verified this on the Tegra124 Nyan Big which features
    the MAX98090 codec.

    Signed-off-by: Jon Hunter
    Signed-off-by: Mark Brown
    Cc: stable@vger.kernel.org

    Jon Hunter
     
  • The current algorithm allows 3 types of transfers, 16bit, 32bit and
    burst. According to Realtek, 16bit transfers have a special restriction
    in that it is restricted to the memory region of
    0x18020000 ~ 0x18021000. This region is the memory location of the I2C
    registers. The current algorithm does not uphold this restriction and
    therefore fails to complete writes.

    Since this has been broken for some time it likely no one is using it.
    Better to simply disable the 16 bit writes. This will allow users to
    properly load firmware over SPI without data corruption.

    Signed-off-by: Curtis Malainey
    Reviewed-by: Ben Zhang
    Signed-off-by: Mark Brown
    Cc: stable@vger.kernel.org

    Curtis Malainey
     
  • On the machines with AMD GPU or Nvidia GPU, we often meet this issue:
    after s3, there are 4 HDMI/DP audio devices in the gnome-sound-setting
    even there is no any monitors plugged.

    When this problem happens, we check the /proc/asound/cardX/eld#N.M, we
    will find the monitor_present=1, eld_valid=0.

    The root cause is BIOS or GPU driver makes the PRESENCE valid even no
    monitor plugged, and of course the driver will not get the valid
    eld_data subsequently.

    In this situation, we should not report the jack_plugged event, to do
    so, let us change the function hdmi_present_sense_via_verbs(). In this
    function, it reads the pin_sense via snd_hda_pin_sense(), after
    calling this function, the jack_dirty is 0, and before exiting
    via_verbs(), we change the shadow pin_sense according to both
    monitor_present and eld_valid, then in the snd_hda_jack_report_sync(),
    since the jack_dirty is still 0, it will report jack event according
    to this modified shadow pin_sense.

    After this change, the driver will not report Jack_is_plugged event
    through hdmi_present_sense_via_verbs() if monitor_present is 1 and
    eld_valid is 0.

    Signed-off-by: Hui Wang
    Cc:
    Signed-off-by: Takashi Iwai

    Hui Wang
     
  • The driver will check the monitor presence when resuming from suspend,
    starting poll or interrupt triggers. In these 3 situations, the
    jack_dirty will be set to 1 first, then the hda_jack.c reads the
    pin_sense from register, after reading the register, the jack_dirty
    will be set to 0. But hdmi_repoll_work() is enabled in these 3
    situations, It will read the pin_sense a couple of times subsequently,
    since the jack_dirty is 0 now, It does not read the register anymore,
    instead it uses the shadow pin_sense which is read at the first time.

    It is meaningless to check the shadow pin_sense a couple of times,
    we need to read the register to check the real plugging state, so
    we set the jack_dirty to 1 in the hdmi_repoll_work().

    Signed-off-by: Hui Wang
    Cc:
    Signed-off-by: Takashi Iwai

    Hui Wang
     
  • …/sound into for-linus

    ASoC: Updates for v5.2

    This is a pretty huge set of changes, it's been a pretty active release
    all round but the big thing with this release is the Sound Open Firmware
    changes from Intel, providing another DSP framework for use with the
    DSPs in their SoCs. This one works with the firmware of the same name
    which is free software (unlike the previous DSP firmwares and framework)
    and there has been some interest in adoption by other systems already so
    hopefully we will see adoption by other vendors in the future.

    Other highlights include:

    - Support for MCLK/sample rate ratio setting in the generic cards.
    - Support for pin switches in the generic cards.
    - A big set of improvements to the TLV320AIC32x4 drivers from Annaliese
    McDermond.
    - New drivers for Freescale audio mixers, several Intel machines,
    several Mediatek machines, Meson G12A, Sound Open Firmware and
    Spreadtrum compressed audio and DMA devices.

    Takashi Iwai
     
  • Mark Brown
     
  • Mark Brown