]> Git Repo - linux.git/commitdiff
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux...
authorLinus Torvalds <[email protected]>
Thu, 16 May 2019 14:56:57 +0000 (07:56 -0700)
committerLinus Torvalds <[email protected]>
Thu, 16 May 2019 14:56:57 +0000 (07:56 -0700)
Pull thermal soc updates from Eduardo Valentin:

 - thermal core has a new devm_* API for registering cooling devices. I
   took the entire series, that is why you see changes on drivers/hwmon
   in this pull (Guenter Roeck)

 - rockchip thermal driver gains support to PX30 SoC (Elaine Zhang)

 - the generic-adc thermal driver now considers the lookup table DT
   property as optional (Jean-Francois Dagenais)

 - Refactoring of tsens thermal driver (Amit Kucheria)

 - Cleanups on cpu cooling driver (Daniel Lezcano)

 - broadcom thermal driver dropped support to ACPI (Srinath Mannam)

 - tegra thermal driver gains support to OC hw throttle and GPU throtle
   (Wei Ni)

 - Fixes in several thermal drivers.

* 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal: (59 commits)
  hwmon: (pwm-fan) Use devm_thermal_of_cooling_device_register
  hwmon: (npcm750-pwm-fan) Use devm_thermal_of_cooling_device_register
  hwmon: (mlxreg-fan) Use devm_thermal_of_cooling_device_register
  hwmon: (gpio-fan) Use devm_thermal_of_cooling_device_register
  hwmon: (aspeed-pwm-tacho) Use devm_thermal_of_cooling_device_register
  thermal: rcar_gen3_thermal: Fix to show correct trip points number
  thermal: rcar_thermal: update calculation formula for R-Car Gen3 SoCs
  thermal: cpu_cooling: Actually trace CPU load in thermal_power_cpu_get_power
  thermal: rockchip: Support the PX30 SoC in thermal driver
  dt-bindings: rockchip-thermal: Support the PX30 SoC compatible
  thermal: rockchip: fix up the tsadc pinctrl setting error
  thermal: broadcom: Remove ACPI support
  thermal: Fix build error of missing devm_ioremap_resource on UM
  thermal/drivers/cpu_cooling: Remove pointless field
  thermal/drivers/cpu_cooling: Add Software Package Data Exchange (SPDX)
  thermal/drivers/cpu_cooling: Fixup the header and copyright
  thermal/drivers/cpu_cooling: Remove pointless test in power2state()
  thermal: rcar_gen3_thermal: disable interrupt in .remove
  thermal: rcar_gen3_thermal: fix interrupt type
  thermal: Introduce devm_thermal_of_cooling_device_register
  ...

1  2 
MAINTAINERS
drivers/hwmon/mlxreg-fan.c
drivers/hwmon/npcm750-pwm-fan.c
drivers/hwmon/pwm-fan.c

diff --combined MAINTAINERS
index ee6cf4d1010c2b989e3fb64de99a97fd898e5a4e,4d08f59bdc3ed67f50bcc4dc41fe6ec5c436db29..59efb8bd33e00fba904f8bdc61c7604aa0c1417a
@@@ -268,13 -268,12 +268,13 @@@ L:      [email protected]
  S:    Maintained
  F:    drivers/gpio/gpio-104-idio-16.c
  
 -ACCES 104-QUAD-8 IIO DRIVER
 +ACCES 104-QUAD-8 DRIVER
  M:    William Breathitt Gray <[email protected]>
  L:    [email protected]
  S:    Maintained
 +F:    Documentation/ABI/testing/sysfs-bus-counter-104-quad-8
  F:    Documentation/ABI/testing/sysfs-bus-iio-counter-104-quad-8
 -F:    drivers/iio/counter/104-quad-8.c
 +F:    drivers/counter/104-quad-8.c
  
  ACCES PCI-IDIO-16 GPIO DRIVER
  M:    William Breathitt Gray <[email protected]>
@@@ -469,7 -468,7 +469,7 @@@ ADM1025 HARDWARE MONITOR DRIVE
  M:    Jean Delvare <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/hwmon/adm1025
 +F:    Documentation/hwmon/adm1025.rst
  F:    drivers/hwmon/adm1025.c
  
  ADM1029 HARDWARE MONITOR DRIVER
@@@ -521,7 -520,7 +521,7 @@@ ADS1015 HARDWARE MONITOR DRIVE
  M:    Dirk Eibach <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/hwmon/ads1015
 +F:    Documentation/hwmon/ads1015.rst
  F:    drivers/hwmon/ads1015.c
  F:    include/linux/platform_data/ads1015.h
  
@@@ -534,7 -533,7 +534,7 @@@ ADT7475 HARDWARE MONITOR DRIVE
  M:    Jean Delvare <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/hwmon/adt7475
 +F:    Documentation/hwmon/adt7475.rst
  F:    drivers/hwmon/adt7475.c
  
  ADVANSYS SCSI DRIVER
@@@ -710,12 -709,6 +710,12 @@@ L:       [email protected]
  S:    Maintained
  F:    drivers/gpio/gpio-altera.c
  
 +ALTERA SYSTEM MANAGER DRIVER
 +M:    Thor Thayer <[email protected]>
 +S:    Maintained
 +F:    drivers/mfd/altera-sysmgr.c
 +F:    include/linux/mfd/altera-sysgmr.h
 +
  ALTERA SYSTEM RESOURCE DRIVER FOR ARRIA10 DEVKIT
  M:    Thor Thayer <[email protected]>
  S:    Maintained
@@@ -742,6 -735,6 +742,12 @@@ F:        drivers/tty/serial/altera_jtaguart.
  F:    include/linux/altera_uart.h
  F:    include/linux/altera_jtaguart.h
  
++AMAZON ANNAPURNA LABS THERMAL MMIO DRIVER
++M:    Talel Shenhar <[email protected]>
++S:    Maintained
++F:    Documentation/devicetree/bindings/thermal/amazon,al-thermal.txt
++F:    drivers/thermal/thermal_mmio.c
++
  AMAZON ETHERNET DRIVERS
  M:    Netanel Belgazal <[email protected]>
  R:    Saeed Bishara <[email protected]>
@@@ -751,14 -744,11 +757,14 @@@ S:      Supporte
  F:    Documentation/networking/device_drivers/amazon/ena.txt
  F:    drivers/net/ethernet/amazon/
  
 -AMAZON ANNAPURNA LABS THERMAL MMIO DRIVER
 -M:    Talel Shenhar <[email protected]>
 -S:    Maintained
 -F:    Documentation/devicetree/bindings/thermal/amazon,al-thermal.txt
 -F:    drivers/thermal/thermal_mmio.c
 +AMAZON RDMA EFA DRIVER
 +M:    Gal Pressman <[email protected]>
 +R:    Yossi Leybovich <[email protected]>
 +L:    [email protected]
 +Q:    https://patchwork.kernel.org/project/linux-rdma/list/
 +S:    Supported
 +F:    drivers/infiniband/hw/efa/
 +F:    include/uapi/rdma/efa-abi.h
  
  AMD CRYPTOGRAPHIC COPROCESSOR (CCP) DRIVER
  M:    Tom Lendacky <[email protected]>
@@@ -780,7 -770,7 +786,7 @@@ AMD FAM15H PROCESSOR POWER MONITORING D
  M:    Huang Rui <[email protected]>
  L:    [email protected]
  S:    Supported
 -F:    Documentation/hwmon/fam15h_power
 +F:    Documentation/hwmon/fam15h_power.rst
  F:    drivers/hwmon/fam15h_power.c
  
  AMD FCH GPIO DRIVER
@@@ -832,14 -822,6 +838,14 @@@ F:       drivers/gpu/drm/amd/include/vi_struc
  F:    drivers/gpu/drm/amd/include/v9_structs.h
  F:    include/uapi/linux/kfd_ioctl.h
  
 +AMD MP2 I2C DRIVER
 +M:    Elie Morisse <[email protected]>
 +M:    Nehal Shah <[email protected]>
 +M:    Shyam Sundar S K <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/i2c/busses/i2c-amd-mp2*
 +
  AMD POWERPLAY
  M:    Rex Zhu <[email protected]>
  M:    Evan Quan <[email protected]>
  W:    http://ez.analog.com/community/linux-device-drivers
  S:    Supported
  F:    drivers/iio/adc/ad7606.c
 -F:    Documentation/devicetree/bindings/iio/adc/ad7606.txt
 +F:    Documentation/devicetree/bindings/iio/adc/adi,ad7606.txt
  
  ANALOG DEVICES INC AD7768-1 DRIVER
  M:    Stefan Popa <[email protected]>
@@@ -974,7 -956,6 +980,7 @@@ F: drivers/dma/dma-axi-dmac.
  ANALOG DEVICES INC IIO DRIVERS
  M:    Lars-Peter Clausen <[email protected]>
  M:    Michael Hennerich <[email protected]>
 +M:    Stefan Popa <[email protected]>
  W:    http://wiki.analog.com/
  W:    http://ez.analog.com/community/linux-device-drivers
  S:    Supported
@@@ -985,12 -966,6 +991,12 @@@ F:       drivers/iio/adc/ltc2497
  X:    drivers/iio/*/adjd*
  F:    drivers/staging/iio/*/ad*
  
 +ANALOGBITS PLL LIBRARIES
 +M:    Paul Walmsley <[email protected]>
 +S:    Supported
 +F:    drivers/clk/analogbits/*
 +F:    include/linux/clk/analogbits*
 +
  ANDES ARCHITECTURE
  M:    Greentime Hu <[email protected]>
  M:    Vincent Chen <[email protected]>
@@@ -1198,7 -1173,7 +1204,7 @@@ S:      Supporte
  T:    git git://linux-arm.org/linux-ld.git for-upstream/mali-dp
  F:    drivers/gpu/drm/arm/display/include/
  F:    drivers/gpu/drm/arm/display/komeda/
 -F:    Documentation/devicetree/bindings/display/arm/arm,komeda.txt
 +F:    Documentation/devicetree/bindings/display/arm,komeda.txt
  F:    Documentation/gpu/komeda-kms.rst
  
  ARM MALI-DP DRM DRIVER
@@@ -1211,15 -1186,6 +1217,15 @@@ F:    drivers/gpu/drm/arm
  F:    Documentation/devicetree/bindings/display/arm,malidp.txt
  F:    Documentation/gpu/afbc.rst
  
 +ARM MALI PANFROST DRM DRIVER
 +M:    Rob Herring <[email protected]>
 +M:    Tomeu Vizoso <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
 +F:    drivers/gpu/drm/panfrost/
 +F:    include/uapi/drm/panfrost_drm.h
 +
  ARM MFM AND FLOPPY DRIVERS
  M:    Ian Molton <[email protected]>
  S:    Maintained
@@@ -1456,9 -1422,7 +1462,9 @@@ M:      Manivannan Sadhasivam <manivannan.sa
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  F:    arch/arm64/boot/dts/bitmain/
 +F:    drivers/pinctrl/pinctrl-bm1880.c
  F:    Documentation/devicetree/bindings/arm/bitmain.yaml
 +F:    Documentation/devicetree/bindings/pinctrl/bitmain,bm1880-pinctrl.txt
  
  ARM/CALXEDA HIGHBANK ARCHITECTURE
  M:    Rob Herring <[email protected]>
@@@ -2555,7 -2519,7 +2561,7 @@@ ASC7621 HARDWARE MONITOR DRIVE
  M:    George Joseph <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/hwmon/asc7621
 +F:    Documentation/hwmon/asc7621.rst
  F:    drivers/hwmon/asc7621.c
  
  ASPEED VIDEO ENGINE DRIVER
@@@ -2602,7 -2566,7 +2608,7 @@@ F:      include/linux/dmaengine.
  F:    include/linux/async_tx.h
  
  AT24 EEPROM DRIVER
 -M:    Bartosz Golaszewski <b[email protected]>
 +M:    Bartosz Golaszewski <b[email protected]>
  L:    [email protected]
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux.git
  S:    Maintained
@@@ -2836,13 -2800,10 +2842,13 @@@ M:   Simon Wunderlich <sw@simonwunderlich
  M:    Antonio Quartulli <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  W:    https://www.open-mesh.org/
 +B:    https://www.open-mesh.org/projects/batman-adv/issues
 +C:    irc://chat.freenode.net/batman
  Q:    https://patchwork.open-mesh.org/project/batman/list/
 +T:    git https://git.open-mesh.org/linux-merge.git
  S:    Maintained
 -F:    Documentation/ABI/testing/sysfs-class-net-batman-adv
 -F:    Documentation/ABI/testing/sysfs-class-net-mesh
 +F:    Documentation/ABI/obsolete/sysfs-class-net-batman-adv
 +F:    Documentation/ABI/obsolete/sysfs-class-net-mesh
  F:    Documentation/networking/batman-adv.rst
  F:    include/uapi/linux/batadv_packet.h
  F:    include/uapi/linux/batman_adv.h
@@@ -3398,7 -3359,7 +3404,7 @@@ F:      include/uapi/linux/bsg.
  BT87X AUDIO DRIVER
  M:    Clemens Ladisch <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
 -T:    git git://git.alsa-project.org/alsa-kernel.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
  S:    Maintained
  F:    Documentation/sound/cards/bt87x.rst
  F:    sound/pci/bt87x.c
@@@ -3451,7 -3412,7 +3457,7 @@@ F:      drivers/scsi/FlashPoint.
  C-MEDIA CMI8788 DRIVER
  M:    Clemens Ladisch <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
 -T:    git git://git.alsa-project.org/alsa-kernel.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
  S:    Maintained
  F:    sound/pci/oxygen/
  
@@@ -3775,8 -3736,8 +3781,8 @@@ F:      scripts/checkpatch.p
  
  CHINESE DOCUMENTATION
  M:    Harry Wei <[email protected]>
 +M:    Alex Shi <[email protected]>
  L:    [email protected] (subscribers-only)
 -L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  F:    Documentation/translations/zh_CN/
  
@@@ -3843,21 -3804,16 +3849,21 @@@ M:   Richard Fitzgerald <[email protected]
  L:    [email protected]
  S:    Supported
  F:    drivers/clk/clk-lochnagar.c
 +F:    drivers/hwmon/lochnagar-hwmon.c
  F:    drivers/mfd/lochnagar-i2c.c
  F:    drivers/pinctrl/cirrus/pinctrl-lochnagar.c
  F:    drivers/regulator/lochnagar-regulator.c
 +F:    sound/soc/codecs/lochnagar-sc.c
  F:    include/dt-bindings/clk/lochnagar.h
  F:    include/dt-bindings/pinctrl/lochnagar.h
  F:    include/linux/mfd/lochnagar*
  F:    Documentation/devicetree/bindings/mfd/cirrus,lochnagar.txt
  F:    Documentation/devicetree/bindings/clock/cirrus,lochnagar.txt
 +F:    Documentation/devicetree/bindings/hwmon/cirrus,lochnagar.txt
  F:    Documentation/devicetree/bindings/pinctrl/cirrus,lochnagar.txt
  F:    Documentation/devicetree/bindings/regulator/cirrus,lochnagar.txt
 +F:    Documentation/devicetree/bindings/sound/cirrus,lochnagar.txt
 +F:    Documentation/hwmon/lochnagar
  
  CISCO FCOE HBA DRIVER
  M:    Satish Kharat <[email protected]>
@@@ -4095,7 -4051,7 +4101,7 @@@ CORETEMP HARDWARE MONITORING DRIVE
  M:    Fenghua Yu <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/hwmon/coretemp
 +F:    Documentation/hwmon/coretemp.rst
  F:    drivers/hwmon/coretemp.c
  
  COSA/SRP SYNC SERIAL DRIVER
@@@ -4104,16 -4060,6 +4110,16 @@@ W:    http://www.fi.muni.cz/~kas/cosa
  S:    Maintained
  F:    drivers/net/wan/cosa*
  
 +COUNTER SUBSYSTEM
 +M:    William Breathitt Gray <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/ABI/testing/sysfs-bus-counter*
 +F:    Documentation/driver-api/generic-counter.rst
 +F:    drivers/counter/
 +F:    include/linux/counter.h
 +F:    include/linux/counter_enum.h
 +
  CPMAC ETHERNET DRIVER
  M:    Florian Fainelli <[email protected]>
  L:    [email protected]
@@@ -4133,9 -4079,7 +4139,9 @@@ F:      Documentation/admin-guide/pm/intel_p
  F:    Documentation/cpu-freq/
  F:    Documentation/devicetree/bindings/cpufreq/
  F:    drivers/cpufreq/
 +F:    kernel/sched/cpufreq*.c
  F:    include/linux/cpufreq.h
 +F:    include/linux/sched/cpufreq.h
  F:    tools/testing/selftests/cpufreq/
  
  CPU FREQUENCY DRIVERS - ARM BIG LITTLE
@@@ -4310,7 -4254,7 +4316,7 @@@ S:      Supporte
  F:    drivers/scsi/cxgbi/cxgb3i
  
  CXGB3 IWARP RNIC DRIVER (IW_CXGB3)
 -M:    Steve Wise <swise@chelsio.com>
 +M:    Potnuri Bharat Teja <bharat@chelsio.com>
  L:    [email protected]
  W:    http://www.openfabrics.org
  S:    Supported
@@@ -4318,7 -4262,7 +4324,7 @@@ F:      drivers/infiniband/hw/cxgb3
  F:    include/uapi/rdma/cxgb3-abi.h
  
  CXGB4 CRYPTO DRIVER (chcr)
 -M:    Harsh Jain <harsh@chelsio.com>
 +M:    Atul Gupta <atul.gupta@chelsio.com>
  L:    [email protected]
  W:    http://www.chelsio.com
  S:    Supported
@@@ -4339,7 -4283,7 +4345,7 @@@ S:      Supporte
  F:    drivers/scsi/cxgbi/cxgb4i
  
  CXGB4 IWARP RNIC DRIVER (IW_CXGB4)
 -M:    Steve Wise <swise@chelsio.com>
 +M:    Potnuri Bharat Teja <bharat@chelsio.com>
  L:    [email protected]
  W:    http://www.openfabrics.org
  S:    Supported
@@@ -4355,7 -4299,7 +4361,7 @@@ F:      drivers/net/ethernet/chelsio/cxgb4vf
  
  CXL (IBM Coherent Accelerator Processor Interface CAPI) DRIVER
  M:    Frederic Barrat <[email protected]>
 -M:    Andrew Donnellan <andrew.donnellan@au1.ibm.com>
 +M:    Andrew Donnellan <ajd@linux.ibm.com>
  L:    [email protected]
  S:    Supported
  F:    arch/powerpc/platforms/powernv/pci-cxl.c
@@@ -4615,7 -4559,6 +4621,7 @@@ S:      Maintaine
  F:    drivers/devfreq/
  F:    include/linux/devfreq.h
  F:    Documentation/devicetree/bindings/devfreq/
 +F:    include/trace/events/devfreq.h
  
  DEVICE FREQUENCY EVENT (DEVFREQ-EVENT)
  M:    Chanwoo Choi <[email protected]>
@@@ -4663,7 -4606,7 +4669,7 @@@ DIALOG SEMICONDUCTOR DRIVER
  M:    Support Opensource <[email protected]>
  W:    http://www.dialog-semiconductor.com/products
  S:    Supported
 -F:    Documentation/hwmon/da90??
 +F:    Documentation/hwmon/da90??.rst
  F:    Documentation/devicetree/bindings/mfd/da90*.txt
  F:    Documentation/devicetree/bindings/input/da90??-onkey.txt
  F:    Documentation/devicetree/bindings/thermal/da90??-thermal.txt
@@@ -4814,7 -4757,7 +4820,7 @@@ DME1737 HARDWARE MONITOR DRIVE
  M:    Juerg Haefliger <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/hwmon/dme1737
 +F:    Documentation/hwmon/dme1737.rst
  F:    drivers/hwmon/dme1737.c
  
  DMI/SMBIOS SUPPORT
@@@ -4959,14 -4902,6 +4965,14 @@@ M:    Dave Airlie <[email protected]
  S:    Odd Fixes
  F:    drivers/gpu/drm/ast/
  
 +DRM DRIVER FOR ASPEED BMC GFX
 +M:    Joel Stanley <[email protected]>
 +L:    [email protected]
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
 +S:    Supported
 +F:    drivers/gpu/drm/aspeed/
 +F:    Documentation/devicetree/bindings/gpu/aspeed-gfx.txt
 +
  DRM DRIVER FOR BOCHS VIRTUAL GPU
  M:    Gerd Hoffmann <[email protected]>
  L:    [email protected]
@@@ -4980,12 -4915,6 +4986,12 @@@ T:    git git://anongit.freedesktop.org/dr
  S:    Maintained
  F:    drivers/gpu/drm/tve200/
  
 +DRM DRIVER FOR FEIYANG FY07024DI26A30-D MIPI-DSI LCD PANELS
 +M:    Jagan Teki <[email protected]>
 +S:    Maintained
 +F:    drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c
 +F:    Documentation/devicetree/bindings/display/panel/feiyang,fy07024di26a30d.txt
 +
  DRM DRIVER FOR ILITEK ILI9225 PANELS
  M:    David Lechner <[email protected]>
  S:    Maintained
@@@ -5077,12 -5006,6 +5083,12 @@@ S:    Orphan / Obsolet
  F:    drivers/gpu/drm/r128/
  F:    include/uapi/drm/r128_drm.h
  
 +DRM DRIVER FOR ROCKTECH JH057N00900 PANELS
 +M:    Guido Günther <[email protected]>
 +S:    Maintained
 +F:    drivers/gpu/drm/panel/panel-rocktech-jh057n00900.c
 +F:    Documentation/devicetree/bindings/display/panel/rocktech,jh057n00900.txt
 +
  DRM DRIVER FOR SAVAGE VIDEO CARDS
  S:    Orphan / Obsolete
  F:    drivers/gpu/drm/savage/
@@@ -5130,13 -5053,6 +5136,13 @@@ S:    Odd Fixe
  F:    drivers/gpu/drm/udl/
  T:    git git://anongit.freedesktop.org/drm/drm-misc
  
 +DRM DRIVER FOR VIRTUALBOX VIRTUAL GPU
 +M:    Hans de Goede <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/gpu/drm/vboxvideo/
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
 +
  DRM DRIVER FOR VIRTUAL KERNEL MODESETTING (VKMS)
  M:    Rodrigo Siqueira <[email protected]>
  R:    Haneen Mohammed <[email protected]>
@@@ -5271,15 -5187,6 +5277,15 @@@ S:    Maintaine
  F:    drivers/gpu/drm/hisilicon/
  F:    Documentation/devicetree/bindings/display/hisilicon/
  
 +DRM DRIVERS FOR LIMA
 +M:    Qiang Yu <[email protected]>
 +L:    [email protected]
 +L:    [email protected] (moderated for non-subscribers)
 +S:    Maintained
 +F:    drivers/gpu/drm/lima/
 +F:    include/uapi/drm/lima_drm.h
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
 +
  DRM DRIVERS FOR MEDIATEK
  M:    CK Hu <[email protected]>
  M:    Philipp Zabel <[email protected]>
  S:    Maintained
  F:    drivers/edac/ghes_edac.c
  
 +EDAC-I10NM
 +M:    Tony Luck <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/edac/i10nm_base.c
 +
  EDAC-I3000
  L:    [email protected]
  S:    Orphan
@@@ -5784,7 -5685,7 +5790,7 @@@ EDAC-SKYLAK
  M:    Tony Luck <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    drivers/edac/skx_edac.c
 +F:    drivers/edac/skx_*.c
  
  EDAC-TI
  M:    Tero Kristo <[email protected]>
@@@ -5803,7 -5704,7 +5809,7 @@@ F:      drivers/edac/qcom_edac.
  EDIROL UA-101/UA-1000 DRIVER
  M:    Clemens Ladisch <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
 -T:    git git://git.alsa-project.org/alsa-kernel.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
  S:    Maintained
  F:    sound/usb/misc/ua101.c
  
@@@ -6042,7 -5943,7 +6048,7 @@@ F71805F HARDWARE MONITORING DRIVE
  M:    Jean Delvare <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/hwmon/f71805f
 +F:    Documentation/hwmon/f71805f.rst
  F:    drivers/hwmon/f71805f.c
  
  FADDR2LINE
@@@ -6143,7 -6044,7 +6149,7 @@@ F:      include/linux/f75375s.
  FIREWIRE AUDIO DRIVERS
  M:    Clemens Ladisch <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
 -T:    git git://git.alsa-project.org/alsa-kernel.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
  S:    Maintained
  F:    sound/firewire/
  
@@@ -6567,7 -6468,7 +6573,7 @@@ S:      Maintaine
  F:    drivers/media/radio/radio-gemtek*
  
  GENERIC GPIO I2C DRIVER
 -M:    Haavard Skinnemoen <hskinnemoen@gmail.com>
 +M:    Wolfram Sang <wsa+renesas@sang-engineering.com>
  S:    Supported
  F:    drivers/i2c/busses/i2c-gpio.c
  F:    include/linux/platform_data/i2c-gpio.h
@@@ -6699,7 -6600,7 +6705,7 @@@ M:      Andy Shevchenko <andriy.shevchenko@l
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/acpi/gpio-properties.txt
 +F:    Documentation/firmware-guide/acpi/gpio-properties.rst
  F:    drivers/gpio/gpiolib-acpi.c
  
  GPIO IR Transmitter
@@@ -7491,12 -7392,13 +7497,12 @@@ S:   Supporte
  F:    drivers/net/ethernet/ibm/ibmvnic.*
  
  IBM Power Virtual Accelerator Switchboard
 -M:    Sukadev Bhattiprolu
 +M:    Sukadev Bhattiprolu <[email protected]>
  L:    [email protected]
  S:    Supported
  F:    arch/powerpc/platforms/powernv/vas*
  F:    arch/powerpc/platforms/powernv/copy-paste.h
  F:    arch/powerpc/include/asm/vas.h
 -F:    arch/powerpc/include/uapi/asm/vas.h
  
  IBM Power Virtual Ethernet Device Driver
  M:    Thomas Falcon <[email protected]>
@@@ -7543,14 -7445,14 +7549,14 @@@ F:   drivers/crypto/vmx/ghash
  F:    drivers/crypto/vmx/ppc-xlate.pl
  
  IBM Power PCI Hotplug Driver for RPA-compliant PPC64 platform
 -M:    Tyrel Datwyler <tyreld@linux.vnet.ibm.com>
 +M:    Tyrel Datwyler <[email protected]>
  L:    [email protected]
  L:    [email protected]
  S:    Supported
  F:    drivers/pci/hotplug/rpaphp*
  
  IBM Power IO DLPAR Driver for RPA-compliant PPC64 platform
 -M:    Tyrel Datwyler <tyreld@linux.vnet.ibm.com>
 +M:    Tyrel Datwyler <[email protected]>
  L:    [email protected]
  L:    [email protected]
  S:    Supported
@@@ -7722,7 -7624,7 +7728,7 @@@ INA209 HARDWARE MONITOR DRIVE
  M:    Guenter Roeck <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/hwmon/ina209
 +F:    Documentation/hwmon/ina209.rst
  F:    Documentation/devicetree/bindings/hwmon/ina2xx.txt
  F:    drivers/hwmon/ina209.c
  
@@@ -7730,7 -7632,7 +7736,7 @@@ INA2XX HARDWARE MONITOR DRIVE
  M:    Guenter Roeck <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/hwmon/ina2xx
 +F:    Documentation/hwmon/ina2xx.rst
  F:    drivers/hwmon/ina2xx.c
  F:    include/linux/platform_data/ina2xx.h
  
@@@ -7757,10 -7659,6 +7763,10 @@@ F:    drivers/infiniband
  F:    include/uapi/linux/if_infiniband.h
  F:    include/uapi/rdma/
  F:    include/rdma/
 +F:    include/trace/events/ib_mad.h
 +F:    include/trace/events/ib_umad.h
 +F:    samples/bpf/ibumad_kern.c
 +F:    samples/bpf/ibumad_user.c
  
  INGENIC JZ4780 DMA Driver
  M:    Zubair Lutfullah Kakakhel <[email protected]>
@@@ -8154,7 -8052,6 +8160,7 @@@ F:      drivers/gpio/gpio-intel-mid.
  
  INTERCONNECT API
  M:    Georgi Djakov <[email protected]>
 +L:    [email protected]
  S:    Maintained
  F:    Documentation/interconnect/
  F:    Documentation/devicetree/bindings/interconnect/
@@@ -8363,7 -8260,7 +8369,7 @@@ IT87 HARDWARE MONITORING DRIVE
  M:    Jean Delvare <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/hwmon/it87
 +F:    Documentation/hwmon/it87.rst
  F:    drivers/hwmon/it87.c
  
  IT913X MEDIA DRIVER
@@@ -8407,7 -8304,7 +8413,7 @@@ M:      Guenter Roeck <[email protected]
  L:    [email protected]
  S:    Maintained
  F:    drivers/hwmon/jc42.c
 -F:    Documentation/hwmon/jc42
 +F:    Documentation/hwmon/jc42.rst
  
  JFS FILESYSTEM
  M:    Dave Kleikamp <[email protected]>
@@@ -8426,11 -8323,9 +8432,11 @@@ F:    drivers/net/ethernet/jme.
  
  JOURNALLING FLASH FILE SYSTEM V2 (JFFS2)
  M:    David Woodhouse <[email protected]>
 +M:    Richard Weinberger <[email protected]>
  L:    [email protected]
  W:    http://www.linux-mtd.infradead.org/doc/jffs2.html
 -S:    Maintained
 +T:    git git://git.infradead.org/ubifs-2.6.git
 +S:    Odd Fixes
  F:    fs/jffs2/
  F:    include/uapi/linux/jffs2.h
  
@@@ -8457,14 -8352,14 +8463,14 @@@ K10TEMP HARDWARE MONITORING DRIVE
  M:    Clemens Ladisch <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/hwmon/k10temp
 +F:    Documentation/hwmon/k10temp.rst
  F:    drivers/hwmon/k10temp.c
  
  K8TEMP HARDWARE MONITORING DRIVER
  M:    Rudolf Marek <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/hwmon/k8temp
 +F:    Documentation/hwmon/k8temp.rst
  F:    drivers/hwmon/k8temp.c
  
  KASAN
@@@ -9105,7 -9000,7 +9111,7 @@@ R:      Daniel Lustig <[email protected]
  L:    [email protected]
  L:    [email protected]
  S:    Supported
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev
  F:    tools/memory-model/
  F:    Documentation/atomic_bitops.txt
  F:    Documentation/atomic_t.txt
@@@ -9156,21 -9051,21 +9162,21 @@@ LM78 HARDWARE MONITOR DRIVE
  M:    Jean Delvare <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/hwmon/lm78
 +F:    Documentation/hwmon/lm78.rst
  F:    drivers/hwmon/lm78.c
  
  LM83 HARDWARE MONITOR DRIVER
  M:    Jean Delvare <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/hwmon/lm83
 +F:    Documentation/hwmon/lm83.rst
  F:    drivers/hwmon/lm83.c
  
  LM90 HARDWARE MONITOR DRIVER
  M:    Jean Delvare <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/hwmon/lm90
 +F:    Documentation/hwmon/lm90.rst
  F:    Documentation/devicetree/bindings/hwmon/lm90.txt
  F:    drivers/hwmon/lm90.c
  F:    include/dt-bindings/thermal/lm90.h
@@@ -9179,7 -9074,7 +9185,7 @@@ LM95234 HARDWARE MONITOR DRIVE
  M:    Guenter Roeck <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/hwmon/lm95234
 +F:    Documentation/hwmon/lm95234.rst
  F:    drivers/hwmon/lm95234.c
  
  LME2510 MEDIA DRIVER
@@@ -9211,6 -9106,7 +9217,6 @@@ F:      arch/*/include/asm/spinlock*.
  F:    include/linux/rwlock*.h
  F:    include/linux/mutex*.h
  F:    include/linux/rwsem*.h
 -F:    arch/*/include/asm/rwsem.h
  F:    include/linux/seqlock.h
  F:    lib/locking*.[ch]
  F:    kernel/locking/
@@@ -9252,7 -9148,7 +9258,7 @@@ LTC4261 HARDWARE MONITOR DRIVE
  M:    Guenter Roeck <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/hwmon/ltc4261
 +F:    Documentation/hwmon/ltc4261.rst
  F:    drivers/hwmon/ltc4261.c
  
  LTC4306 I2C MULTIPLEXER DRIVER
@@@ -9483,7 -9379,7 +9489,7 @@@ MAX16065 HARDWARE MONITOR DRIVE
  M:    Guenter Roeck <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/hwmon/max16065
 +F:    Documentation/hwmon/max16065.rst
  F:    drivers/hwmon/max16065.c
  
  MAX2175 SDR TUNER DRIVER
@@@ -9499,14 -9395,14 +9505,14 @@@ F:   include/uapi/linux/max2175.
  MAX6650 HARDWARE MONITOR AND FAN CONTROLLER DRIVER
  L:    [email protected]
  S:    Orphan
 -F:    Documentation/hwmon/max6650
 +F:    Documentation/hwmon/max6650.rst
  F:    drivers/hwmon/max6650.c
  
  MAX6697 HARDWARE MONITOR DRIVER
  M:    Guenter Roeck <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/hwmon/max6697
 +F:    Documentation/hwmon/max6697.rst
  F:    Documentation/devicetree/bindings/hwmon/max6697.txt
  F:    drivers/hwmon/max6697.c
  F:    include/linux/platform_data/max6697.h
@@@ -9518,27 -9414,6 +9524,27 @@@ S:    Maintaine
  F:    Documentation/devicetree/bindings/sound/max9860.txt
  F:    sound/soc/codecs/max9860.*
  
 +MAXBOTIX ULTRASONIC RANGER IIO DRIVER
 +M:    Andreas Klinger <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/iio/proximity/maxbotix,mb1232.txt
 +F:    drivers/iio/proximity/mb1232.c
 +
 +MAXIM MAX77650 PMIC MFD DRIVER
 +M:    Bartosz Golaszewski <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/*/*max77650.txt
 +F:    Documentation/devicetree/bindings/*/max77650*.txt
 +F:    include/linux/mfd/max77650.h
 +F:    drivers/mfd/max77650.c
 +F:    drivers/regulator/max77650-regulator.c
 +F:    drivers/power/supply/max77650-charger.c
 +F:    drivers/input/misc/max77650-onkey.c
 +F:    drivers/leds/leds-max77650.c
 +F:    drivers/gpio/gpio-max77650.c
 +
  MAXIM MAX77802 PMIC REGULATOR DEVICE DRIVER
  M:    Javier Martinez Canillas <[email protected]>
  L:    [email protected]
@@@ -9907,17 -9782,9 +9913,17 @@@ F:    drivers/media/platform/mtk-vpu
  F:    Documentation/devicetree/bindings/media/mediatek-vcodec.txt
  F:    Documentation/devicetree/bindings/media/mediatek-vpu.txt
  
 +MEDIATEK MMC/SD/SDIO DRIVER
 +M:    Chaotian Jing <[email protected]>
 +S:    Maintained
 +F:    drivers/mmc/host/mtk-sd.c
 +F:    Documentation/devicetree/bindings/mmc/mtk-sd.txt
 +
  MEDIATEK MT76 WIRELESS LAN DRIVER
  M:    Felix Fietkau <[email protected]>
  M:    Lorenzo Bianconi <[email protected]>
 +R:    Ryder Lee <[email protected]>
 +R:    Roy Luo <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/net/wireless/mediatek/mt76/
@@@ -10016,6 -9883,15 +10022,6 @@@ F:   drivers/net/ethernet/mellanox/mlx5/c
  F:    drivers/net/ethernet/mellanox/mlx5/core/fpga/*
  F:    include/linux/mlx5/mlx5_ifc_fpga.h
  
 -MELLANOX ETHERNET INNOVA IPSEC DRIVER
 -R:    Boris Pismenny <[email protected]>
 -L:    [email protected]
 -S:    Supported
 -W:    http://www.mellanox.com
 -Q:    http://patchwork.ozlabs.org/project/netdev/list/
 -F:    drivers/net/ethernet/mellanox/mlx5/core/en_ipsec/*
 -F:    drivers/net/ethernet/mellanox/mlx5/core/ipsec*
 -
  MELLANOX ETHERNET SWITCH DRIVERS
  M:    Jiri Pirko <[email protected]>
  M:    Ido Schimmel <[email protected]>
@@@ -10138,15 -10014,14 +10144,15 @@@ F:        mm
  MEMORY TECHNOLOGY DEVICES (MTD)
  M:    David Woodhouse <[email protected]>
  M:    Brian Norris <[email protected]>
 -M:    Boris Brezillon <[email protected]>
  M:    Marek Vasut <[email protected]>
 +M:    Miquel Raynal <[email protected]>
  M:    Richard Weinberger <[email protected]>
 +M:    Vignesh Raghavendra <[email protected]>
  L:    [email protected]
  W:    http://www.linux-mtd.infradead.org/
  Q:    http://patchwork.ozlabs.org/project/linux-mtd/list/
 -T:    git git://git.infradead.org/linux-mtd.git master
 -T:    git git://git.infradead.org/linux-mtd.git mtd/next
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git mtd/fixes
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git mtd/next
  S:    Maintained
  F:    Documentation/devicetree/bindings/mtd/
  F:    drivers/mtd/
@@@ -10173,7 -10048,7 +10179,7 @@@ F:   drivers/mfd/menf21bmc.
  F:    drivers/watchdog/menf21bmc_wdt.c
  F:    drivers/leds/leds-menf21bmc.c
  F:    drivers/hwmon/menf21bmc_hwmon.c
 -F:    Documentation/hwmon/menf21bmc
 +F:    Documentation/hwmon/menf21bmc.rst
  
  MEN Z069 WATCHDOG DRIVER
  M:    Johannes Thumshirn <[email protected]>
  W:    http://linux-meson.com/
  S:    Supported
  F:    drivers/media/platform/meson/ao-cec.c
 +F:    drivers/media/platform/meson/ao-cec-g12a.c
  F:    Documentation/devicetree/bindings/media/meson-ao-cec.txt
  T:    git git://linuxtv.org/media_tree.git
  
@@@ -10245,8 -10119,7 +10251,8 @@@ MICROCHIP I2C DRIVE
  M:    Ludovic Desroches <[email protected]>
  L:    [email protected]
  S:    Supported
 -F:    drivers/i2c/busses/i2c-at91.c
 +F:    drivers/i2c/busses/i2c-at91.h
 +F:    drivers/i2c/busses/i2c-at91-*.c
  
  MICROCHIP ISC DRIVER
  M:    Eugen Hristev <[email protected]>
@@@ -10522,7 -10395,7 +10528,7 @@@ F:   arch/arm/mach-mmp
  
  MMU GATHER AND TLB INVALIDATION
  M:    Will Deacon <[email protected]>
 -M:    "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
 +M:    "Aneesh Kumar K.V" <[email protected]>
  M:    Andrew Morton <[email protected]>
  M:    Nick Piggin <[email protected]>
  M:    Peter Zijlstra <[email protected]>
@@@ -10568,7 -10441,7 +10574,7 @@@ F:   include/uapi/linux/meye.
  MOXA SMARTIO/INDUSTIO/INTELLIO SERIAL CARD
  M:    Jiri Slaby <[email protected]>
  S:    Maintained
 -F:    Documentation/serial/moxa-smartio
 +F:    Documentation/serial/moxa-smartio.rst
  F:    drivers/tty/mxser.*
  
  MR800 AVERMEDIA USB FM RADIO DRIVER
@@@ -10755,12 -10628,14 +10761,12 @@@ S:        Supporte
  F:    drivers/net/ethernet/myricom/myri10ge/
  
  NAND FLASH SUBSYSTEM
 -M:    Boris Brezillon <[email protected]>
  M:    Miquel Raynal <[email protected]>
  R:    Richard Weinberger <[email protected]>
  L:    [email protected]
  W:    http://www.linux-mtd.infradead.org/
  Q:    http://patchwork.ozlabs.org/project/linux-mtd/list/
 -T:    git git://git.infradead.org/linux-mtd.git nand/fixes
 -T:    git git://git.infradead.org/linux-mtd.git nand/next
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git nand/next
  S:    Maintained
  F:    drivers/mtd/nand/
  F:    include/linux/mtd/*nand*.h
@@@ -10801,7 -10676,7 +10807,7 @@@ NCT6775 HARDWARE MONITOR DRIVE
  M:    Guenter Roeck <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/hwmon/nct6775
 +F:    Documentation/hwmon/nct6775.rst
  F:    drivers/hwmon/nct6775.c
  
  NET_FAILOVER MODULE
  L:    [email protected]
  F:    Documentation/blockdev/nbd.txt
  F:    drivers/block/nbd.c
 +F:    include/trace/events/nbd.h
  F:    include/uapi/linux/nbd.h
  
  NETWORK DROP MONITOR
@@@ -11250,16 -11124,6 +11256,16 @@@ F: Documentation/ABI/stable/sysfs-bus-n
  F:    include/linux/nvmem-consumer.h
  F:    include/linux/nvmem-provider.h
  
 +NXP FXAS21002C DRIVER
 +M:    Rui Miguel Silva <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/iio/gyroscope/fxas21002c.txt
 +F:    drivers/iio/gyro/fxas21002c_core.c
 +F:    drivers/iio/gyro/fxas21002c.h
 +F:    drivers/iio/gyro/fxas21002c_i2c.c
 +F:    drivers/iio/gyro/fxas21002c_spi.c
 +
  NXP SGTL5000 DRIVER
  M:    Fabio Estevam <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
@@@ -11267,12 -11131,6 +11273,12 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/sound/sgtl5000.txt
  F:    sound/soc/codecs/sgtl5000*
  
 +NXP SJA1105 ETHERNET SWITCH DRIVER
 +M:    Vladimir Oltean <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/net/dsa/sja1105
 +
  NXP TDA998X DRM DRIVER
  M:    Russell King <[email protected]>
  S:    Maintained
@@@ -11321,7 -11179,7 +11327,7 @@@ F:   tools/objtool
  
  OCXL (Open Coherent Accelerator Processor Interface OpenCAPI) DRIVER
  M:    Frederic Barrat <[email protected]>
 -M:    Andrew Donnellan <andrew.donnellan@au1.ibm.com>
 +M:    Andrew Donnellan <ajd@linux.ibm.com>
  L:    [email protected]
  S:    Supported
  F:    arch/powerpc/platforms/powernv/ocxl.c
@@@ -11752,7 -11610,7 +11758,7 @@@ F:   Documentation/devicetree/bindings/op
  OPL4 DRIVER
  M:    Clemens Ladisch <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
 -T:    git git://git.alsa-project.org/alsa-kernel.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
  S:    Maintained
  F:    sound/drivers/opl4/
  
@@@ -11768,7 -11626,6 +11774,7 @@@ F:   include/linux/oprofile.
  ORACLE CLUSTER FILESYSTEM 2 (OCFS2)
  M:    Mark Fasheh <[email protected]>
  M:    Joel Becker <[email protected]>
 +M:    Joseph Qi <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  W:    http://ocfs2.wiki.kernel.org
  S:    Supported
  S:    Orphan
  F:    drivers/i2c/busses/i2c-pasemi.c
  
 +PACKING
 +M:    Vladimir Oltean <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +F:    lib/packing.c
 +F:    include/linux/packing.h
 +F:    Documentation/packing.txt
 +
  PADATA PARALLEL EXECUTION MECHANISM
  M:    Steffen Klassert <[email protected]>
  L:    [email protected]
@@@ -11921,7 -11770,7 +11927,7 @@@ PC87360 HARDWARE MONITORING DRIVE
  M:    Jim Cromie <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/hwmon/pc87360
 +F:    Documentation/hwmon/pc87360.rst
  F:    drivers/hwmon/pc87360.c
  
  PC8736x GPIO DRIVER
@@@ -11933,7 -11782,7 +11939,7 @@@ PC87427 HARDWARE MONITORING DRIVE
  M:    Jean Delvare <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/hwmon/pc87427
 +F:    Documentation/hwmon/pc87427.rst
  F:    drivers/hwmon/pc87427.c
  
  PCA9532 LED DRIVER
@@@ -12048,8 -11897,7 +12054,8 @@@ F:   include/linux/switchtec.
  F:    drivers/ntb/hw/mscc/
  
  PCI DRIVER FOR MOBIVEIL PCIE IP
 -M:    Subrahmanya Lingappa <[email protected]>
 +M:    Karthikeyan Mitran <[email protected]>
 +M:    Hou Zhiqiang <[email protected]>
  L:    [email protected]
  S:    Supported
  F:    Documentation/devicetree/bindings/pci/mobiveil-pcie.txt
@@@ -12183,12 -12031,6 +12189,12 @@@ T: git git://git.kernel.org/pub/scm/lin
  S:    Supported
  F:    drivers/pci/controller/
  
 +PCIE DRIVER FOR ANNAPURNA LABS
 +M:    Jonathan Chocron <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/pci/controller/dwc/pcie-al.c
 +
  PCIE DRIVER FOR AMLOGIC MESON
  M:    Yue Wang <[email protected]>
  L:    [email protected]
@@@ -12340,7 -12182,6 +12346,7 @@@ F:   arch/*/kernel/*/*/perf_event*.
  F:    arch/*/include/asm/perf_event.h
  F:    arch/*/kernel/perf_callchain.c
  F:    arch/*/events/*
 +F:    arch/*/events/*/*
  F:    tools/perf/
  
  PERSONALITY HANDLING
@@@ -12509,23 -12350,23 +12515,23 @@@ S:        Maintaine
  F:    Documentation/devicetree/bindings/hwmon/ibm,cffps1.txt
  F:    Documentation/devicetree/bindings/hwmon/max31785.txt
  F:    Documentation/devicetree/bindings/hwmon/ltc2978.txt
 -F:    Documentation/hwmon/adm1275
 -F:    Documentation/hwmon/ibm-cffps
 -F:    Documentation/hwmon/ir35221
 -F:    Documentation/hwmon/lm25066
 -F:    Documentation/hwmon/ltc2978
 -F:    Documentation/hwmon/ltc3815
 -F:    Documentation/hwmon/max16064
 -F:    Documentation/hwmon/max20751
 -F:    Documentation/hwmon/max31785
 -F:    Documentation/hwmon/max34440
 -F:    Documentation/hwmon/max8688
 -F:    Documentation/hwmon/pmbus
 -F:    Documentation/hwmon/pmbus-core
 -F:    Documentation/hwmon/tps40422
 -F:    Documentation/hwmon/ucd9000
 -F:    Documentation/hwmon/ucd9200
 -F:    Documentation/hwmon/zl6100
 +F:    Documentation/hwmon/adm1275.rst
 +F:    Documentation/hwmon/ibm-cffps.rst
 +F:    Documentation/hwmon/ir35221.rst
 +F:    Documentation/hwmon/lm25066.rst
 +F:    Documentation/hwmon/ltc2978.rst
 +F:    Documentation/hwmon/ltc3815.rst
 +F:    Documentation/hwmon/max16064.rst
 +F:    Documentation/hwmon/max20751.rst
 +F:    Documentation/hwmon/max31785.rst
 +F:    Documentation/hwmon/max34440.rst
 +F:    Documentation/hwmon/max8688.rst
 +F:    Documentation/hwmon/pmbus.rst
 +F:    Documentation/hwmon/pmbus-core.rst
 +F:    Documentation/hwmon/tps40422.rst
 +F:    Documentation/hwmon/ucd9000.rst
 +F:    Documentation/hwmon/ucd9200.rst
 +F:    Documentation/hwmon/zl6100.rst
  F:    drivers/hwmon/pmbus/
  F:    include/linux/pmbus.h
  
@@@ -12581,7 -12422,7 +12587,7 @@@ M:   Mark Rutland <[email protected]
  M:    Lorenzo Pieralisi <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    drivers/firmware/psci*.c
 +F:    drivers/firmware/psci/
  F:    include/linux/psci.h
  F:    include/uapi/linux/psci.h
  
@@@ -12789,7 -12630,7 +12795,7 @@@ M:   Bartlomiej Zolnierkiewicz <b.zolnier
  L:    [email protected]
  S:    Supported
  F:    Documentation/devicetree/bindings/hwmon/pwm-fan.txt
 -F:    Documentation/hwmon/pwm-fan
 +F:    Documentation/hwmon/pwm-fan.rst
  F:    drivers/hwmon/pwm-fan.c
  
  PWM IR Transmitter
@@@ -13207,9 -13048,9 +13213,9 @@@ M:   Josh Triplett <[email protected]
  R:    Steven Rostedt <[email protected]>
  R:    Mathieu Desnoyers <[email protected]>
  R:    Lai Jiangshan <[email protected]>
 -L:    linux-kernel@vger.kernel.org
 +L:    rcu@vger.kernel.org
  S:    Supported
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev
  F:    tools/testing/selftests/rcutorture
  
  RDC R-321X SoC
@@@ -13255,10 -13096,10 +13261,10 @@@ R:        Steven Rostedt <[email protected]
  R:    Mathieu Desnoyers <[email protected]>
  R:    Lai Jiangshan <[email protected]>
  R:    Joel Fernandes <[email protected]>
 -L:    linux-kernel@vger.kernel.org
 +L:    rcu@vger.kernel.org
  W:    http://www.rdrop.com/users/paulmck/RCU/
  S:    Supported
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev
  F:    Documentation/RCU/
  X:    Documentation/RCU/torture.txt
  F:    include/linux/rcu*
@@@ -13484,7 -13325,7 +13490,7 @@@ ROCKETPORT DRIVE
  P:    Comtrol Corp.
  W:    http://www.comtrol.com
  S:    Maintained
 -F:    Documentation/serial/rocket.txt
 +F:    Documentation/serial/rocket.rst
  F:    drivers/tty/rocket*
  
  ROCKETPORT EXPRESS/INFINITY DRIVER
@@@ -13568,12 -13409,6 +13574,12 @@@ T: git git://git.kernel.org/pub/scm/lin
  S:    Maintained
  F:    drivers/net/wireless/realtek/rtlwifi/
  
 +REALTEK WIRELESS DRIVER (rtw88)
 +M:    Yan-Hsuan Chuang <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/net/wireless/realtek/rtw88/
 +
  RTL8XXXU WIRELESS DRIVER (rtl8xxxu)
  M:    Jes Sorensen <[email protected]>
  L:    [email protected]
@@@ -14119,7 -13954,7 +14125,7 @@@ W:   https://selinuxproject.or
  W:    https://github.com/SELinuxProject
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux.git
  S:    Supported
 -F:    include/linux/selinux*
 +F:    include/uapi/linux/selinux_netlink.h
  F:    security/selinux/
  F:    scripts/selinux/
  F:    Documentation/admin-guide/LSM/SELinux.rst
@@@ -14416,10 -14251,10 +14422,10 @@@ M:        "Paul E. McKenney" <[email protected]
  M:    Josh Triplett <[email protected]>
  R:    Steven Rostedt <[email protected]>
  R:    Mathieu Desnoyers <[email protected]>
 -L:    linux-kernel@vger.kernel.org
 +L:    rcu@vger.kernel.org
  W:    http://www.rdrop.com/users/paulmck/RCU/
  S:    Supported
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev
  F:    include/linux/srcu*.h
  F:    kernel/rcu/srcu*.c
  
@@@ -14460,21 -14295,21 +14466,21 @@@ SMM665 HARDWARE MONITOR DRIVE
  M:    Guenter Roeck <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/hwmon/smm665
 +F:    Documentation/hwmon/smm665.rst
  F:    drivers/hwmon/smm665.c
  
  SMSC EMC2103 HARDWARE MONITOR DRIVER
  M:    Steve Glendinning <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/hwmon/emc2103
 +F:    Documentation/hwmon/emc2103.rst
  F:    drivers/hwmon/emc2103.c
  
  SMSC SCH5627 HARDWARE MONITOR DRIVER
  M:    Hans de Goede <[email protected]>
  L:    [email protected]
  S:    Supported
 -F:    Documentation/hwmon/sch5627
 +F:    Documentation/hwmon/sch5627.rst
  F:    drivers/hwmon/sch5627.c
  
  SMSC UFX6000 and UFX7000 USB to VGA DRIVER
@@@ -14487,7 -14322,7 +14493,7 @@@ SMSC47B397 HARDWARE MONITOR DRIVE
  M:    Jean Delvare <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/hwmon/smsc47b397
 +F:    Documentation/hwmon/smsc47b397.rst
  F:    drivers/hwmon/smsc47b397.c
  
  SMSC911x ETHERNET DRIVER
@@@ -14507,8 -14342,9 +14513,8 @@@ SOC-CAMERA V4L2 SUBSYSTE
  L:    [email protected]
  T:    git git://linuxtv.org/media_tree.git
  S:    Orphan
 -F:    include/media/soc*
 -F:    drivers/media/i2c/soc_camera/
 -F:    drivers/media/platform/soc_camera/
 +F:    include/media/soc_camera.h
 +F:    drivers/staging/media/soc_camera/
  
  SOCIONEXT SYNQUACER I2C DRIVER
  M:    Ard Biesheuvel <[email protected]>
@@@ -14644,15 -14480,16 +14650,15 @@@ T:        git git://linuxtv.org/media_tree.gi
  S:    Maintained
  F:    drivers/media/i2c/imx355.c
  
 -SONY MEMORYSTICK CARD SUPPORT
 -M:    Alex Dubov <[email protected]>
 -W:    http://tifmxx.berlios.de/
 -S:    Maintained
 -F:    drivers/memstick/host/tifm_ms.c
 -
 -SONY MEMORYSTICK STANDARD SUPPORT
 +SONY MEMORYSTICK SUBSYSTEM
  M:    Maxim Levitsky <[email protected]>
 +M:    Alex Dubov <[email protected]>
 +M:    Ulf Hansson <[email protected]>
 +L:    [email protected]
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc.git
  S:    Maintained
 -F:    drivers/memstick/core/ms_block.*
 +F:    drivers/memstick/
 +F:    include/linux/memstick.h
  
  SONY VAIO CONTROL DEVICE DRIVER
  M:    Mattia Dongili <[email protected]>
@@@ -14670,6 -14507,7 +14676,6 @@@ M:   Takashi Iwai <[email protected]
  L:    [email protected] (moderated for non-subscribers)
  W:    http://www.alsa-project.org/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
 -T:    git git://git.alsa-project.org/alsa-kernel.git
  Q:    http://patchwork.kernel.org/project/alsa-devel/list/
  S:    Maintained
  F:    Documentation/sound/
@@@ -14782,7 -14620,8 +14788,7 @@@ M:   Tudor Ambarus <tudor.ambarus@microch
  L:    [email protected]
  W:    http://www.linux-mtd.infradead.org/
  Q:    http://patchwork.ozlabs.org/project/linux-mtd/list/
 -T:    git git://git.infradead.org/linux-mtd.git spi-nor/fixes
 -T:    git git://git.infradead.org/linux-mtd.git spi-nor/next
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git spi-nor/next
  S:    Maintained
  F:    drivers/mtd/spi-nor/
  F:    include/linux/mtd/spi-nor.h
@@@ -14846,14 -14685,6 +14852,14 @@@ S: Maintaine
  F:    drivers/iio/imu/st_lsm6dsx/
  F:    Documentation/devicetree/bindings/iio/imu/st_lsm6dsx.txt
  
 +ST MIPID02 CSI-2 TO PARALLEL BRIDGE DRIVER
 +M:    Mickael Guene <[email protected]>
 +L:    [email protected]
 +T:    git git://linuxtv.org/media_tree.git
 +S:    Maintained
 +F:    drivers/media/i2c/st-mipid02.c
 +F:    Documentation/devicetree/bindings/media/i2c/st,st-mipid02.txt
 +
  ST STM32 I2C/SMBUS DRIVER
  M:    Pierre-Yves MORDRET <[email protected]>
  L:    [email protected]
@@@ -15490,11 -15321,6 +15496,11 @@@ M: Laxman Dewangan <[email protected]
  S:    Supported
  F:    drivers/spi/spi-tegra*
  
 +TEGRA XUSB PADCTL DRIVER
 +M:    JC Kuo <[email protected]>
 +S:    Supported
 +F:    drivers/phy/tegra/xusb*
 +
  TEHUTI ETHERNET DRIVER
  M:    Andy Gospodarek <[email protected]>
  L:    [email protected]
@@@ -15688,11 -15514,9 +15694,11 @@@ S: Maintaine
  F:    drivers/net/ethernet/ti/cpsw*
  F:    drivers/net/ethernet/ti/davinci*
  
 -TI FLASH MEDIA INTERFACE DRIVER
 +TI FLASH MEDIA MEMORYSTICK/MMC DRIVERS
  M:    Alex Dubov <[email protected]>
  S:    Maintained
 +W:    http://tifmxx.berlios.de/
 +F:    drivers/memstick/host/tifm_ms.c
  F:    drivers/misc/tifm*
  F:    drivers/mmc/host/tifm_sd.c
  F:    include/linux/tifm.h
@@@ -15844,7 -15668,7 +15850,7 @@@ TMP401 HARDWARE MONITOR DRIVE
  M:    Guenter Roeck <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/hwmon/tmp401
 +F:    Documentation/hwmon/tmp401.rst
  F:    drivers/hwmon/tmp401.c
  
  TMPFS (SHMEM FILESYSTEM)
@@@ -15877,7 -15701,7 +15883,7 @@@ M:   "Paul E. McKenney" <[email protected]
  M:    Josh Triplett <[email protected]>
  L:    [email protected]
  S:    Supported
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev
  F:    Documentation/RCU/torture.txt
  F:    kernel/torture.c
  F:    kernel/rcu/rcutorture.c
@@@ -16119,12 -15943,6 +16125,12 @@@ F: drivers/uwb
  F:    include/linux/uwb.h
  F:    include/linux/uwb/
  
 +UNICODE SUBSYSTEM:
 +M:    Gabriel Krisman Bertazi <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +F:    fs/unicode/
 +
  UNICORE32 ARCHITECTURE:
  M:    Guan Xuetao <[email protected]>
  W:    http://mprc.pku.edu.cn/~guanxuetao/linux
  S:    Supported
  F:    drivers/scsi/ufs/*dwc*
  
 +UNIVERSAL FLASH STORAGE HOST CONTROLLER DRIVER MEDIATEK HOOKS
 +M:    Stanley Chu <[email protected]>
 +L:    [email protected]
 +L:    [email protected] (moderated for non-subscribers)
 +S:    Maintained
 +F:    drivers/scsi/ufs/ufs-mediatek*
 +
  UNSORTED BLOCK IMAGES (UBI)
  M:    Artem Bityutskiy <[email protected]>
  M:    Richard Weinberger <[email protected]>
  S:    Maintained
  F:    drivers/usb/roles/intel-xhci-usb-role-switch.c
  
 +USB IP DRIVER FOR HISILICON KIRIN
 +M:    Yu Chen <[email protected]>
 +M:    Binghui Wang <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/phy/phy-hi3660-usb3.txt
 +F:    drivers/phy/hisilicon/phy-hi3660-usb3.c
 +
  USB ISP116X DRIVER
  M:    Olav Kongas <[email protected]>
  L:    [email protected]
@@@ -16314,7 -16117,7 +16320,7 @@@ F:   drivers/usb/storage
  USB MIDI DRIVER
  M:    Clemens Ladisch <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
 -T:    git git://git.alsa-project.org/alsa-kernel.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
  S:    Maintained
  F:    sound/usb/midi.*
  
@@@ -16587,7 -16390,6 +16593,7 @@@ F:   fs/fat
  
  VFIO DRIVER
  M:    Alex Williamson <[email protected]>
 +R:    Cornelia Huck <[email protected]>
  L:    [email protected]
  T:    git git://github.com/awilliam/linux-vfio.git
  S:    Maintained
@@@ -16904,7 -16706,7 +16910,7 @@@ VT1211 HARDWARE MONITOR DRIVE
  M:    Juerg Haefliger <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/hwmon/vt1211
 +F:    Documentation/hwmon/vt1211.rst
  F:    drivers/hwmon/vt1211.c
  
  VT8231 HARDWARE MONITOR DRIVER
@@@ -16932,14 -16734,14 +16938,14 @@@ W83791D HARDWARE MONITORING DRIVE
  M:    Marc Hulsman <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/hwmon/w83791d
 +F:    Documentation/hwmon/w83791d.rst
  F:    drivers/hwmon/w83791d.c
  
  W83793 HARDWARE MONITORING DRIVER
  M:    Rudolf Marek <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/hwmon/w83793
 +F:    Documentation/hwmon/w83793.rst
  F:    drivers/hwmon/w83793.c
  
  W83795 HARDWARE MONITORING DRIVER
  T:    git https://github.com/CirrusLogic/linux-drivers.git
  W:    https://github.com/CirrusLogic/linux-drivers/wiki
  S:    Supported
 -F:    Documentation/hwmon/wm83??
 +F:    Documentation/hwmon/wm83??.rst
  F:    Documentation/devicetree/bindings/extcon/extcon-arizona.txt
  F:    Documentation/devicetree/bindings/regulator/arizona-regulator.txt
  F:    Documentation/devicetree/bindings/mfd/arizona.txt
@@@ -17138,7 -16940,7 +17144,7 @@@ M:   Tony Luck <[email protected]
  M:    Borislav Petkov <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    arch/x86/kernel/cpu/mcheck/*
 +F:    arch/x86/kernel/cpu/mce/*
  
  X86 MICROCODE UPDATE SUPPORT
  M:    Borislav Petkov <[email protected]>
index f816d2ae1e58108ac77c0da93d8455e0411011d5,a14347ea0d777bd99b5f7b1ffe0be0ef436ce888..ed8d59d4eecb361c288b0926f222ec1e380634ea
@@@ -27,9 -27,7 +27,9 @@@
  #define MLXREG_FAN_SPEED_MAX                  (MLXREG_FAN_MAX_STATE * 2)
  #define MLXREG_FAN_SPEED_MIN_LEVEL            2       /* 20 percent */
  #define MLXREG_FAN_TACHO_SAMPLES_PER_PULSE_DEF        44
 -#define MLXREG_FAN_TACHO_DIVIDER_DEF          1132
 +#define MLXREG_FAN_TACHO_DIV_MIN              283
 +#define MLXREG_FAN_TACHO_DIV_DEF              (MLXREG_FAN_TACHO_DIV_MIN * 4)
 +#define MLXREG_FAN_TACHO_DIV_SCALE_MAX        64
  /*
   * FAN datasheet defines the formula for RPM calculations as RPM = 15/t-high.
   * The logic in a programmable device measures the time t-high by sampling the
@@@ -229,22 -227,40 +229,22 @@@ mlxreg_fan_is_visible(const void *data
        return 0;
  }
  
 -static const u32 mlxreg_fan_hwmon_fan_config[] = {
 -      HWMON_F_INPUT | HWMON_F_FAULT,
 -      HWMON_F_INPUT | HWMON_F_FAULT,
 -      HWMON_F_INPUT | HWMON_F_FAULT,
 -      HWMON_F_INPUT | HWMON_F_FAULT,
 -      HWMON_F_INPUT | HWMON_F_FAULT,
 -      HWMON_F_INPUT | HWMON_F_FAULT,
 -      HWMON_F_INPUT | HWMON_F_FAULT,
 -      HWMON_F_INPUT | HWMON_F_FAULT,
 -      HWMON_F_INPUT | HWMON_F_FAULT,
 -      HWMON_F_INPUT | HWMON_F_FAULT,
 -      HWMON_F_INPUT | HWMON_F_FAULT,
 -      HWMON_F_INPUT | HWMON_F_FAULT,
 -      0
 -};
 -
 -static const struct hwmon_channel_info mlxreg_fan_hwmon_fan = {
 -      .type = hwmon_fan,
 -      .config = mlxreg_fan_hwmon_fan_config,
 -};
 -
 -static const u32 mlxreg_fan_hwmon_pwm_config[] = {
 -      HWMON_PWM_INPUT,
 -      0
 -};
 -
 -static const struct hwmon_channel_info mlxreg_fan_hwmon_pwm = {
 -      .type = hwmon_pwm,
 -      .config = mlxreg_fan_hwmon_pwm_config,
 -};
 -
  static const struct hwmon_channel_info *mlxreg_fan_hwmon_info[] = {
 -      &mlxreg_fan_hwmon_fan,
 -      &mlxreg_fan_hwmon_pwm,
 +      HWMON_CHANNEL_INFO(fan,
 +                         HWMON_F_INPUT | HWMON_F_FAULT,
 +                         HWMON_F_INPUT | HWMON_F_FAULT,
 +                         HWMON_F_INPUT | HWMON_F_FAULT,
 +                         HWMON_F_INPUT | HWMON_F_FAULT,
 +                         HWMON_F_INPUT | HWMON_F_FAULT,
 +                         HWMON_F_INPUT | HWMON_F_FAULT,
 +                         HWMON_F_INPUT | HWMON_F_FAULT,
 +                         HWMON_F_INPUT | HWMON_F_FAULT,
 +                         HWMON_F_INPUT | HWMON_F_FAULT,
 +                         HWMON_F_INPUT | HWMON_F_FAULT,
 +                         HWMON_F_INPUT | HWMON_F_FAULT,
 +                         HWMON_F_INPUT | HWMON_F_FAULT),
 +      HWMON_CHANNEL_INFO(pwm,
 +                         HWMON_PWM_INPUT),
        NULL
  };
  
@@@ -344,57 -360,15 +344,57 @@@ static const struct thermal_cooling_dev
        .set_cur_state  = mlxreg_fan_set_cur_state,
  };
  
 +static int mlxreg_fan_connect_verify(struct mlxreg_fan *fan,
 +                                   struct mlxreg_core_data *data)
 +{
 +      u32 regval;
 +      int err;
 +
 +      err = regmap_read(fan->regmap, data->capability, &regval);
 +      if (err) {
 +              dev_err(fan->dev, "Failed to query capability register 0x%08x\n",
 +                      data->capability);
 +              return err;
 +      }
 +
 +      return !!(regval & data->bit);
 +}
 +
 +static int mlxreg_fan_speed_divider_get(struct mlxreg_fan *fan,
 +                                      struct mlxreg_core_data *data)
 +{
 +      u32 regval;
 +      int err;
 +
 +      err = regmap_read(fan->regmap, data->capability, &regval);
 +      if (err) {
 +              dev_err(fan->dev, "Failed to query capability register 0x%08x\n",
 +                      data->capability);
 +              return err;
 +      }
 +
 +      /*
 +       * Set divider value according to the capability register, in case it
 +       * contains valid value. Otherwise use default value. The purpose of
 +       * this validation is to protect against the old hardware, in which
 +       * this register can return zero.
 +       */
 +      if (regval > 0 && regval <= MLXREG_FAN_TACHO_DIV_SCALE_MAX)
 +              fan->divider = regval * MLXREG_FAN_TACHO_DIV_MIN;
 +
 +      return 0;
 +}
 +
  static int mlxreg_fan_config(struct mlxreg_fan *fan,
                             struct mlxreg_core_platform_data *pdata)
  {
        struct mlxreg_core_data *data = pdata->data;
        bool configured = false;
        int tacho_num = 0, i;
 +      int err;
  
        fan->samples = MLXREG_FAN_TACHO_SAMPLES_PER_PULSE_DEF;
 -      fan->divider = MLXREG_FAN_TACHO_DIVIDER_DEF;
 +      fan->divider = MLXREG_FAN_TACHO_DIV_DEF;
        for (i = 0; i < pdata->counter; i++, data++) {
                if (strnstr(data->label, "tacho", sizeof(data->label))) {
                        if (tacho_num == MLXREG_FAN_MAX_TACHO) {
                                        data->label);
                                return -EINVAL;
                        }
 +
 +                      if (data->capability) {
 +                              err = mlxreg_fan_connect_verify(fan, data);
 +                              if (err < 0)
 +                                      return err;
 +                              else if (!err) {
 +                                      tacho_num++;
 +                                      continue;
 +                              }
 +                      }
 +
                        fan->tacho[tacho_num].reg = data->reg;
                        fan->tacho[tacho_num].mask = data->mask;
                        fan->tacho[tacho_num++].connected = true;
                                return -EINVAL;
                        }
                        /* Validate that conf parameters are not zeros. */
 -                      if (!data->mask || !data->bit) {
 +                      if (!data->mask && !data->bit && !data->capability) {
                                dev_err(fan->dev, "invalid conf entry params: %s\n",
                                        data->label);
                                return -EINVAL;
                        }
 -                      fan->samples = data->mask;
 -                      fan->divider = data->bit;
 +                      if (data->capability) {
 +                              err = mlxreg_fan_speed_divider_get(fan, data);
 +                              if (err)
 +                                      return err;
 +                      } else {
 +                              if (data->mask)
 +                                      fan->samples = data->mask;
 +                              if (data->bit)
 +                                      fan->divider = data->bit;
 +                      }
                        configured = true;
                } else {
                        dev_err(fan->dev, "invalid label: %s\n", data->label);
  static int mlxreg_fan_probe(struct platform_device *pdev)
  {
        struct mlxreg_core_platform_data *pdata;
+       struct device *dev = &pdev->dev;
        struct mlxreg_fan *fan;
        struct device *hwm;
        int err;
  
-       pdata = dev_get_platdata(&pdev->dev);
+       pdata = dev_get_platdata(dev);
        if (!pdata) {
-               dev_err(&pdev->dev, "Failed to get platform data.\n");
+               dev_err(dev, "Failed to get platform data.\n");
                return -EINVAL;
        }
  
-       fan = devm_kzalloc(&pdev->dev, sizeof(*fan), GFP_KERNEL);
+       fan = devm_kzalloc(dev, sizeof(*fan), GFP_KERNEL);
        if (!fan)
                return -ENOMEM;
  
-       fan->dev = &pdev->dev;
+       fan->dev = dev;
        fan->regmap = pdata->regmap;
-       platform_set_drvdata(pdev, fan);
  
        err = mlxreg_fan_config(fan, pdata);
        if (err)
                return err;
  
-       hwm = devm_hwmon_device_register_with_info(&pdev->dev, "mlxreg_fan",
+       hwm = devm_hwmon_device_register_with_info(dev, "mlxreg_fan",
                                                   fan,
                                                   &mlxreg_fan_hwmon_chip_info,
                                                   NULL);
        if (IS_ERR(hwm)) {
-               dev_err(&pdev->dev, "Failed to register hwmon device\n");
+               dev_err(dev, "Failed to register hwmon device\n");
                return PTR_ERR(hwm);
        }
  
        if (IS_REACHABLE(CONFIG_THERMAL)) {
-               fan->cdev = thermal_cooling_device_register("mlxreg_fan", fan,
-                                               &mlxreg_fan_cooling_ops);
+               fan->cdev = devm_thermal_of_cooling_device_register(dev,
+                       NULL, "mlxreg_fan", fan, &mlxreg_fan_cooling_ops);
                if (IS_ERR(fan->cdev)) {
-                       dev_err(&pdev->dev, "Failed to register cooling device\n");
+                       dev_err(dev, "Failed to register cooling device\n");
                        return PTR_ERR(fan->cdev);
                }
        }
        return 0;
  }
  
- static int mlxreg_fan_remove(struct platform_device *pdev)
- {
-       struct mlxreg_fan *fan = platform_get_drvdata(pdev);
-       if (IS_REACHABLE(CONFIG_THERMAL))
-               thermal_cooling_device_unregister(fan->cdev);
-       return 0;
- }
  static struct platform_driver mlxreg_fan_driver = {
        .driver = {
            .name = "mlxreg-fan",
        },
        .probe = mlxreg_fan_probe,
-       .remove = mlxreg_fan_remove,
  };
  
  module_platform_driver(mlxreg_fan_driver);
index 1dc0cd452498de52a5465a57028289079d4f25f6,f24cc00caba9fd9f5ad12fe194e624baaf710deb..09aaefa6fdb8c192e561d720dab6cc7d65a40138
@@@ -629,33 -629,51 +629,33 @@@ static umode_t npcm7xx_is_visible(cons
        }
  }
  
 -static const u32 npcm7xx_pwm_config[] = {
 -      HWMON_PWM_INPUT,
 -      HWMON_PWM_INPUT,
 -      HWMON_PWM_INPUT,
 -      HWMON_PWM_INPUT,
 -      HWMON_PWM_INPUT,
 -      HWMON_PWM_INPUT,
 -      HWMON_PWM_INPUT,
 -      HWMON_PWM_INPUT,
 -      0
 -};
 -
 -static const struct hwmon_channel_info npcm7xx_pwm = {
 -      .type = hwmon_pwm,
 -      .config = npcm7xx_pwm_config,
 -};
 -
 -static const u32 npcm7xx_fan_config[] = {
 -      HWMON_F_INPUT,
 -      HWMON_F_INPUT,
 -      HWMON_F_INPUT,
 -      HWMON_F_INPUT,
 -      HWMON_F_INPUT,
 -      HWMON_F_INPUT,
 -      HWMON_F_INPUT,
 -      HWMON_F_INPUT,
 -      HWMON_F_INPUT,
 -      HWMON_F_INPUT,
 -      HWMON_F_INPUT,
 -      HWMON_F_INPUT,
 -      HWMON_F_INPUT,
 -      HWMON_F_INPUT,
 -      HWMON_F_INPUT,
 -      HWMON_F_INPUT,
 -      0
 -};
 -
 -static const struct hwmon_channel_info npcm7xx_fan = {
 -      .type = hwmon_fan,
 -      .config = npcm7xx_fan_config,
 -};
 -
  static const struct hwmon_channel_info *npcm7xx_info[] = {
 -      &npcm7xx_pwm,
 -      &npcm7xx_fan,
 +      HWMON_CHANNEL_INFO(pwm,
 +                         HWMON_PWM_INPUT,
 +                         HWMON_PWM_INPUT,
 +                         HWMON_PWM_INPUT,
 +                         HWMON_PWM_INPUT,
 +                         HWMON_PWM_INPUT,
 +                         HWMON_PWM_INPUT,
 +                         HWMON_PWM_INPUT,
 +                         HWMON_PWM_INPUT),
 +      HWMON_CHANNEL_INFO(fan,
 +                         HWMON_F_INPUT,
 +                         HWMON_F_INPUT,
 +                         HWMON_F_INPUT,
 +                         HWMON_F_INPUT,
 +                         HWMON_F_INPUT,
 +                         HWMON_F_INPUT,
 +                         HWMON_F_INPUT,
 +                         HWMON_F_INPUT,
 +                         HWMON_F_INPUT,
 +                         HWMON_F_INPUT,
 +                         HWMON_F_INPUT,
 +                         HWMON_F_INPUT,
 +                         HWMON_F_INPUT,
 +                         HWMON_F_INPUT,
 +                         HWMON_F_INPUT,
 +                         HWMON_F_INPUT),
        NULL
  };
  
@@@ -846,10 -864,8 +846,8 @@@ static int npcm7xx_create_pwm_cooling(s
        snprintf(cdev->name, THERMAL_NAME_LENGTH, "%pOFn%d", child,
                 pwm_port);
  
-       cdev->tcdev = thermal_of_cooling_device_register(child,
-                                                        cdev->name,
-                                                        cdev,
-                                                        &npcm7xx_pwm_cool_ops);
+       cdev->tcdev = devm_thermal_of_cooling_device_register(dev, child,
+                               cdev->name, cdev, &npcm7xx_pwm_cool_ops);
        if (IS_ERR(cdev->tcdev))
                return PTR_ERR(cdev->tcdev);
  
diff --combined drivers/hwmon/pwm-fan.c
index eead8afe6447b2b31324975f050fc0b6204a1bec,0243ba70107e4c8bdf9aeb60d38f48a22ceabab0..5fb2745f0226a66273d87e39e5b6303a9a994aad
@@@ -18,7 -18,6 +18,7 @@@
  
  #include <linux/hwmon.h>
  #include <linux/hwmon-sysfs.h>
 +#include <linux/interrupt.h>
  #include <linux/module.h>
  #include <linux/mutex.h>
  #include <linux/of.h>
@@@ -27,7 -26,6 +27,7 @@@
  #include <linux/regulator/consumer.h>
  #include <linux/sysfs.h>
  #include <linux/thermal.h>
 +#include <linux/timer.h>
  
  #define MAX_PWM 255
  
@@@ -35,14 -33,6 +35,14 @@@ struct pwm_fan_ctx 
        struct mutex lock;
        struct pwm_device *pwm;
        struct regulator *reg_en;
 +
 +      int irq;
 +      atomic_t pulses;
 +      unsigned int rpm;
 +      u8 pulses_per_revolution;
 +      ktime_t sample_start;
 +      struct timer_list rpm_timer;
 +
        unsigned int pwm_value;
        unsigned int pwm_fan_state;
        unsigned int pwm_fan_max_state;
        struct thermal_cooling_device *cdev;
  };
  
 +/* This handler assumes self resetting edge triggered interrupt. */
 +static irqreturn_t pulse_handler(int irq, void *dev_id)
 +{
 +      struct pwm_fan_ctx *ctx = dev_id;
 +
 +      atomic_inc(&ctx->pulses);
 +
 +      return IRQ_HANDLED;
 +}
 +
 +static void sample_timer(struct timer_list *t)
 +{
 +      struct pwm_fan_ctx *ctx = from_timer(ctx, t, rpm_timer);
 +      int pulses;
 +      u64 tmp;
 +
 +      pulses = atomic_read(&ctx->pulses);
 +      atomic_sub(pulses, &ctx->pulses);
 +      tmp = (u64)pulses * ktime_ms_delta(ktime_get(), ctx->sample_start) * 60;
 +      do_div(tmp, ctx->pulses_per_revolution * 1000);
 +      ctx->rpm = tmp;
 +
 +      ctx->sample_start = ktime_get();
 +      mod_timer(&ctx->rpm_timer, jiffies + HZ);
 +}
 +
  static int  __set_pwm(struct pwm_fan_ctx *ctx, unsigned long pwm)
  {
        unsigned long period;
@@@ -136,45 -100,15 +136,45 @@@ static ssize_t pwm_show(struct device *
        return sprintf(buf, "%u\n", ctx->pwm_value);
  }
  
 +static ssize_t rpm_show(struct device *dev,
 +                      struct device_attribute *attr, char *buf)
 +{
 +      struct pwm_fan_ctx *ctx = dev_get_drvdata(dev);
 +
 +      return sprintf(buf, "%u\n", ctx->rpm);
 +}
  
  static SENSOR_DEVICE_ATTR_RW(pwm1, pwm, 0);
 +static SENSOR_DEVICE_ATTR_RO(fan1_input, rpm, 0);
  
  static struct attribute *pwm_fan_attrs[] = {
        &sensor_dev_attr_pwm1.dev_attr.attr,
 +      &sensor_dev_attr_fan1_input.dev_attr.attr,
        NULL,
  };
  
 -ATTRIBUTE_GROUPS(pwm_fan);
 +static umode_t pwm_fan_attrs_visible(struct kobject *kobj, struct attribute *a,
 +                                   int n)
 +{
 +      struct device *dev = container_of(kobj, struct device, kobj);
 +      struct pwm_fan_ctx *ctx = dev_get_drvdata(dev);
 +
 +      /* Hide fan_input in case no interrupt is available  */
 +      if (n == 1 && ctx->irq <= 0)
 +              return 0;
 +
 +      return a->mode;
 +}
 +
 +static const struct attribute_group pwm_fan_group = {
 +      .attrs = pwm_fan_attrs,
 +      .is_visible = pwm_fan_attrs_visible,
 +};
 +
 +static const struct attribute_group *pwm_fan_groups[] = {
 +      &pwm_fan_group,
 +      NULL,
 +};
  
  /* thermal cooling device callbacks */
  static int pwm_fan_get_max_state(struct thermal_cooling_device *cdev,
@@@ -273,38 -207,44 +273,51 @@@ static int pwm_fan_of_get_cooling_data(
        return 0;
  }
  
 -static void pwm_fan_pwm_disable(void *data)
+ static void pwm_fan_regulator_disable(void *data)
+ {
+       regulator_disable(data);
+ }
 -      pwm_disable(data);
++static void pwm_fan_pwm_disable(void *__ctx)
+ {
++      struct pwm_fan_ctx *ctx = __ctx;
++      pwm_disable(ctx->pwm);
++      del_timer_sync(&ctx->rpm_timer);
+ }
  static int pwm_fan_probe(struct platform_device *pdev)
  {
        struct thermal_cooling_device *cdev;
+       struct device *dev = &pdev->dev;
        struct pwm_fan_ctx *ctx;
        struct device *hwmon;
        int ret;
        struct pwm_state state = { };
 +      u32 ppr = 2;
  
-       ctx = devm_kzalloc(&pdev->dev, sizeof(*ctx), GFP_KERNEL);
+       ctx = devm_kzalloc(dev, sizeof(*ctx), GFP_KERNEL);
        if (!ctx)
                return -ENOMEM;
  
        mutex_init(&ctx->lock);
  
-       ctx->pwm = devm_of_pwm_get(&pdev->dev, pdev->dev.of_node, NULL);
+       ctx->pwm = devm_of_pwm_get(dev, dev->of_node, NULL);
        if (IS_ERR(ctx->pwm)) {
                ret = PTR_ERR(ctx->pwm);
  
                if (ret != -EPROBE_DEFER)
-                       dev_err(&pdev->dev, "Could not get PWM: %d\n", ret);
+                       dev_err(dev, "Could not get PWM: %d\n", ret);
  
                return ret;
        }
  
        platform_set_drvdata(pdev, ctx);
  
-       ctx->reg_en = devm_regulator_get_optional(&pdev->dev, "fan");
 +      ctx->irq = platform_get_irq(pdev, 0);
 +      if (ctx->irq == -EPROBE_DEFER)
 +              return ctx->irq;
 +
+       ctx->reg_en = devm_regulator_get_optional(dev, "fan");
        if (IS_ERR(ctx->reg_en)) {
                if (PTR_ERR(ctx->reg_en) != -ENODEV)
                        return PTR_ERR(ctx->reg_en);
        } else {
                ret = regulator_enable(ctx->reg_en);
                if (ret) {
-                       dev_err(&pdev->dev,
-                               "Failed to enable fan supply: %d\n", ret);
+                       dev_err(dev, "Failed to enable fan supply: %d\n", ret);
                        return ret;
                }
+               devm_add_action_or_reset(dev, pwm_fan_regulator_disable,
+                                        ctx->reg_en);
        }
  
        ctx->pwm_value = MAX_PWM;
  
        ret = pwm_apply_state(ctx->pwm, &state);
        if (ret) {
-               dev_err(&pdev->dev, "Failed to configure PWM: %d\n", ret);
-               goto err_reg_disable;
 -              dev_err(dev, "Failed to configure PWM\n");
++              dev_err(dev, "Failed to configure PWM: %d\n", ret);
+               return ret;
        }
 -      devm_add_action_or_reset(dev, pwm_fan_pwm_disable, ctx->pwm);
 +      timer_setup(&ctx->rpm_timer, sample_timer, 0);
++      devm_add_action_or_reset(dev, pwm_fan_pwm_disable, ctx);
 +
-       of_property_read_u32(pdev->dev.of_node, "pulses-per-revolution", &ppr);
++      of_property_read_u32(dev->of_node, "pulses-per-revolution", &ppr);
 +      ctx->pulses_per_revolution = ppr;
 +      if (!ctx->pulses_per_revolution) {
-               dev_err(&pdev->dev, "pulses-per-revolution can't be zero.\n");
-               ret = -EINVAL;
-               goto err_pwm_disable;
++              dev_err(dev, "pulses-per-revolution can't be zero.\n");
++              return -EINVAL;
 +      }
 +
 +      if (ctx->irq > 0) {
-               ret = devm_request_irq(&pdev->dev, ctx->irq, pulse_handler, 0,
++              ret = devm_request_irq(dev, ctx->irq, pulse_handler, 0,
 +                                     pdev->name, ctx);
 +              if (ret) {
-                       dev_err(&pdev->dev,
-                               "Failed to request interrupt: %d\n", ret);
-                       goto err_pwm_disable;
++                      dev_err(dev, "Failed to request interrupt: %d\n", ret);
++                      return ret;
 +              }
 +              ctx->sample_start = ktime_get();
 +              mod_timer(&ctx->rpm_timer, jiffies + HZ);
 +      }
  
-       hwmon = devm_hwmon_device_register_with_groups(&pdev->dev, "pwmfan",
+       hwmon = devm_hwmon_device_register_with_groups(dev, "pwmfan",
                                                       ctx, pwm_fan_groups);
        if (IS_ERR(hwmon)) {
-               ret = PTR_ERR(hwmon);
-               dev_err(&pdev->dev,
-                       "Failed to register hwmon device: %d\n", ret);
-               goto err_del_timer;
+               dev_err(dev, "Failed to register hwmon device\n");
+               return PTR_ERR(hwmon);
        }
  
-       ret = pwm_fan_of_get_cooling_data(&pdev->dev, ctx);
+       ret = pwm_fan_of_get_cooling_data(dev, ctx);
        if (ret)
-               goto err_del_timer;
+               return ret;
  
        ctx->pwm_fan_state = ctx->pwm_fan_max_state;
        if (IS_ENABLED(CONFIG_THERMAL)) {
-               cdev = thermal_of_cooling_device_register(pdev->dev.of_node,
-                                                         "pwm-fan", ctx,
-                                                         &pwm_fan_cooling_ops);
+               cdev = devm_thermal_of_cooling_device_register(dev,
+                       dev->of_node, "pwm-fan", ctx, &pwm_fan_cooling_ops);
                if (IS_ERR(cdev)) {
-                       dev_err(&pdev->dev,
 +                      ret = PTR_ERR(cdev);
 -                              "Failed to register pwm-fan as cooling device");
 -                      return PTR_ERR(cdev);
+                       dev_err(dev,
-                       goto err_del_timer;
 +                              "Failed to register pwm-fan as cooling device: %d\n",
 +                              ret);
++                      return ret;
                }
                ctx->cdev = cdev;
                thermal_cdev_update(cdev);
        }
  
        return 0;
- err_del_timer:
-       del_timer_sync(&ctx->rpm_timer);
- err_pwm_disable:
-       state.enabled = false;
-       pwm_apply_state(ctx->pwm, &state);
- err_reg_disable:
-       if (ctx->reg_en)
-               regulator_disable(ctx->reg_en);
-       return ret;
- }
- static int pwm_fan_remove(struct platform_device *pdev)
- {
-       struct pwm_fan_ctx *ctx = platform_get_drvdata(pdev);
-       thermal_cooling_device_unregister(ctx->cdev);
-       del_timer_sync(&ctx->rpm_timer);
-       if (ctx->pwm_value)
-               pwm_disable(ctx->pwm);
-       if (ctx->reg_en)
-               regulator_disable(ctx->reg_en);
-       return 0;
  }
  
  #ifdef CONFIG_PM_SLEEP
@@@ -480,7 -366,6 +460,6 @@@ MODULE_DEVICE_TABLE(of, of_pwm_fan_matc
  
  static struct platform_driver pwm_fan_driver = {
        .probe          = pwm_fan_probe,
-       .remove         = pwm_fan_remove,
        .driver = {
                .name           = "pwm-fan",
                .pm             = &pwm_fan_pm,
This page took 0.217496 seconds and 4 git commands to generate.