Merge tag 'mtd/for-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux
authorLinus Torvalds <torvalds@linux-foundation.org>
Sat, 13 Jul 2019 22:42:44 +0000 (15:42 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 13 Jul 2019 22:42:44 +0000 (15:42 -0700)
Pull MTD updates from Miquel Raynal:
 "This contains the following changes for MTD:

  MTD core changes:
   - New Hyperbus framework
   - New _is_locked (concat) implementation
   - Various cleanups

  NAND core changes:
   - use longest matching pattern in ->exec_op() default parser
   - export NAND operation tracer
   - add flag to indicate panic_write in MTD
   - use kzalloc() instead of kmalloc() and memset()

  Raw NAND controller drivers changes:
   - brcmnand:
       - fix BCH ECC layout for large page NAND parts
       - fallback to detected ecc-strength, ecc-step-size
       - when oops in progress use pio and interrupt polling
       - code refactor code to introduce helper functions
       - add support for v7.3 controller
   - FSMC:
       - use nand_op_trace for operation tracing
   - GPMI:
       - move all driver code into single file
       - various cleanups (including dmaengine changes)
       - use runtime PM to manage clocks
       - implement exec_op
   - MTK:
       - correct low level time calculation of r/w cycle
       - improve data sampling timing for read cycle
       - add validity check for CE# pin setting
       - fix wrongly assigned OOB buffer pointer issue
       - re-license MTK NAND driver as Dual MIT/GPL
   - STM32:
       - manage the get_irq error case
       - increase DMA completion timeouts

  Raw NAND chips drivers changes:
   - Macronix: add read-retry support

  Onenand driver changes:
   - add support for 8Gb datasize chips
   - avoid fall-through warnings

  SPI-NAND changes:
   - define macros for page-read ops with three-byte addresses
   - add support for two-byte device IDs and then for GigaDevice
     GD5F1GQ4UFxxG
   - add initial support for Paragon PN26G0xA
   - handle the case where the last page read has bitflips

  SPI-NOR core changes:
   - add support for the mt25ql02g and w25q16jv flashes
   - print error in case of jedec read id fails
   - is25lp256: add post BFPT fix to correct the addr_width

  SPI NOR controller drivers changes:
   - intel-spi: Add support for Intel Elkhart Lake SPI serial flash
   - smt32: remove the driver as the driver was replaced by spi-stm32-qspi.c
   - cadence-quadspi: add reset control"

* tag 'mtd/for-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux: (60 commits)
  mtd: concat: implement _is_locked mtd operation
  mtd: concat: refactor concat_lock/concat_unlock
  mtd: abi: do not use C++ style comments in uapi header
  mtd: afs: remove unneeded NULL check
  mtd: rawnand: stm32_fmc2: increase DMA completion timeouts
  mtd: rawnand: Use kzalloc() instead of kmalloc() and memset()
  mtd: hyperbus: Add driver for TI's HyperBus memory controller
  mtd: spinand: read returns badly if the last page has bitflips
  mtd: spinand: Add initial support for Paragon PN26G0xA
  mtd: rawnand: mtk: Re-license MTK NAND driver as Dual MIT/GPL
  mtd: rawnand: gpmi: remove double assignment to block_size
  dt-bindings: mtd: brcmnand: Add brcmnand, brcmnand-v7.3 support
  mtd: rawnand: brcmnand: Add support for v7.3 controller
  mtd: rawnand: brcmnand: Refactored code to introduce helper functions
  mtd: rawnand: brcmnand: When oops in progress use pio and interrupt polling
  mtd: Add flag to indicate panic_write
  mtd: rawnand: Add Macronix NAND read retry support
  mtd: onenand: Avoid fall-through warnings
  mtd: spinand: Add support for GigaDevice GD5F1GQ4UFxxG
  mtd: spinand: Add support for two-byte device IDs
  ...

1  2 
MAINTAINERS
drivers/mtd/nand/onenand/onenand_base.c
drivers/mtd/nand/raw/nand_base.c
drivers/mtd/nand/spi/gigadevice.c
drivers/mtd/spi-nor/intel-spi-pci.c
drivers/mtd/spi-nor/spi-nor.c
include/linux/mtd/onenand_regs.h
include/linux/mtd/rawnand.h

diff --combined MAINTAINERS
@@@ -321,7 -321,7 +321,7 @@@ F: drivers/pnp/pnpacpi
  F:    include/linux/acpi.h
  F:    include/linux/fwnode.h
  F:    include/acpi/
 -F:    Documentation/acpi/
 +F:    Documentation/firmware-guide/acpi/
  F:    Documentation/ABI/testing/sysfs-bus-acpi
  F:    Documentation/ABI/testing/configfs-acpi
  F:    drivers/pci/*acpi*
@@@ -364,7 -364,7 +364,7 @@@ F: drivers/acpi/fan.
  
  ACPI FOR ARM64 (ACPI/arm64)
  M:    Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
 -M:    Hanjun Guo <hanjun.guo@linaro.org>
 +M:    Hanjun Guo <guohanjun@huawei.com>
  M:    Sudeep Holla <sudeep.holla@arm.com>
  L:    linux-acpi@vger.kernel.org
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@@ -551,7 -551,6 +551,7 @@@ W: http://wiki.analog.com/ADXL34
  W:    http://ez.analog.com/community/linux-device-drivers
  S:    Supported
  F:    drivers/input/misc/adxl34x.c
 +F:    Documentation/devicetree/bindings/iio/accel/adi,adxl345.yaml
  
  ADXL372 THREE-AXIS DIGITAL ACCELEROMETER DRIVER
  M:    Stefan Popa <stefan.popa@analog.com>
@@@ -560,7 -559,7 +560,7 @@@ S: Supporte
  F:    drivers/iio/accel/adxl372.c
  F:    drivers/iio/accel/adxl372_spi.c
  F:    drivers/iio/accel/adxl372_i2c.c
 -F:    Documentation/devicetree/bindings/iio/accel/adxl372.txt
 +F:    Documentation/devicetree/bindings/iio/accel/adi,adxl372.yaml
  
  AF9013 MEDIA DRIVER
  M:    Antti Palosaari <crope@iki.fi>
@@@ -669,13 -668,6 +669,13 @@@ S:       Maintaine
  F:    Documentation/i2c/busses/i2c-ali1563
  F:    drivers/i2c/busses/i2c-ali1563.c
  
 +ALLEGRO DVT VIDEO IP CORE DRIVER
 +M:    Michael Tretter <m.tretter@pengutronix.de>
 +R:    Pengutronix Kernel Team <kernel@pengutronix.de>
 +L:    linux-media@vger.kernel.org
 +S:    Maintained
 +F:    drivers/staging/media/allegro-dvt/
 +
  ALLWINNER SECURITY SYSTEM
  M:    Corentin Labbe <clabbe.montjoie@gmail.com>
  L:    linux-crypto@vger.kernel.org
@@@ -917,17 -909,8 +917,17 @@@ S:       Supporte
  F:    drivers/iio/adc/ad7768-1.c
  F:    Documentation/devicetree/bindings/iio/adc/adi,ad7768-1.txt
  
 +ANALOG DEVICES INC AD7780 DRIVER
 +M:    Michael Hennerich <Michael.Hennerich@analog.com>
 +M:    Renato Lui Geh <renatogeh@gmail.com>
 +L:    linux-iio@vger.kernel.org
 +W:    http://ez.analog.com/community/linux-device-drivers
 +S:    Supported
 +F:    drivers/iio/adc/ad7780.c
 +F:    Documentation/devicetree/bindings/iio/adc/adi,ad7780.yaml
 +
  ANALOG DEVICES INC AD9389B DRIVER
 -M:    Hans Verkuil <hans.verkuil@cisco.com>
 +M:    Hans Verkuil <hverkuil-cisco@xs4all.nl>
  L:    linux-media@vger.kernel.org
  S:    Maintained
  F:    drivers/media/i2c/ad9389b*
@@@ -938,13 -921,6 +938,13 @@@ S:       Supporte
  F:    drivers/mux/adgs1408.c
  F:    Documentation/devicetree/bindings/mux/adi,adgs1408.txt
  
 +ANALOG DEVICES INC ADIS DRIVER LIBRARY
 +M:    Alexandru Ardelean <alexandru.ardelean@analog.com>
 +S:    Supported
 +L:    linux-iio@vger.kernel.org
 +F:    include/linux/iio/imu/adis.h
 +F:    drivers/iio/imu/adis.c
 +
  ANALOG DEVICES INC ADP5061 DRIVER
  M:    Stefan Popa <stefan.popa@analog.com>
  L:    linux-pm@vger.kernel.org
@@@ -966,19 -942,19 +966,19 @@@ S:      Maintaine
  F:    drivers/media/i2c/adv748x/*
  
  ANALOG DEVICES INC ADV7511 DRIVER
 -M:    Hans Verkuil <hans.verkuil@cisco.com>
 +M:    Hans Verkuil <hverkuil-cisco@xs4all.nl>
  L:    linux-media@vger.kernel.org
  S:    Maintained
  F:    drivers/media/i2c/adv7511*
  
  ANALOG DEVICES INC ADV7604 DRIVER
 -M:    Hans Verkuil <hans.verkuil@cisco.com>
 +M:    Hans Verkuil <hverkuil-cisco@xs4all.nl>
  L:    linux-media@vger.kernel.org
  S:    Maintained
  F:    drivers/media/i2c/adv7604*
  
  ANALOG DEVICES INC ADV7842 DRIVER
 -M:    Hans Verkuil <hans.verkuil@cisco.com>
 +M:    Hans Verkuil <hverkuil-cisco@xs4all.nl>
  L:    linux-media@vger.kernel.org
  S:    Maintained
  F:    drivers/media/i2c/adv7842*
@@@ -1164,15 -1140,6 +1164,15 @@@ L:    linux-media@vger.kernel.or
  S:    Maintained
  F:    drivers/media/i2c/aptina-pll.*
  
 +AQUANTIA ETHERNET DRIVER (atlantic)
 +M:    Igor Russkikh <igor.russkikh@aquantia.com>
 +L:    netdev@vger.kernel.org
 +S:    Supported
 +W:    http://www.aquantia.com
 +Q:    http://patchwork.ozlabs.org/project/netdev/list/
 +F:    drivers/net/ethernet/aquantia/atlantic/
 +F:    Documentation/networking/device_drivers/aquantia/atlantic.txt
 +
  ARC FRAMEBUFFER DRIVER
  M:    Jaya Kumar <jayalk@intworks.biz>
  S:    Maintained
@@@ -1268,7 -1235,7 +1268,7 @@@ F:      arch/arm/lib/floppydma.
  F:    arch/arm/include/asm/floppy.h
  
  ARM PMU PROFILING AND DEBUGGING
 -M:    Will Deacon <will.deacon@arm.com>
 +M:    Will Deacon <will@kernel.org>
  M:    Mark Rutland <mark.rutland@arm.com>
  S:    Maintained
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@@ -1323,7 -1290,7 +1323,7 @@@ ARM PRIMECELL SSP PL022 SPI DRIVE
  M:    Linus Walleij <linus.walleij@linaro.org>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
 -F:    Documentation/devicetree/bindings/spi/spi_pl022.txt
 +F:    Documentation/devicetree/bindings/spi/spi-pl022.yaml
  F:    drivers/spi/spi-pl022.c
  
  ARM PRIMECELL UART PL010 AND PL011 DRIVERS
@@@ -1339,14 -1306,8 +1339,14 @@@ S:    Maintaine
  F:    Documentation/devicetree/bindings/interrupt-controller/arm,vic.txt
  F:    drivers/irqchip/irq-vic.c
  
 +AMAZON ANNAPURNA LABS FIC DRIVER
 +M:    Talel Shenhar <talel@amazon.com>
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/interrupt-controller/amazon,al-fic.txt
 +F:    drivers/irqchip/irq-al-fic.c
 +
  ARM SMMU DRIVERS
 -M:    Will Deacon <will.deacon@arm.com>
 +M:    Will Deacon <will@kernel.org>
  R:    Robin Murphy <robin.murphy@arm.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
@@@ -2124,7 -2085,7 +2124,7 @@@ F:      drivers/tty/serial/msm_serial.
  F:    drivers/usb/dwc3/dwc3-qcom.c
  F:    include/dt-bindings/*/qcom*
  F:    include/linux/*/qcom*
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux.git
  
  ARM/RADISYS ENP2611 MACHINE SUPPORT
  M:    Lennert Buytenhek <kernel@wantstofly.org>
@@@ -2140,7 -2101,7 +2140,7 @@@ F:      arch/arm/boot/dts/rda8810pl-
  F:    drivers/clocksource/timer-rda.c
  F:    drivers/irqchip/irq-rda-intc.c
  F:    drivers/tty/serial/rda-uart.c
 -F:    Documentation/devicetree/bindings/arm/rda.txt
 +F:    Documentation/devicetree/bindings/arm/rda.yaml
  F:    Documentation/devicetree/bindings/interrupt-controller/rda,8810pl-intc.txt
  F:    Documentation/devicetree/bindings/serial/rda,8810pl-uart.txt
  F:    Documentation/devicetree/bindings/timer/rda,8810pl-timer.txt
@@@ -2383,7 -2344,7 +2383,7 @@@ L:      linux-arm-kernel@lists.infradead.or
  S:    Maintained
  
  ARM/TEGRA HDMI CEC SUBSYSTEM SUPPORT
 -M:    Hans Verkuil <hans.verkuil@cisco.com>
 +M:    Hans Verkuil <hverkuil-cisco@xs4all.nl>
  L:    linux-tegra@vger.kernel.org
  L:    linux-media@vger.kernel.org
  S:    Maintained
@@@ -2589,7 -2550,7 +2589,7 @@@ F:      drivers/i2c/busses/i2c-xiic.
  
  ARM64 PORT (AARCH64 ARCHITECTURE)
  M:    Catalin Marinas <catalin.marinas@arm.com>
 -M:    Will Deacon <will.deacon@arm.com>
 +M:    Will Deacon <will@kernel.org>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git
  S:    Maintained
@@@ -2625,15 -2586,6 +2625,15 @@@ S:    Maintaine
  F:    Documentation/hwmon/asc7621.rst
  F:    drivers/hwmon/asc7621.c
  
 +ASPEED PINCTRL DRIVERS
 +M:    Andrew Jeffery <andrew@aj.id.au>
 +L:    linux-aspeed@lists.ozlabs.org (moderated for non-subscribers)
 +L:    openbmc@lists.ozlabs.org (moderated for non-subscribers)
 +L:    linux-gpio@vger.kernel.org
 +S:    Maintained
 +F:    drivers/pinctrl/aspeed/
 +F:    Documentation/devicetree/bindings/pinctrl/aspeed,*
 +
  ASPEED VIDEO ENGINE DRIVER
  M:    Eddie James <eajames@linux.ibm.com>
  L:    linux-media@vger.kernel.org
@@@ -2782,7 -2734,7 +2782,7 @@@ S:      Maintaine
  F:    drivers/net/wireless/atmel/atmel*
  
  ATOMIC INFRASTRUCTURE
 -M:    Will Deacon <will.deacon@arm.com>
 +M:    Will Deacon <will@kernel.org>
  M:    Peter Zijlstra <peterz@infradead.org>
  R:    Boqun Feng <boqun.feng@gmail.com>
  L:    linux-kernel@vger.kernel.org
@@@ -3169,8 -3121,7 +3169,8 @@@ F:      arch/arm/mach-bcm
  
  BROADCOM BCM2835 ARM ARCHITECTURE
  M:    Eric Anholt <eric@anholt.net>
 -M:    Stefan Wahren <stefan.wahren@i2se.com>
 +M:    Stefan Wahren <wahrenst@gmx.net>
 +L:    bcm-kernel-feedback-list@broadcom.com
  L:    linux-rpi-kernel@lists.infradead.org (moderated for non-subscribers)
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  T:    git git://github.com/anholt/linux
@@@ -3200,7 -3151,6 +3200,7 @@@ F:      arch/arm/boot/dts/bcm953012
  
  BROADCOM BCM53573 ARM ARCHITECTURE
  M:    Rafał Miłecki <rafal@milecki.pl>
 +L:    bcm-kernel-feedback-list@broadcom.com
  L:    linux-arm-kernel@lists.infradead.org
  S:    Maintained
  F:    arch/arm/boot/dts/bcm53573*
@@@ -3727,7 -3677,7 +3727,7 @@@ F:      drivers/crypto/ccree
  W:    https://developer.arm.com/products/system-ip/trustzone-cryptocell/cryptocell-700-family
  
  CEC FRAMEWORK
 -M:    Hans Verkuil <hans.verkuil@cisco.com>
 +M:    Hans Verkuil <hverkuil-cisco@xs4all.nl>
  L:    linux-media@vger.kernel.org
  T:    git git://linuxtv.org/media_tree.git
  W:    http://linuxtv.org
@@@ -3744,7 -3694,7 +3744,7 @@@ F:      Documentation/devicetree/bindings/me
  F:    Documentation/ABI/testing/debugfs-cec-error-inj
  
  CEC GPIO DRIVER
 -M:    Hans Verkuil <hans.verkuil@cisco.com>
 +M:    Hans Verkuil <hverkuil-cisco@xs4all.nl>
  L:    linux-media@vger.kernel.org
  T:    git git://linuxtv.org/media_tree.git
  W:    http://linuxtv.org
@@@ -3801,7 -3751,7 +3801,7 @@@ F:      scripts/extract-cert.
  CERTIFIED WIRELESS USB (WUSB) SUBSYSTEM:
  L:    linux-usb@vger.kernel.org
  S:    Orphan
 -F:    Documentation/usb/WUSB-Design-overview.txt
 +F:    Documentation/usb/wusb-design-overview.rst
  F:    Documentation/usb/wusb-cbaf
  F:    drivers/usb/host/hwa-hc.c
  F:    drivers/usb/host/whci/
@@@ -3936,7 -3886,7 +3936,7 @@@ F:      Documentation/devicetree/bindings/hw
  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
 +F:    Documentation/hwmon/lochnagar.rst
  
  CISCO FCOE HBA DRIVER
  M:    Satish Kharat <satishkh@cisco.com>
@@@ -3977,32 -3927,19 +3977,32 @@@ W:   https://github.com/CirrusLogic/linux
  S:    Supported
  F:    Documentation/devicetree/bindings/mfd/madera.txt
  F:    Documentation/devicetree/bindings/pinctrl/cirrus,madera-pinctrl.txt
 +F:    Documentation/devicetree/bindings/sound/madera.txt
 +F:    include/dt-bindings/sound/madera*
  F:    include/linux/irqchip/irq-madera*
  F:    include/linux/mfd/madera/*
 +F:    include/sound/madera*
  F:    drivers/gpio/gpio-madera*
  F:    drivers/irqchip/irq-madera*
  F:    drivers/mfd/madera*
  F:    drivers/mfd/cs47l*
  F:    drivers/pinctrl/cirrus/*
 +F:    sound/soc/codecs/cs47l*
 +F:    sound/soc/codecs/madera*
  
  CLANG-FORMAT FILE
  M:    Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
  S:    Maintained
  F:    .clang-format
  
 +CLANG/LLVM BUILD SUPPORT
 +L:    clang-built-linux@googlegroups.com
 +W:    https://clangbuiltlinux.github.io/
 +B:    https://github.com/ClangBuiltLinux/linux/issues
 +C:    irc://chat.freenode.net/clangbuiltlinux
 +S:    Supported
 +K:    \b(?i:clang|llvm)\b
 +
  CLEANCACHE API
  M:    Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
  L:    linux-kernel@vger.kernel.org
@@@ -4033,7 -3970,7 +4033,7 @@@ S:      Supporte
  F:    drivers/platform/x86/classmate-laptop.c
  
  COBALT MEDIA DRIVER
 -M:    Hans Verkuil <hans.verkuil@cisco.com>
 +M:    Hans Verkuil <hverkuil-cisco@xs4all.nl>
  L:    linux-media@vger.kernel.org
  T:    git git://linuxtv.org/media_tree.git
  W:    https://linuxtv.org
@@@ -4169,7 -4106,7 +4169,7 @@@ W:      http://www.bullopensource.org/cpuset
  W:    http://oss.sgi.com/projects/cpusets/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git
  S:    Maintained
 -F:    Documentation/cgroup-v1/cpusets.txt
 +F:    Documentation/cgroup-v1/cpusets.rst
  F:    include/linux/cpuset.h
  F:    kernel/cgroup/cpuset.c
  
@@@ -4304,7 -4241,6 +4304,7 @@@ F:      crypto
  F:    drivers/crypto/
  F:    include/crypto/
  F:    include/linux/crypto*
 +F:    lib/crypto/
  
  CRYPTOGRAPHIC RANDOM NUMBER GENERATOR
  M:    Neil Horman <nhorman@tuxdriver.com>
@@@ -4761,7 -4697,6 +4761,7 @@@ F:      Documentation/devicetree/bindings/mf
  F:    Documentation/devicetree/bindings/input/da90??-onkey.txt
  F:    Documentation/devicetree/bindings/thermal/da90??-thermal.txt
  F:    Documentation/devicetree/bindings/regulator/da92*.txt
 +F:    Documentation/devicetree/bindings/regulator/slg51000.txt
  F:    Documentation/devicetree/bindings/watchdog/da90??-wdt.txt
  F:    Documentation/devicetree/bindings/sound/da[79]*.txt
  F:    drivers/gpio/gpio-da90??.c
@@@ -4777,7 -4712,6 +4777,7 @@@ F:      drivers/power/supply/da9052-battery.
  F:    drivers/power/supply/da91??-*.c
  F:    drivers/regulator/da903x.c
  F:    drivers/regulator/da9???-regulator.[ch]
 +F:    drivers/regulator/slg51000-regulator.[ch]
  F:    drivers/thermal/da90??-thermal.c
  F:    drivers/rtc/rtc-da90??.c
  F:    drivers/video/backlight/da90??_bl.c
@@@ -4855,7 -4789,7 +4855,7 @@@ S:      Maintaine
  W:    http://plugable.com/category/projects/udlfb/
  F:    drivers/video/fbdev/udlfb.c
  F:    include/video/udlfb.h
 -F:    Documentation/fb/udlfb.txt
 +F:    Documentation/fb/udlfb.rst
  
  DISTRIBUTED LOCK MANAGER (DLM)
  M:    Christine Caulfield <ccaulfie@redhat.com>
@@@ -4928,7 -4862,7 +4928,7 @@@ S:      Maintaine
  F:    Documentation/
  F:    scripts/kernel-doc
  X:    Documentation/ABI/
 -X:    Documentation/acpi/
 +X:    Documentation/firmware-guide/acpi/
  X:    Documentation/devicetree/
  X:    Documentation/i2c/
  X:    Documentation/media/
@@@ -4988,6 -4922,13 +4988,6 @@@ L:     linux-kernel@vger.kernel.or
  S:    Maintained
  F:    drivers/staging/fsl-dpaa2/ethsw
  
 -DPAA2 PTP CLOCK DRIVER
 -M:    Yangbo Lu <yangbo.lu@nxp.com>
 -L:    netdev@vger.kernel.org
 -S:    Maintained
 -F:    drivers/net/ethernet/freescale/dpaa2/dpaa2-ptp*
 -F:    drivers/net/ethernet/freescale/dpaa2/dprtc*
 -
  DPT_I2O SCSI RAID DRIVER
  M:    Adaptec OEM Raid Solutions <aacraid@microsemi.com>
  L:    linux-scsi@vger.kernel.org
@@@ -5659,8 -5600,7 +5659,8 @@@ F:      include/linux/dynamic_debug.
  DYNAMIC INTERRUPT MODERATION
  M:    Tal Gilboa <talgi@mellanox.com>
  S:    Maintained
 -F:    include/linux/net_dim.h
 +F:    include/linux/dim.h
 +F:    lib/dim/
  
  DZ DECSTATION DZ11 SERIAL DRIVER
  M:    "Maciej W. Rozycki" <macro@linux-mips.org>
@@@ -5869,12 -5809,6 +5869,12 @@@ L:    linux-edac@vger.kernel.or
  S:    Maintained
  F:    drivers/edac/sb_edac.c
  
 +EDAC-SIFIVE
 +M:    Yash Shah <yash.shah@sifive.com>
 +L:    linux-edac@vger.kernel.org
 +S:    Supported
 +F:    drivers/edac/sifive_edac.c
 +
  EDAC-SKYLAKE
  M:    Tony Luck <tony.luck@intel.com>
  L:    linux-edac@vger.kernel.org
@@@ -6034,7 -5968,6 +6034,7 @@@ M:      Heiner Kallweit <hkallweit1@gmail.co
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    Documentation/ABI/testing/sysfs-bus-mdio
 +F:    Documentation/devicetree/bindings/net/ethernet-phy.yaml
  F:    Documentation/devicetree/bindings/net/mdio*
  F:    Documentation/networking/phy.rst
  F:    drivers/net/phy/
@@@ -6099,7 -6032,7 +6099,7 @@@ S:      Maintaine
  F:    drivers/extcon/
  F:    include/linux/extcon/
  F:    include/linux/extcon.h
 -F:    Documentation/extcon/
 +F:    Documentation/firmware-guide/acpi/extcon-intel-int3496.rst
  F:    Documentation/devicetree/bindings/extcon/
  
  EXYNOS DP DRIVER
@@@ -6285,14 -6218,6 +6285,14 @@@ M:    Philip Kelleher <pjk1939@linux.ibm.c
  S:    Maintained
  F:    drivers/block/rsxx/
  
 +FLEXTIMER FTM-QUADDEC DRIVER
 +M:    Patrick Havelange <patrick.havelange@essensium.com>
 +L:    linux-iio@vger.kernel.org
 +S:    Maintained
 +F:    Documentation/ABI/testing/sysfs-bus-counter-ftm-quadddec
 +F:    Documentation/devicetree/bindings/counter/ftm-quaddec.txt
 +F:    drivers/counter/ftm-quaddec.c
 +
  FLOPPY DRIVER
  M:    Jiri Kosina <jikos@kernel.org>
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jikos/floppy.git
@@@ -6309,6 -6234,7 +6309,6 @@@ F:      include/linux/ipmi-fru.
  K:    fmc_d.*register
  
  FPGA MANAGER FRAMEWORK
 -M:    Alan Tull <atull@kernel.org>
  M:    Moritz Fischer <mdf@kernel.org>
  L:    linux-fpga@vger.kernel.org
  S:    Maintained
@@@ -6325,7 -6251,7 +6325,7 @@@ FPGA DFL DRIVER
  M:    Wu Hao <hao.wu@intel.com>
  L:    linux-fpga@vger.kernel.org
  S:    Maintained
 -F:    Documentation/fpga/dfl.txt
 +F:    Documentation/fpga/dfl.rst
  F:    include/uapi/linux/fpga-dfl.h
  F:    drivers/fpga/dfl*
  
@@@ -6402,13 -6328,6 +6402,13 @@@ L:    linux-i2c@vger.kernel.or
  S:    Maintained
  F:    drivers/i2c/busses/i2c-cpm.c
  
 +FREESCALE IMX DDR PMU DRIVER
 +M:    Frank Li <Frank.li@nxp.com>
 +L:    linux-arm-kernel@lists.infradead.org
 +S:    Maintained
 +F:    drivers/perf/fsl_imx8_ddr_perf.c
 +F:    Documentation/devicetree/bindings/perf/fsl-imx-ddr.txt
 +
  FREESCALE IMX LPI2C DRIVER
  M:    Dong Aisheng <aisheng.dong@nxp.com>
  L:    linux-i2c@vger.kernel.org
@@@ -6452,8 -6371,6 +6452,8 @@@ FREESCALE QORIQ PTP CLOCK DRIVE
  M:    Yangbo Lu <yangbo.lu@nxp.com>
  L:    netdev@vger.kernel.org
  S:    Maintained
 +F:    drivers/net/ethernet/freescale/dpaa2/dpaa2-ptp*
 +F:    drivers/net/ethernet/freescale/dpaa2/dprtc*
  F:    drivers/net/ethernet/freescale/enetc/enetc_ptp.c
  F:    drivers/ptp/ptp_qoriq.c
  F:    drivers/ptp/ptp_qoriq_debugfs.c
@@@ -6572,19 -6489,6 +6572,19 @@@ F:    fs/crypto
  F:    include/linux/fscrypt*.h
  F:    Documentation/filesystems/fscrypt.rst
  
 +FSI SUBSYSTEM
 +M:    Jeremy Kerr <jk@ozlabs.org>
 +M:    Joel Stanley <joel@jms.id.au>
 +R:    Alistar Popple <alistair@popple.id.au>
 +R:    Eddie James <eajames@linux.ibm.com>
 +L:    linux-fsi@lists.ozlabs.org
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/joel/fsi.git
 +Q:    http://patchwork.ozlabs.org/project/linux-fsi/list/
 +S:    Supported
 +F:    drivers/fsi/
 +F:    include/linux/fsi*.h
 +F:    include/trace/events/fsi*.h
 +
  FSI-ATTACHED I2C DRIVER
  M:    Eddie James <eajames@linux.ibm.com>
  L:    linux-i2c@vger.kernel.org
@@@ -6761,18 -6665,6 +6761,18 @@@ L:    kvm@vger.kernel.or
  S:    Supported
  F:    drivers/uio/uio_pci_generic.c
  
 +GENERIC VDSO LIBRARY:
 +M:    Andy Lutomirski <luto@kernel.org>
 +M:    Thomas Gleixner <tglx@linutronix.de>
 +M:    Vincenzo Frascino <vincenzo.frascino@arm.com>
 +L:    linux-kernel@vger.kernel.org
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git timers/vdso
 +S:    Maintained
 +F:    lib/vdso/
 +F:    kernel/time/vsyscall.c
 +F:    include/vdso/
 +F:    include/asm-generic/vdso/vsyscall.h
 +
  GENWQE (IBM Generic Workqueue Card)
  M:    Frank Haverkamp <haver@linux.ibm.com>
  S:    Supported
@@@ -6799,7 -6691,9 +6799,7 @@@ M:      Paul Bolle <pebolle@tiscali.nl
  L:    gigaset307x-common@lists.sourceforge.net
  W:    http://gigaset307x.sourceforge.net/
  S:    Odd Fixes
 -F:    Documentation/isdn/README.gigaset
 -F:    drivers/isdn/gigaset/
 -F:    include/uapi/linux/gigaset_dev.h
 +F:    drivers/staging/isdn/gigaset/
  
  GNSS SUBSYSTEM
  M:    Johan Hovold <johan@kernel.org>
@@@ -6811,7 -6705,7 +6811,7 @@@ F:      drivers/gnss
  F:    include/linux/gnss.h
  
  GO7007 MPEG CODEC
 -M:    Hans Verkuil <hans.verkuil@cisco.com>
 +M:    Hans Verkuil <hverkuil-cisco@xs4all.nl>
  L:    linux-media@vger.kernel.org
  S:    Maintained
  F:    drivers/media/usb/go7007/
@@@ -6822,15 -6716,6 +6822,15 @@@ L:    linux-input@vger.kernel.or
  S:    Maintained
  F:    drivers/input/touchscreen/goodix.c
  
 +GOOGLE ETHERNET DRIVERS
 +M:    Catherine Sullivan <csully@google.com>
 +R:    Sagi Shahar <sagis@google.com>
 +R:    Jon Olson <jonolson@google.com>
 +L:    netdev@vger.kernel.org
 +S:    Supported
 +F:    Documentation/networking/device_drivers/google/gve.txt
 +F:    drivers/net/ethernet/google
 +
  GPD POCKET FAN DRIVER
  M:    Hans de Goede <hdegoede@redhat.com>
  L:    platform-driver-x86@vger.kernel.org
@@@ -7124,7 -7009,7 +7124,7 @@@ F:      drivers/media/usb/hdpvr
  HEWLETT PACKARD ENTERPRISE ILO NMI WATCHDOG DRIVER
  M:    Jerry Hoemann <jerry.hoemann@hpe.com>
  S:    Supported
 -F:    Documentation/watchdog/hpwdt.txt
 +F:    Documentation/watchdog/hpwdt.rst
  F:    drivers/watchdog/hpwdt.c
  
  HEWLETT-PACKARD SMART ARRAY RAID DRIVER (hpsa)
@@@ -7307,7 -7192,7 +7307,7 @@@ F:      drivers/net/ethernet/hp/hp100.
  HPET: High Precision Event Timers driver
  M:    Clemens Ladisch <clemens@ladisch.de>
  S:    Maintained
 -F:    Documentation/timers/hpet.txt
 +F:    Documentation/timers/hpet.rst
  F:    drivers/char/hpet.c
  F:    include/linux/hpet.h
  F:    include/uapi/linux/hpet.h
@@@ -7417,7 -7302,6 +7417,7 @@@ F:      arch/x86/include/asm/trace/hyperv.
  F:    arch/x86/include/asm/hyperv-tlfs.h
  F:    arch/x86/kernel/cpu/mshyperv.c
  F:    arch/x86/hyperv
 +F:    drivers/clocksource/hyperv_timer.c
  F:    drivers/hid/hid-hyperv.c
  F:    drivers/hv/
  F:    drivers/input/serio/hyperv-keyboard.c
@@@ -7428,13 -7312,19 +7428,21 @@@ F:   drivers/uio/uio_hv_generic.
  F:    drivers/video/fbdev/hyperv_fb.c
  F:    drivers/iommu/hyperv_iommu.c
  F:    net/vmw_vsock/hyperv_transport.c
 +F:    include/clocksource/hyperv_timer.h
  F:    include/linux/hyperv.h
  F:    include/uapi/linux/hyperv.h
 +F:    include/asm-generic/mshyperv.h
  F:    tools/hv/
  F:    Documentation/ABI/stable/sysfs-bus-vmbus
  
+ HYPERBUS SUPPORT
+ M:    Vignesh Raghavendra <vigneshr@ti.com>
+ S:    Supported
+ F:    drivers/mtd/hyperbus/
+ F:    include/linux/mtd/hyperbus.h
+ F:    Documentation/devicetree/bindings/mtd/cypress,hyperflash.txt
+ F:    Documentation/devicetree/bindings/mtd/ti,am654-hbmc.txt
  HYPERVISOR VIRTUAL CONSOLE DRIVER
  L:    linuxppc-dev@lists.ozlabs.org
  S:    Odd Fixes
@@@ -7728,7 -7618,7 +7736,7 @@@ IDE/ATAPI DRIVER
  M:    Borislav Petkov <bp@alien8.de>
  L:    linux-ide@vger.kernel.org
  S:    Maintained
 -F:    Documentation/cdrom/ide-cd
 +F:    Documentation/cdrom/ide-cd.rst
  F:    drivers/ide/ide-cd*
  
  IDEAPAD LAPTOP EXTRAS DRIVER
@@@ -7891,12 -7781,6 +7899,12 @@@ W:    http://industrypack.sourceforge.ne
  S:    Maintained
  F:    drivers/ipack/
  
 +INFINEON DPS310 Driver
 +M:    Eddie James <eajames@linux.ibm.com>
 +L:    linux-iio@vger.kernel.org
 +F:    drivers/iio/pressure/dps310.c
 +S:    Maintained
 +
  INFINIBAND SUBSYSTEM
  M:    Doug Ledford <dledford@redhat.com>
  M:    Jason Gunthorpe <jgg@mellanox.com>
@@@ -7925,7 -7809,7 +7933,7 @@@ INGENIC JZ4780 NAND DRIVE
  M:    Harvey Hunt <harveyhuntnexus@gmail.com>
  L:    linux-mtd@lists.infradead.org
  S:    Maintained
 -F:    drivers/mtd/nand/raw/jz4780_*
 +F:    drivers/mtd/nand/raw/ingenic/
  
  INOTIFY
  M:    Jan Kara <jack@suse.cz>
@@@ -8047,7 -7931,7 +8055,7 @@@ INTEL FRAMEBUFFER DRIVER (excluding 81
  M:    Maik Broemme <mbroemme@libmpq.org>
  L:    linux-fbdev@vger.kernel.org
  S:    Maintained
 -F:    Documentation/fb/intelfb.txt
 +F:    Documentation/fb/intelfb.rst
  F:    drivers/video/fbdev/intelfb/
  
  INTEL GPIO DRIVERS
@@@ -8158,7 -8042,7 +8166,7 @@@ F:      include/uapi/linux/mei.
  F:    include/linux/mei_cl_bus.h
  F:    drivers/misc/mei/*
  F:    drivers/watchdog/mei_wdt.c
 -F:    Documentation/misc-devices/mei/*
 +F:    Documentation/driver-api/mei/*
  F:    samples/mei/*
  
  INTEL MENLOW THERMAL DRIVER
@@@ -8499,26 -8383,18 +8507,26 @@@ S:   Supporte
  W:    http://www.linux-iscsi.org
  F:    drivers/infiniband/ulp/isert
  
 -ISDN SUBSYSTEM
 +ISDN/mISDN SUBSYSTEM
  M:    Karsten Keil <isdn@linux-pingi.de>
  L:    isdn4linux@listserv.isdn4linux.de (subscribers-only)
  L:    netdev@vger.kernel.org
  W:    http://www.isdn4linux.de
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kkeil/isdn-2.6.git
  S:    Maintained
 +F:    drivers/isdn/mISDN
 +F:    drivers/isdn/hardware
 +
 +ISDN/CAPI SUBSYSTEM
 +M:    Karsten Keil <isdn@linux-pingi.de>
 +L:    isdn4linux@listserv.isdn4linux.de (subscribers-only)
 +L:    netdev@vger.kernel.org
 +W:    http://www.isdn4linux.de
 +S:    Odd Fixes
  F:    Documentation/isdn/
 -F:    drivers/isdn/
 -F:    include/linux/isdn.h
 +F:    drivers/isdn/capi/
 +F:    drivers/staging/isdn/
 +F:    net/bluetooth/cmtp/
  F:    include/linux/isdn/
 -F:    include/uapi/linux/isdn.h
  F:    include/uapi/linux/isdn/
  
  IT87 HARDWARE MONITORING DRIVER
@@@ -8698,7 -8574,7 +8706,7 @@@ S:      Odd Fixe
  
  KERNEL NFSD, SUNRPC, AND LOCKD SERVERS
  M:    "J. Bruce Fields" <bfields@fieldses.org>
 -M:    Jeff Layton <jlayton@kernel.org>
 +M:    Chuck Lever <chuck.lever@oracle.com>
  L:    linux-nfs@vger.kernel.org
  W:    http://nfs.sourceforge.net/
  T:    git git://linux-nfs.org/~bfields/linux.git
@@@ -8991,7 -8867,7 +8999,7 @@@ F:      include/linux/leds.
  LEGACY EEPROM DRIVER
  M:    Jean Delvare <jdelvare@suse.com>
  S:    Maintained
 -F:    Documentation/misc-devices/eeprom
 +F:    Documentation/misc-devices/eeprom.rst
  F:    drivers/misc/eeprom/eeprom.c
  
  LEGO MINDSTORMS EV3
@@@ -9253,7 -9129,7 +9261,7 @@@ F:      drivers/misc/lkdtm/
  LINUX KERNEL MEMORY CONSISTENCY MODEL (LKMM)
  M:    Alan Stern <stern@rowland.harvard.edu>
  M:    Andrea Parri <andrea.parri@amarulasolutions.com>
 -M:    Will Deacon <will.deacon@arm.com>
 +M:    Will Deacon <will@kernel.org>
  M:    Peter Zijlstra <peterz@infradead.org>
  M:    Boqun Feng <boqun.feng@gmail.com>
  M:    Nicholas Piggin <npiggin@gmail.com>
@@@ -9277,7 -9153,7 +9285,7 @@@ F:      Documentation/memory-barriers.tx
  LIS3LV02D ACCELEROMETER DRIVER
  M:    Eric Piel <eric.piel@tremplin-utc.net>
  S:    Maintained
 -F:    Documentation/misc-devices/lis3lv02d
 +F:    Documentation/misc-devices/lis3lv02d.rst
  F:    drivers/misc/lis3lv02d/
  F:    drivers/platform/x86/hp_accel.c
  
@@@ -9361,7 -9237,7 +9369,7 @@@ F:      Documentation/admin-guide/LSM/LoadPi
  LOCKING PRIMITIVES
  M:    Peter Zijlstra <peterz@infradead.org>
  M:    Ingo Molnar <mingo@redhat.com>
 -M:    Will Deacon <will.deacon@arm.com>
 +M:    Will Deacon <will@kernel.org>
  L:    linux-kernel@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git locking/core
  S:    Maintained
@@@ -9768,17 -9644,6 +9776,17 @@@ L:    linux-iio@vger.kernel.or
  S:    Maintained
  F:    drivers/iio/dac/cio-dac.c
  
 +MEDIA CONTROLLER FRAMEWORK
 +M:    Sakari Ailus <sakari.ailus@linux.intel.com>
 +M:    Laurent Pinchart <laurent.pinchart@ideasonboard.com>
 +L:    linux-media@vger.kernel.org
 +W:    https://www.linuxtv.org
 +T:    git git://linuxtv.org/media_tree.git
 +S:    Supported
 +F:    drivers/media/mc/
 +F:    include/media/media-*.h
 +F:    include/uapi/linux/media.h
 +
  MEDIA DRIVERS FOR ASCOT2E
  M:    Sergey Kozlov <serjk@netup.ru>
  M:    Abylay Ospan <aospan@netup.ru>
@@@ -10245,7 -10110,6 +10253,7 @@@ Q:   http://patchwork.ozlabs.org/project/
  S:    Supported
  F:    drivers/net/ethernet/mellanox/mlx5/core/
  F:    include/linux/mlx5/
 +F:    Documentation/networking/device_drivers/mellanox/
  
  MELLANOX MLX5 IB driver
  M:    Leon Romanovsky <leonro@mellanox.com>
@@@ -10272,7 -10136,7 +10280,7 @@@ L:   linux-leds@vger.kernel.or
  S:    Supported
  F:    drivers/leds/leds-mlxcpld.c
  F:    drivers/leds/leds-mlxreg.c
 -F:    Documentation/leds/leds-mlxcpld.txt
 +F:    Documentation/leds/leds-mlxcpld.rst
  
  MELLANOX PLATFORM DRIVER
  M:    Vadim Pasternak <vadimp@mellanox.com>
@@@ -10356,7 -10220,7 +10364,7 @@@ F:   drivers/watchdog/menz69_wdt.
  
  MESON AO CEC DRIVER FOR AMLOGIC SOCS
  M:    Neil Armstrong <narmstrong@baylibre.com>
 -L:    linux-media@lists.freedesktop.org
 +L:    linux-media@vger.kernel.org
  L:    linux-amlogic@lists.infradead.org
  W:    http://linux-meson.com/
  S:    Supported
@@@ -10372,14 -10236,6 +10380,14 @@@ S: Maintaine
  F:    drivers/mtd/nand/raw/meson_*
  F:    Documentation/devicetree/bindings/mtd/amlogic,meson-nand.txt
  
 +MESON VIDEO DECODER DRIVER FOR AMLOGIC SOCS
 +M:    Maxime Jourdan <mjourdan@baylibre.com>
 +L:    linux-media@vger.kernel.org
 +L:    linux-amlogic@lists.infradead.org
 +S:    Supported
 +F:    drivers/staging/media/meson/vdec/
 +T:    git git://linuxtv.org/media_tree.git
 +
  METHODE UDPU SUPPORT
  M:    Vladimir Vid <vladimir.vid@sartura.hr>
  S:    Maintained
@@@ -10433,9 -10289,7 +10441,9 @@@ MICROCHIP ISC DRIVE
  M:    Eugen Hristev <eugen.hristev@microchip.com>
  L:    linux-media@vger.kernel.org
  S:    Supported
 -F:    drivers/media/platform/atmel/atmel-isc.c
 +F:    drivers/media/platform/atmel/atmel-sama5d2-isc.c
 +F:    drivers/media/platform/atmel/atmel-isc.h
 +F:    drivers/media/platform/atmel/atmel-isc-base.c
  F:    drivers/media/platform/atmel/atmel-isc-regs.h
  F:    Documentation/devicetree/bindings/media/atmel-isc.txt
  
@@@ -10704,7 -10558,7 +10712,7 @@@ F:   arch/arm/boot/dts/mmp
  F:    arch/arm/mach-mmp/
  
  MMU GATHER AND TLB INVALIDATION
 -M:    Will Deacon <will.deacon@arm.com>
 +M:    Will Deacon <will@kernel.org>
  M:    "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com>
  M:    Andrew Morton <akpm@linux-foundation.org>
  M:    Nick Piggin <npiggin@gmail.com>
@@@ -11019,7 -10873,7 +11027,7 @@@ F:   drivers/net/ethernet/neterion
  
  NETFILTER
  M:    Pablo Neira Ayuso <pablo@netfilter.org>
 -M:    Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>
 +M:    Jozsef Kadlecsik <kadlec@netfilter.org>
  M:    Florian Westphal <fw@strlen.de>
  L:    netfilter-devel@vger.kernel.org
  L:    coreteam@netfilter.org
@@@ -11232,15 -11086,6 +11240,15 @@@ L: netdev@vger.kernel.or
  S:    Supported
  F:    drivers/net/ethernet/qlogic/netxen/
  
 +NEXTHOP
 +M:    David Ahern <dsahern@kernel.org>
 +L:    netdev@vger.kernel.org
 +S:    Maintained
 +F:    include/net/nexthop.h
 +F:    include/uapi/linux/nexthop.h
 +F:    include/net/netns/nexthop.h
 +F:    net/ipv4/nexthop.c
 +
  NFC SUBSYSTEM
  L:    netdev@vger.kernel.org
  S:    Orphan
@@@ -11270,7 -11115,7 +11278,7 @@@ F:   include/uapi/linux/nfs
  F:    include/uapi/linux/sunrpc/
  
  NILFS2 FILESYSTEM
 -M:    Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
 +M:    Ryusuke Konishi <konishi.ryusuke@gmail.com>
  L:    linux-nilfs@vger.kernel.org
  W:    https://nilfs.sourceforge.io/
  W:    https://nilfs.osdn.jp/
@@@ -11444,7 -11289,7 +11452,7 @@@ NXP FXAS21002C DRIVE
  M:    Rui Miguel Silva <rmfrfs@gmail.com>
  L:    linux-iio@vger.kernel.org
  S:    Maintained
 -F:    Documentation/devicetree/bindings/iio/gyroscope/fxas21002c.txt
 +F:    Documentation/devicetree/bindings/iio/gyroscope/nxp,fxas21002c.txt
  F:    drivers/iio/gyro/fxas21002c_core.c
  F:    drivers/iio/gyro/fxas21002c.h
  F:    drivers/iio/gyro/fxas21002c_i2c.c
@@@ -11834,6 -11679,16 +11842,6 @@@ S:  Maintaine
  F:    drivers/mtd/nand/onenand/
  F:    include/linux/mtd/onenand*.h
  
 -ONSTREAM SCSI TAPE DRIVER
 -M:    Willem Riede <osst@riede.org>
 -L:    osst-users@lists.sourceforge.net
 -L:    linux-scsi@vger.kernel.org
 -S:    Maintained
 -F:    Documentation/scsi/osst.txt
 -F:    drivers/scsi/osst.*
 -F:    drivers/scsi/osst_*.h
 -F:    drivers/scsi/st.h
 -
  OP-TEE DRIVER
  M:    Jens Wiklander <jens.wiklander@linaro.org>
  S:    Maintained
@@@ -12024,14 -11879,6 +12032,14 @@@ F: kernel/padata.
  F:    include/linux/padata.h
  F:    Documentation/padata.txt
  
 +PAGE POOL
 +M:    Jesper Dangaard Brouer <hawk@kernel.org>
 +M:    Ilias Apalodimas <ilias.apalodimas@linaro.org>
 +L:    netdev@vger.kernel.org
 +S:    Supported
 +F:    net/core/page_pool.c
 +F:    include/net/page_pool.h
 +
  PANASONIC LAPTOP ACPI EXTRAS DRIVER
  M:    Harald Welte <laforge@gnumonks.org>
  L:    platform-driver-x86@vger.kernel.org
@@@ -12200,7 -12047,7 +12208,7 @@@ S:   Maintaine
  F:    drivers/pci/controller/dwc/*layerscape*
  
  PCI DRIVER FOR GENERIC OF HOSTS
 -M:    Will Deacon <will.deacon@arm.com>
 +M:    Will Deacon <will@kernel.org>
  L:    linux-pci@vger.kernel.org
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
@@@ -12725,7 -12572,8 +12733,7 @@@ S:   Orpha
  F:    drivers/scsi/pmcraid.*
  
  PMC SIERRA PM8001 DRIVER
 -M:    Jack Wang <jinpu.wang@profitbricks.com>
 -M:    lindar_liu@usish.com
 +M:    Jack Wang <jinpu.wang@cloud.ionos.com>
  L:    linux-scsi@vger.kernel.org
  S:    Supported
  F:    drivers/scsi/pm8001/
@@@ -12819,7 -12667,7 +12827,7 @@@ M:   Rodolfo Giometti <giometti@enneenne.
  W:    http://wiki.enneenne.com/index.php/LinuxPPS_support
  L:    linuxpps@ml.enneenne.com (subscribers-only)
  S:    Maintained
 -F:    Documentation/pps/
 +F:    Documentation/driver-api/pps.rst
  F:    Documentation/devicetree/bindings/pps/pps-gpio.txt
  F:    Documentation/ABI/testing/sysfs-pps
  F:    drivers/pps/
@@@ -12925,7 -12773,7 +12933,7 @@@ L:   netdev@vger.kernel.or
  S:    Maintained
  W:    http://linuxptp.sourceforge.net/
  F:    Documentation/ABI/testing/sysfs-ptp
 -F:    Documentation/ptp/*
 +F:    Documentation/driver-api/ptp.rst
  F:    drivers/net/phy/dp83640*
  F:    drivers/ptp/*
  F:    include/linux/ptp_cl*
@@@ -12939,6 -12787,7 +12947,6 @@@ F:   include/linux/regset.
  F:    include/linux/tracehook.h
  F:    include/uapi/linux/ptrace.h
  F:    include/uapi/linux/ptrace.h
 -F:    include/asm-generic/ptrace.h
  F:    kernel/ptrace.c
  F:    arch/*/ptrace*.c
  F:    arch/*/*/ptrace*.c
@@@ -13216,6 -13065,7 +13224,6 @@@ F:   Documentation/devicetree/bindings/ne
  
  QUALCOMM GENERIC INTERFACE I2C DRIVER
  M:    Alok Chauhan <alokc@codeaurora.org>
 -M:    Karthikeyan Ramasubramanian <kramasub@codeaurora.org>
  L:    linux-i2c@vger.kernel.org
  L:    linux-arm-msm@vger.kernel.org
  S:    Supported
@@@ -13656,11 -13506,11 +13664,11 @@@ S:        Maintaine
  F:    drivers/media/platform/rockchip/rga/
  F:    Documentation/devicetree/bindings/media/rockchip-rga.txt
  
 -ROCKCHIP VPU CODEC DRIVER
 +HANTRO VPU CODEC DRIVER
  M:    Ezequiel Garcia <ezequiel@collabora.com>
  L:    linux-media@vger.kernel.org
  S:    Maintained
 -F:    drivers/staging/media/platform/rockchip/vpu/
 +F:    drivers/staging/media/platform/hantro/
  F:    Documentation/devicetree/bindings/media/rockchip-vpu.txt
  
  ROCKER DRIVER
@@@ -13861,7 -13711,7 +13869,7 @@@ L:   linux-s390@vger.kernel.or
  L:    kvm@vger.kernel.org
  S:    Supported
  F:    drivers/s390/cio/vfio_ccw*
 -F:    Documentation/s390/vfio-ccw.txt
 +F:    Documentation/s390/vfio-ccw.rst
  F:    include/uapi/linux/vfio_ccw.h
  
  S390 ZCRYPT DRIVER
@@@ -13881,7 -13731,7 +13889,7 @@@ S:   Supporte
  F:    drivers/s390/crypto/vfio_ap_drv.c
  F:    drivers/s390/crypto/vfio_ap_private.h
  F:    drivers/s390/crypto/vfio_ap_ops.c
 -F:    Documentation/s390/vfio-ap.txt
 +F:    Documentation/s390/vfio-ap.rst
  
  S390 ZFCP DRIVER
  M:    Steffen Maier <maier@linux.ibm.com>
@@@ -14320,12 -14170,6 +14328,12 @@@ S: Maintaine
  F:    drivers/misc/phantom.c
  F:    include/uapi/linux/phantom.h
  
 +SENSIRION SPS30 AIR POLLUTION SENSOR DRIVER
 +M:    Tomasz Duszynski <tduszyns@gmail.com>
 +S:    Maintained
 +F:    drivers/iio/chemical/sps30.c
 +F:    Documentation/devicetree/bindings/iio/chemical/sensirion,sps30.yaml
 +
  SERIAL DEVICE BUS
  M:    Rob Herring <robh@kernel.org>
  L:    linux-serial@vger.kernel.org
@@@ -14500,15 -14344,6 +14508,15 @@@ S: Supporte
  K:    sifive
  N:    sifive
  
 +SIFIVE FU540 SYSTEM-ON-CHIP
 +M:    Paul Walmsley <paul.walmsley@sifive.com>
 +M:    Palmer Dabbelt <palmer@sifive.com>
 +L:    linux-riscv@lists.infradead.org
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/pjw/sifive.git
 +S:    Supported
 +K:    fu540
 +N:    fu540
 +
  SILEAD TOUCHSCREEN DRIVER
  M:    Hans de Goede <hdegoede@redhat.com>
  L:    linux-input@vger.kernel.org
@@@ -14524,7 -14359,7 +14532,7 @@@ M:   Sudip Mukherjee <sudip.mukherjee@cod
  L:    linux-fbdev@vger.kernel.org
  S:    Maintained
  F:    drivers/video/fbdev/sm712*
 -F:    Documentation/fb/sm712fb.txt
 +F:    Documentation/fb/sm712fb.rst
  
  SIMPLE FIRMWARE INTERFACE (SFI)
  M:    Len Brown <lenb@kernel.org>
@@@ -14569,7 -14404,7 +14577,7 @@@ F:   lib/test_siphash.
  F:    include/linux/siphash.h
  
  SIOX
 -M:    Gavin Schenk <g.schenk@eckelmann.de>
 +M:    Thorsten Scherer <t.scherer@eckelmann.de>
  M:    Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
  R:    Pengutronix Kernel Team <kernel@pengutronix.de>
  S:    Supported
@@@ -14594,7 -14429,7 +14602,7 @@@ SIS FRAMEBUFFER DRIVE
  M:    Thomas Winischhofer <thomas@winischhofer.net>
  W:    http://www.winischhofer.net/linuxsisvga.shtml
  S:    Maintained
 -F:    Documentation/fb/sisfb.txt
 +F:    Documentation/fb/sisfb.rst
  F:    drivers/video/fbdev/sis/
  F:    include/video/sisfb.h
  
@@@ -14786,14 -14621,6 +14794,14 @@@ S: Maintaine
  F:    drivers/net/ethernet/socionext/netsec.c
  F:    Documentation/devicetree/bindings/net/socionext-netsec.txt
  
 +SOCIONEXT (SNI) Synquacer SPI DRIVER
 +M:    Masahisa Kojima <masahisa.kojima@linaro.org>
 +M:    Jassi Brar <jaswinder.singh@linaro.org>
 +L:    linux-spi@vger.kernel.org
 +S:    Maintained
 +F:    drivers/spi/spi-synquacer.c
 +F:    Documentation/devicetree/bindings/spi/spi-synquacer.txt
 +
  SOLIDRUN CLEARFOG SUPPORT
  M:    Russell King <linux@armlinux.org.uk>
  S:    Maintained
@@@ -15100,17 -14927,6 +15108,17 @@@ L: linux-erofs@lists.ozlabs.or
  S:    Maintained
  F:    drivers/staging/erofs/
  
 +STAGING - FIELDBUS SUBSYSTEM
 +M:    Sven Van Asbroeck <TheSven73@gmail.com>
 +S:    Maintained
 +F:    drivers/staging/fieldbus/*
 +F:    drivers/staging/fieldbus/Documentation/
 +
 +STAGING - HMS ANYBUS-S BUS
 +M:    Sven Van Asbroeck <TheSven73@gmail.com>
 +S:    Maintained
 +F:    drivers/staging/fieldbus/anybuss/
 +
  STAGING - INDUSTRIAL IO
  M:    Jonathan Cameron <jic23@kernel.org>
  L:    linux-iio@vger.kernel.org
@@@ -15187,7 -15003,7 +15195,7 @@@ S:   Odd Fixe
  F:    drivers/net/ethernet/adaptec/starfire*
  
  STEC S1220 SKD DRIVER
 -M:    Bart Van Assche <bart.vanassche@wdc.com>
 +M:    Damien Le Moal <Damien.LeMoal@wdc.com>
  L:    linux-block@vger.kernel.org
  S:    Maintained
  F:    drivers/block/skd*[ch]
@@@ -15678,7 -15494,6 +15686,7 @@@ F:   drivers/dma/tegra
  
  TEGRA I2C DRIVER
  M:    Laxman Dewangan <ldewangan@nvidia.com>
 +R:    Dmitry Osipenko <digetx@gmail.com>
  S:    Supported
  F:    drivers/i2c/busses/i2c-tegra.c
  
@@@ -16432,7 -16247,7 +16440,7 @@@ USB ACM DRIVE
  M:    Oliver Neukum <oneukum@suse.com>
  L:    linux-usb@vger.kernel.org
  S:    Maintained
 -F:    Documentation/usb/acm.txt
 +F:    Documentation/usb/acm.rst
  F:    drivers/usb/class/cdc-acm.*
  
  USB AR5523 WIRELESS DRIVER
@@@ -16485,7 -16300,7 +16493,7 @@@ USB EHCI DRIVE
  M:    Alan Stern <stern@rowland.harvard.edu>
  L:    linux-usb@vger.kernel.org
  S:    Maintained
 -F:    Documentation/usb/ehci.txt
 +F:    Documentation/usb/ehci.rst
  F:    drivers/usb/host/ehci*
  
  USB GADGET/PERIPHERAL SUBSYSTEM
@@@ -16503,7 -16318,7 +16511,7 @@@ M:   Benjamin Tissoires <benjamin.tissoir
  L:    linux-usb@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid.git
  S:    Maintained
 -F:    Documentation/hid/hiddev.txt
 +F:    Documentation/hid/hiddev.rst
  F:    drivers/hid/usbhid/
  
  USB INTEL XHCI ROLE MUX DRIVER
@@@ -16559,7 -16374,7 +16567,7 @@@ USB OHCI DRIVE
  M:    Alan Stern <stern@rowland.harvard.edu>
  L:    linux-usb@vger.kernel.org
  S:    Maintained
 -F:    Documentation/usb/ohci.txt
 +F:    Documentation/usb/ohci.rst
  F:    drivers/usb/host/ohci*
  
  USB OTG FSM (Finite State Machine)
@@@ -16575,7 -16390,7 +16583,7 @@@ M:   Shuah Khan <shuah@kernel.org
  M:    Shuah Khan <skhan@linuxfoundation.org>
  L:    linux-usb@vger.kernel.org
  S:    Maintained
 -F:    Documentation/usb/usbip_protocol.txt
 +F:    Documentation/usb/usbip_protocol.rst
  F:    drivers/usb/usbip/
  F:    tools/usb/usbip/
  F:    tools/testing/selftests/drivers/usb/usbip/
@@@ -16623,7 -16438,7 +16631,7 @@@ M:   Johan Hovold <johan@kernel.org
  L:    linux-usb@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial.git
  S:    Maintained
 -F:    Documentation/usb/usb-serial.txt
 +F:    Documentation/usb/usb-serial.rst
  F:    drivers/usb/serial/
  F:    include/linux/usb/serial.h
  
@@@ -16802,7 -16617,7 +16810,7 @@@ M:   Michal Januszewski <spock@gentoo.org
  L:    linux-fbdev@vger.kernel.org
  W:    https://github.com/mjanusz/v86d
  S:    Maintained
 -F:    Documentation/fb/uvesafb.txt
 +F:    Documentation/fb/uvesafb.rst
  F:    drivers/video/fbdev/uvesafb.*
  
  VF610 NAND DRIVER
@@@ -16877,7 -16692,7 +16885,7 @@@ S:   Maintaine
  F:    drivers/net/ethernet/via/via-velocity.*
  
  VICODEC VIRTUAL CODEC DRIVER
 -M:    Hans Verkuil <hans.verkuil@cisco.com>
 +M:    Hans Verkuil <hverkuil-cisco@xs4all.nl>
  L:    linux-media@vger.kernel.org
  T:    git git://linuxtv.org/media_tree.git
  W:    https://linuxtv.org
@@@ -16900,7 -16715,6 +16908,7 @@@ VIDEOBUF2 FRAMEWOR
  M:    Pawel Osciak <pawel@osciak.com>
  M:    Marek Szyprowski <m.szyprowski@samsung.com>
  M:    Kyungmin Park <kyungmin.park@samsung.com>
 +R:    Tomasz Figa <tfiga@chromium.org>
  L:    linux-media@vger.kernel.org
  S:    Maintained
  F:    drivers/media/common/videobuf2/*
@@@ -17459,7 -17273,6 +17467,7 @@@ N:   xd
  XDP SOCKETS (AF_XDP)
  M:    Björn Töpel <bjorn.topel@intel.com>
  M:    Magnus Karlsson <magnus.karlsson@intel.com>
 +R:    Jonathan Lemon <jonathan.lemon@gmail.com>
  L:    netdev@vger.kernel.org
  L:    bpf@vger.kernel.org
  S:    Maintained
@@@ -17507,7 -17320,7 +17515,7 @@@ F:   Documentation/ABI/stable/sysfs-hyper
  F:    Documentation/ABI/testing/sysfs-hypervisor-xen
  
  XEN NETWORK BACKEND DRIVER
 -M:    Wei Liu <wei.liu2@citrix.com>
 +M:    Wei Liu <wei.liu@kernel.org>
  M:    Paul Durrant <paul.durrant@citrix.com>
  L:    xen-devel@lists.xenproject.org (moderated for non-subscribers)
  L:    netdev@vger.kernel.org
@@@ -17553,13 -17366,7 +17561,13 @@@ W: http://xfs.org
  T:    git git://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git
  S:    Supported
  F:    Documentation/filesystems/xfs.txt
 +F:    Documentation/ABI/testing/sysfs-fs-xfs
 +F:    Documentation/filesystems/xfs.txt
 +F:    Documentation/filesystems/xfs-delayed-logging-design.txt
 +F:    Documentation/filesystems/xfs-self-describing-metadata.txt
  F:    fs/xfs/
 +F:    include/uapi/linux/dqblk_xfs.h
 +F:    include/uapi/linux/fsmap.h
  
  XILINX AXI ETHERNET DRIVER
  M:    Anirudha Sarangi <anirudh@xilinx.com>
@@@ -17679,12 -17486,6 +17687,12 @@@ Q: https://patchwork.linuxtv.org/projec
  S:    Maintained
  F:    drivers/media/dvb-frontends/zd1301_demod*
  
 +ZHAOXIN PROCESSOR SUPPORT
 +M:    Tony W Wang-oc <TonyWWang-oc@zhaoxin.com>
 +L:    linux-kernel@vger.kernel.org
 +S:    Maintained
 +F:    arch/x86/kernel/cpu/zhaoxin.c
 +
  ZPOOL COMPRESSED PAGE STORAGE API
  M:    Dan Streetman <ddstreet@ieee.org>
  L:    linux-mm@kvack.org
@@@ -1,4 -1,3 +1,4 @@@
 +// SPDX-License-Identifier: GPL-2.0-only
  /*
   *  Copyright © 2005-2009 Samsung Electronics
   *  Copyright © 2007 Nokia Corporation
   *    Flex-OneNAND support
   *    Amul Kumar Saha <amul.saha at samsung.com>
   *    OTP support
 - *
 - * This program is free software; you can redistribute it and/or modify
 - * it under the terms of the GNU General Public License version 2 as
 - * published by the Free Software Foundation.
   */
  
  #include <linux/kernel.h>
@@@ -3257,6 -3260,8 +3257,8 @@@ static void onenand_check_features(stru
  
        /* Lock scheme */
        switch (density) {
+       case ONENAND_DEVICE_DENSITY_8Gb:
+               this->options |= ONENAND_HAS_NOP_1;
        case ONENAND_DEVICE_DENSITY_4Gb:
                if (ONENAND_IS_DDP(this))
                        this->options |= ONENAND_HAS_2PLANE;
                        if ((this->version_id & 0xf) == 0xe)
                                this->options |= ONENAND_HAS_NOP_1;
                }
+               this->options |= ONENAND_HAS_UNLOCK_ALL;
+               break;
  
        case ONENAND_DEVICE_DENSITY_2Gb:
                /* 2Gb DDP does not have 2 plane */
                if (!ONENAND_IS_DDP(this))
                        this->options |= ONENAND_HAS_2PLANE;
                this->options |= ONENAND_HAS_UNLOCK_ALL;
+               break;
  
        case ONENAND_DEVICE_DENSITY_1Gb:
                /* A-Die has all block unlock */
@@@ -1,4 -1,3 +1,4 @@@
 +// SPDX-License-Identifier: GPL-2.0-only
  /*
   *  Overview:
   *   This is the generic MTD driver for NAND flash devices. It should be
   *    Check, if mtd->ecctype should be set to MTD_ECC_HW
   *    if we have HW ECC support.
   *    BBT table is not serialized, has to be fixed
 - *
 - * This program is free software; you can redistribute it and/or modify
 - * it under the terms of the GNU General Public License version 2 as
 - * published by the Free Software Foundation.
 - *
   */
  
  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
@@@ -2111,35 -2115,7 +2111,7 @@@ static void nand_op_parser_trace(const 
                if (instr == &ctx->subop.instrs[0])
                        prefix = "    ->";
  
-               switch (instr->type) {
-               case NAND_OP_CMD_INSTR:
-                       pr_debug("%sCMD      [0x%02x]\n", prefix,
-                                instr->ctx.cmd.opcode);
-                       break;
-               case NAND_OP_ADDR_INSTR:
-                       pr_debug("%sADDR     [%d cyc: %*ph]\n", prefix,
-                                instr->ctx.addr.naddrs,
-                                instr->ctx.addr.naddrs < 64 ?
-                                instr->ctx.addr.naddrs : 64,
-                                instr->ctx.addr.addrs);
-                       break;
-               case NAND_OP_DATA_IN_INSTR:
-                       pr_debug("%sDATA_IN  [%d B%s]\n", prefix,
-                                instr->ctx.data.len,
-                                instr->ctx.data.force_8bit ?
-                                ", force 8-bit" : "");
-                       break;
-               case NAND_OP_DATA_OUT_INSTR:
-                       pr_debug("%sDATA_OUT [%d B%s]\n", prefix,
-                                instr->ctx.data.len,
-                                instr->ctx.data.force_8bit ?
-                                ", force 8-bit" : "");
-                       break;
-               case NAND_OP_WAITRDY_INSTR:
-                       pr_debug("%sWAITRDY  [max %d ms]\n", prefix,
-                                instr->ctx.waitrdy.timeout_ms);
-                       break;
-               }
+               nand_op_trace(prefix, instr);
  
                if (instr == &ctx->subop.instrs[ctx->subop.ninstrs - 1])
                        prefix = "      ";
@@@ -2152,6 -2128,22 +2124,22 @@@ static void nand_op_parser_trace(const 
  }
  #endif
  
+ static int nand_op_parser_cmp_ctx(const struct nand_op_parser_ctx *a,
+                                 const struct nand_op_parser_ctx *b)
+ {
+       if (a->subop.ninstrs < b->subop.ninstrs)
+               return -1;
+       else if (a->subop.ninstrs > b->subop.ninstrs)
+               return 1;
+       if (a->subop.last_instr_end_off < b->subop.last_instr_end_off)
+               return -1;
+       else if (a->subop.last_instr_end_off > b->subop.last_instr_end_off)
+               return 1;
+       return 0;
+ }
  /**
   * nand_op_parser_exec_op - exec_op parser
   * @chip: the NAND chip
@@@ -2186,32 -2178,40 +2174,40 @@@ int nand_op_parser_exec_op(struct nand_
        unsigned int i;
  
        while (ctx.subop.instrs < op->instrs + op->ninstrs) {
-               int ret;
+               const struct nand_op_parser_pattern *pattern;
+               struct nand_op_parser_ctx best_ctx;
+               int ret, best_pattern = -1;
  
                for (i = 0; i < parser->npatterns; i++) {
-                       const struct nand_op_parser_pattern *pattern;
+                       struct nand_op_parser_ctx test_ctx = ctx;
  
                        pattern = &parser->patterns[i];
-                       if (!nand_op_parser_match_pat(pattern, &ctx))
+                       if (!nand_op_parser_match_pat(pattern, &test_ctx))
                                continue;
  
-                       nand_op_parser_trace(&ctx);
-                       if (check_only)
-                               break;
-                       ret = pattern->exec(chip, &ctx.subop);
-                       if (ret)
-                               return ret;
+                       if (best_pattern >= 0 &&
+                           nand_op_parser_cmp_ctx(&test_ctx, &best_ctx) <= 0)
+                               continue;
  
-                       break;
+                       best_pattern = i;
+                       best_ctx = test_ctx;
                }
  
-               if (i == parser->npatterns) {
+               if (best_pattern < 0) {
                        pr_debug("->exec_op() parser: pattern not found!\n");
                        return -ENOTSUPP;
                }
  
+               ctx = best_ctx;
+               nand_op_parser_trace(&ctx);
+               if (!check_only) {
+                       pattern = &parser->patterns[best_pattern];
+                       ret = pattern->exec(chip, &ctx.subop);
+                       if (ret)
+                               return ret;
+               }
                /*
                 * Update the context structure by pointing to the start of the
                 * next subop.
@@@ -4662,6 -4662,7 +4658,6 @@@ static int nand_detect(struct nand_chi
        memorg = nanddev_get_memorg(&chip->base);
        memorg->planes_per_lun = 1;
        memorg->luns_per_target = 1;
 -      memorg->ntargets = 1;
  
        /*
         * Reset the chip, required by some chips (e.g. Micron MT29FxGxxxxx)
@@@ -5026,8 -5027,6 +5022,8 @@@ static int nand_scan_ident(struct nand_
        if (ret)
                return ret;
  
 +      memorg->ntargets = maxchips;
 +
        /* Read the flash type */
        ret = nand_detect(chip, table);
        if (ret) {
@@@ -9,11 -9,17 +9,17 @@@
  #include <linux/mtd/spinand.h>
  
  #define SPINAND_MFR_GIGADEVICE                        0xC8
  #define GD5FXGQ4XA_STATUS_ECC_1_7_BITFLIPS    (1 << 4)
  #define GD5FXGQ4XA_STATUS_ECC_8_BITFLIPS      (3 << 4)
  
  #define GD5FXGQ4UEXXG_REG_STATUS2             0xf0
  
+ #define GD5FXGQ4UXFXXG_STATUS_ECC_MASK                (7 << 4)
+ #define GD5FXGQ4UXFXXG_STATUS_ECC_NO_BITFLIPS (0 << 4)
+ #define GD5FXGQ4UXFXXG_STATUS_ECC_1_3_BITFLIPS        (1 << 4)
+ #define GD5FXGQ4UXFXXG_STATUS_ECC_UNCOR_ERROR (7 << 4)
  static SPINAND_OP_VARIANTS(read_cache_variants,
                SPINAND_PAGE_READ_FROM_CACHE_QUADIO_OP(0, 2, NULL, 0),
                SPINAND_PAGE_READ_FROM_CACHE_X4_OP(0, 1, NULL, 0),
                SPINAND_PAGE_READ_FROM_CACHE_OP(true, 0, 1, NULL, 0),
                SPINAND_PAGE_READ_FROM_CACHE_OP(false, 0, 1, NULL, 0));
  
+ static SPINAND_OP_VARIANTS(read_cache_variants_f,
+               SPINAND_PAGE_READ_FROM_CACHE_QUADIO_OP(0, 2, NULL, 0),
+               SPINAND_PAGE_READ_FROM_CACHE_X4_OP_3A(0, 1, NULL, 0),
+               SPINAND_PAGE_READ_FROM_CACHE_DUALIO_OP(0, 1, NULL, 0),
+               SPINAND_PAGE_READ_FROM_CACHE_X2_OP_3A(0, 1, NULL, 0),
+               SPINAND_PAGE_READ_FROM_CACHE_OP_3A(true, 0, 1, NULL, 0),
+               SPINAND_PAGE_READ_FROM_CACHE_OP_3A(false, 0, 0, NULL, 0));
  static SPINAND_OP_VARIANTS(write_cache_variants,
                SPINAND_PROG_LOAD_X4(true, 0, NULL, 0),
                SPINAND_PROG_LOAD(true, 0, NULL, 0));
@@@ -59,6 -73,11 +73,11 @@@ static int gd5fxgq4xa_ooblayout_free(st
        return 0;
  }
  
+ static const struct mtd_ooblayout_ops gd5fxgq4xa_ooblayout = {
+       .ecc = gd5fxgq4xa_ooblayout_ecc,
+       .free = gd5fxgq4xa_ooblayout_free,
+ };
  static int gd5fxgq4xa_ecc_get_status(struct spinand_device *spinand,
                                         u8 status)
  {
        return -EINVAL;
  }
  
- static int gd5fxgq4uexxg_ooblayout_ecc(struct mtd_info *mtd, int section,
+ static int gd5fxgq4_variant2_ooblayout_ecc(struct mtd_info *mtd, int section,
                                       struct mtd_oob_region *region)
  {
        if (section)
        return 0;
  }
  
- static int gd5fxgq4uexxg_ooblayout_free(struct mtd_info *mtd, int section,
+ static int gd5fxgq4_variant2_ooblayout_free(struct mtd_info *mtd, int section,
                                        struct mtd_oob_region *region)
  {
        if (section)
        return 0;
  }
  
+ static const struct mtd_ooblayout_ops gd5fxgq4_variant2_ooblayout = {
+       .ecc = gd5fxgq4_variant2_ooblayout_ecc,
+       .free = gd5fxgq4_variant2_ooblayout_free,
+ };
  static int gd5fxgq4uexxg_ecc_get_status(struct spinand_device *spinand,
                                        u8 status)
  {
        return -EINVAL;
  }
  
- static const struct mtd_ooblayout_ops gd5fxgq4xa_ooblayout = {
-       .ecc = gd5fxgq4xa_ooblayout_ecc,
-       .free = gd5fxgq4xa_ooblayout_free,
- };
+ static int gd5fxgq4ufxxg_ecc_get_status(struct spinand_device *spinand,
+                                       u8 status)
+ {
+       switch (status & GD5FXGQ4UXFXXG_STATUS_ECC_MASK) {
+       case GD5FXGQ4UXFXXG_STATUS_ECC_NO_BITFLIPS:
+               return 0;
  
- static const struct mtd_ooblayout_ops gd5fxgq4uexxg_ooblayout = {
-       .ecc = gd5fxgq4uexxg_ooblayout_ecc,
-       .free = gd5fxgq4uexxg_ooblayout_free,
- };
+       case GD5FXGQ4UXFXXG_STATUS_ECC_1_3_BITFLIPS:
+               return 3;
+       case GD5FXGQ4UXFXXG_STATUS_ECC_UNCOR_ERROR:
+               return -EBADMSG;
+       default: /* (2 << 4) through (6 << 4) are 4-8 corrected errors */
+               return ((status & GD5FXGQ4UXFXXG_STATUS_ECC_MASK) >> 4) + 2;
+       }
+       return -EINVAL;
+ }
  
  static const struct spinand_info gigadevice_spinand_table[] = {
        SPINAND_INFO("GD5F1GQ4xA", 0xF1,
                     SPINAND_ECCINFO(&gd5fxgq4xa_ooblayout,
                                     gd5fxgq4xa_ecc_get_status)),
        SPINAND_INFO("GD5F4GQ4xA", 0xF4,
 -                   NAND_MEMORG(1, 2048, 64, 64, 4096, 40, 1, 1, 1),
 +                   NAND_MEMORG(1, 2048, 64, 64, 4096, 80, 1, 1, 1),
                     NAND_ECCREQ(8, 512),
                     SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
                                              &write_cache_variants,
                                              &write_cache_variants,
                                              &update_cache_variants),
                     0,
-                    SPINAND_ECCINFO(&gd5fxgq4uexxg_ooblayout,
+                    SPINAND_ECCINFO(&gd5fxgq4_variant2_ooblayout,
                                     gd5fxgq4uexxg_ecc_get_status)),
+       SPINAND_INFO("GD5F1GQ4UFxxG", 0xb148,
+                    NAND_MEMORG(1, 2048, 128, 64, 1024, 20, 1, 1, 1),
+                    NAND_ECCREQ(8, 512),
+                    SPINAND_INFO_OP_VARIANTS(&read_cache_variants_f,
+                                             &write_cache_variants,
+                                             &update_cache_variants),
+                    0,
+                    SPINAND_ECCINFO(&gd5fxgq4_variant2_ooblayout,
+                                    gd5fxgq4ufxxg_ecc_get_status)),
  };
  
  static int gigadevice_spinand_detect(struct spinand_device *spinand)
  {
        u8 *id = spinand->id.data;
+       u16 did;
        int ret;
  
        /*
-        * For GD NANDs, There is an address byte needed to shift in before IDs
-        * are read out, so the first byte in raw_id is dummy.
+        * Earlier GDF5-series devices (A,E) return [0][MID][DID]
+        * Later (F) devices return [MID][DID1][DID2]
         */
-       if (id[1] != SPINAND_MFR_GIGADEVICE)
+       if (id[0] == SPINAND_MFR_GIGADEVICE)
+               did = (id[1] << 8) + id[2];
+       else if (id[0] == 0 && id[1] == SPINAND_MFR_GIGADEVICE)
+               did = id[2];
+       else
                return 0;
  
        ret = spinand_match_and_init(spinand, gigadevice_spinand_table,
                                     ARRAY_SIZE(gigadevice_spinand_table),
-                                    id[2]);
+                                    did);
        if (ret)
                return ret;
  
@@@ -1,4 -1,4 +1,4 @@@
 -// SPDX-License-Identifier: GPL-2.0
 +// SPDX-License-Identifier: GPL-2.0-only
  /*
   * Intel PCH/PCU SPI flash PCI driver.
   *
@@@ -64,6 -64,7 +64,7 @@@ static const struct pci_device_id intel
        { PCI_VDEVICE(INTEL, 0x18e0), (unsigned long)&bxt_info },
        { PCI_VDEVICE(INTEL, 0x19e0), (unsigned long)&bxt_info },
        { PCI_VDEVICE(INTEL, 0x34a4), (unsigned long)&bxt_info },
+       { PCI_VDEVICE(INTEL, 0x4b24), (unsigned long)&bxt_info },
        { PCI_VDEVICE(INTEL, 0xa1a4), (unsigned long)&bxt_info },
        { PCI_VDEVICE(INTEL, 0xa224), (unsigned long)&bxt_info },
        { },
@@@ -200,7 -200,7 +200,7 @@@ struct sfdp_header 
   *         register does not modify status register 2.
   * - 101b: QE is bit 1 of status register 2. Status register 1 is read using
   *         Read Status instruction 05h. Status register2 is read using
-  *         instruction 35h. QE is set via Writ Status instruction 01h with
+  *         instruction 35h. QE is set via Write Status instruction 01h with
   *         two data bytes where bit 1 of the second byte is one.
   *         [...]
   */
@@@ -1636,95 -1636,6 +1636,95 @@@ static int sr2_bit7_quad_enable(struct 
        return 0;
  }
  
 +/**
 + * spi_nor_clear_sr_bp() - clear the Status Register Block Protection bits.
 + * @nor:        pointer to a 'struct spi_nor'
 + *
 + * Read-modify-write function that clears the Block Protection bits from the
 + * Status Register without affecting other bits.
 + *
 + * Return: 0 on success, -errno otherwise.
 + */
 +static int spi_nor_clear_sr_bp(struct spi_nor *nor)
 +{
 +      int ret;
 +      u8 mask = SR_BP2 | SR_BP1 | SR_BP0;
 +
 +      ret = read_sr(nor);
 +      if (ret < 0) {
 +              dev_err(nor->dev, "error while reading status register\n");
 +              return ret;
 +      }
 +
 +      write_enable(nor);
 +
 +      ret = write_sr(nor, ret & ~mask);
 +      if (ret) {
 +              dev_err(nor->dev, "write to status register failed\n");
 +              return ret;
 +      }
 +
 +      ret = spi_nor_wait_till_ready(nor);
 +      if (ret)
 +              dev_err(nor->dev, "timeout while writing status register\n");
 +      return ret;
 +}
 +
 +/**
 + * spi_nor_spansion_clear_sr_bp() - clear the Status Register Block Protection
 + * bits on spansion flashes.
 + * @nor:        pointer to a 'struct spi_nor'
 + *
 + * Read-modify-write function that clears the Block Protection bits from the
 + * Status Register without affecting other bits. The function is tightly
 + * coupled with the spansion_quad_enable() function. Both assume that the Write
 + * Register with 16 bits, together with the Read Configuration Register (35h)
 + * instructions are supported.
 + *
 + * Return: 0 on success, -errno otherwise.
 + */
 +static int spi_nor_spansion_clear_sr_bp(struct spi_nor *nor)
 +{
 +      int ret;
 +      u8 mask = SR_BP2 | SR_BP1 | SR_BP0;
 +      u8 sr_cr[2] = {0};
 +
 +      /* Check current Quad Enable bit value. */
 +      ret = read_cr(nor);
 +      if (ret < 0) {
 +              dev_err(nor->dev,
 +                      "error while reading configuration register\n");
 +              return ret;
 +      }
 +
 +      /*
 +       * When the configuration register Quad Enable bit is one, only the
 +       * Write Status (01h) command with two data bytes may be used.
 +       */
 +      if (ret & CR_QUAD_EN_SPAN) {
 +              sr_cr[1] = ret;
 +
 +              ret = read_sr(nor);
 +              if (ret < 0) {
 +                      dev_err(nor->dev,
 +                              "error while reading status register\n");
 +                      return ret;
 +              }
 +              sr_cr[0] = ret & ~mask;
 +
 +              ret = write_sr_cr(nor, sr_cr);
 +              if (ret)
 +                      dev_err(nor->dev, "16-bit write register failed\n");
 +              return ret;
 +      }
 +
 +      /*
 +       * If the Quad Enable bit is zero, use the Write Status (01h) command
 +       * with one data byte.
 +       */
 +      return spi_nor_clear_sr_bp(nor);
 +}
 +
  /* Used when the "_ext_id" is two bytes at most */
  #define INFO(_jedec_id, _ext_id, _sector_size, _n_sectors, _flags)    \
                .id = {                                                 \
                .flags = SPI_NOR_NO_FR | SPI_S3AN,
  
  static int
+ is25lp256_post_bfpt_fixups(struct spi_nor *nor,
+                          const struct sfdp_parameter_header *bfpt_header,
+                          const struct sfdp_bfpt *bfpt,
+                          struct spi_nor_flash_parameter *params)
+ {
+       /*
+        * IS25LP256 supports 4B opcodes, but the BFPT advertises a
+        * BFPT_DWORD1_ADDRESS_BYTES_3_ONLY address width.
+        * Overwrite the address width advertised by the BFPT.
+        */
+       if ((bfpt->dwords[BFPT_DWORD(1)] & BFPT_DWORD1_ADDRESS_BYTES_MASK) ==
+               BFPT_DWORD1_ADDRESS_BYTES_3_ONLY)
+               nor->addr_width = 4;
+       return 0;
+ }
+ static struct spi_nor_fixups is25lp256_fixups = {
+       .post_bfpt = is25lp256_post_bfpt_fixups,
+ };
+ static int
  mx25l25635_post_bfpt_fixups(struct spi_nor *nor,
                            const struct sfdp_parameter_header *bfpt_header,
                            const struct sfdp_bfpt *bfpt,
@@@ -1916,7 -1849,8 +1938,8 @@@ static const struct flash_info spi_nor_
                        SECT_4K | SPI_NOR_DUAL_READ) },
        { "is25lp256",  INFO(0x9d6019, 0, 64 * 1024, 512,
                        SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
-                       SPI_NOR_4B_OPCODES) },
+                       SPI_NOR_4B_OPCODES)
+                       .fixups = &is25lp256_fixups },
        { "is25wp032",  INFO(0x9d7016, 0, 64 * 1024,  64,
                        SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
        { "is25wp064",  INFO(0x9d7017, 0, 64 * 1024, 128,
        { "n25q512ax3",  INFO(0x20ba20, 0, 64 * 1024, 1024, SECT_4K | USE_FSR | SPI_NOR_QUAD_READ) },
        { "n25q00",      INFO(0x20ba21, 0, 64 * 1024, 2048, SECT_4K | USE_FSR | SPI_NOR_QUAD_READ | NO_CHIP_ERASE) },
        { "n25q00a",     INFO(0x20bb21, 0, 64 * 1024, 2048, SECT_4K | USE_FSR | SPI_NOR_QUAD_READ | NO_CHIP_ERASE) },
+       { "mt25ql02g",   INFO(0x20ba22, 0, 64 * 1024, 4096,
+                             SECT_4K | USE_FSR | SPI_NOR_QUAD_READ |
+                             NO_CHIP_ERASE) },
        { "mt25qu02g",   INFO(0x20bb22, 0, 64 * 1024, 4096, SECT_4K | USE_FSR | SPI_NOR_QUAD_READ | NO_CHIP_ERASE) },
  
        /* Micron */
                        SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
        },
        { "w25x32", INFO(0xef3016, 0, 64 * 1024,  64, SECT_4K) },
+       {
+               "w25q16jv-im/jm", INFO(0xef7015, 0, 64 * 1024,  32,
+                       SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
+                       SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
+       },
        { "w25q20cl", INFO(0xef4012, 0, 64 * 1024,  4, SECT_4K) },
        { "w25q20bw", INFO(0xef5012, 0, 64 * 1024,  4, SECT_4K) },
        { "w25q20ew", INFO(0xef6012, 0, 64 * 1024,  4, SECT_4K) },
@@@ -2151,7 -2093,7 +2182,7 @@@ static const struct flash_info *spi_nor
  
        tmp = nor->read_reg(nor, SPINOR_OP_RDID, id, SPI_NOR_MAX_ID_LEN);
        if (tmp < 0) {
-               dev_dbg(nor->dev, "error %d reading JEDEC ID\n", tmp);
+               dev_err(nor->dev, "error %d reading JEDEC ID\n", tmp);
                return ERR_PTR(tmp);
        }
  
@@@ -3749,8 -3691,6 +3780,8 @@@ static int spi_nor_init_params(struct s
                default:
                        /* Kept only for backward compatibility purpose. */
                        params->quad_enable = spansion_quad_enable;
 +                      if (nor->clear_sr_bp)
 +                              nor->clear_sr_bp = spi_nor_spansion_clear_sr_bp;
                        break;
                }
  
@@@ -4003,13 -3943,17 +4034,13 @@@ static int spi_nor_init(struct spi_nor 
  {
        int err;
  
 -      /*
 -       * Atmel, SST, Intel/Numonyx, and others serial NOR tend to power up
 -       * with the software protection bits set
 -       */
 -      if (JEDEC_MFR(nor->info) == SNOR_MFR_ATMEL ||
 -          JEDEC_MFR(nor->info) == SNOR_MFR_INTEL ||
 -          JEDEC_MFR(nor->info) == SNOR_MFR_SST ||
 -          nor->info->flags & SPI_NOR_HAS_LOCK) {
 -              write_enable(nor);
 -              write_sr(nor, 0);
 -              spi_nor_wait_till_ready(nor);
 +      if (nor->clear_sr_bp) {
 +              err = nor->clear_sr_bp(nor);
 +              if (err) {
 +                      dev_err(nor->dev,
 +                              "fail to clear block protection bits\n");
 +                      return err;
 +              }
        }
  
        if (nor->quad_enable) {
@@@ -4134,16 -4078,6 +4165,16 @@@ int spi_nor_scan(struct spi_nor *nor, c
        if (info->flags & SPI_S3AN)
                nor->flags |=  SNOR_F_READY_XSR_RDY;
  
 +      /*
 +       * Atmel, SST, Intel/Numonyx, and others serial NOR tend to power up
 +       * with the software protection bits set.
 +       */
 +      if (JEDEC_MFR(nor->info) == SNOR_MFR_ATMEL ||
 +          JEDEC_MFR(nor->info) == SNOR_MFR_INTEL ||
 +          JEDEC_MFR(nor->info) == SNOR_MFR_SST ||
 +          nor->info->flags & SPI_NOR_HAS_LOCK)
 +              nor->clear_sr_bp = spi_nor_clear_sr_bp;
 +
        /* Parse the Serial Flash Discoverable Parameters table. */
        ret = spi_nor_init_params(nor, &params);
        if (ret)
@@@ -1,4 -1,3 +1,4 @@@
 +/* SPDX-License-Identifier: GPL-2.0-only */
  /*
   *  linux/include/linux/mtd/onenand_regs.h
   *
@@@ -6,6 -5,10 +6,6 @@@
   *
   *  Copyright (C) 2005-2007 Samsung Electronics
   *  Kyungmin Park <kyungmin.park@samsung.com>
 - *
 - * This program is free software; you can redistribute it and/or modify
 - * it under the terms of the GNU General Public License version 2 as
 - * published by the Free Software Foundation.
   */
  
  #ifndef __ONENAND_REG_H
@@@ -77,6 -80,7 +77,7 @@@
  #define ONENAND_DEVICE_DENSITY_1Gb    (0x003)
  #define ONENAND_DEVICE_DENSITY_2Gb    (0x004)
  #define ONENAND_DEVICE_DENSITY_4Gb    (0x005)
+ #define ONENAND_DEVICE_DENSITY_8Gb    (0x006)
  
  /*
   * Version ID Register F002h (R)
@@@ -1,9 -1,12 +1,9 @@@
 +/* SPDX-License-Identifier: GPL-2.0-only */
  /*
   *  Copyright © 2000-2010 David Woodhouse <dwmw2@infradead.org>
   *                        Steven J. Hill <sjhill@realitydiluted.com>
   *                      Thomas Gleixner <tglx@linutronix.de>
   *
 - * This program is free software; you can redistribute it and/or modify
 - * it under the terms of the GNU General Public License version 2 as
 - * published by the Free Software Foundation.
 - *
   * Info:
   *    Contains standard defines and IDs for NAND flash devices
   *
@@@ -874,6 -877,42 +874,42 @@@ int nand_op_parser_exec_op(struct nand_
                           const struct nand_op_parser *parser,
                           const struct nand_operation *op, bool check_only);
  
+ static inline void nand_op_trace(const char *prefix,
+                                const struct nand_op_instr *instr)
+ {
+ #if IS_ENABLED(CONFIG_DYNAMIC_DEBUG) || defined(DEBUG)
+       switch (instr->type) {
+       case NAND_OP_CMD_INSTR:
+               pr_debug("%sCMD      [0x%02x]\n", prefix,
+                        instr->ctx.cmd.opcode);
+               break;
+       case NAND_OP_ADDR_INSTR:
+               pr_debug("%sADDR     [%d cyc: %*ph]\n", prefix,
+                        instr->ctx.addr.naddrs,
+                        instr->ctx.addr.naddrs < 64 ?
+                        instr->ctx.addr.naddrs : 64,
+                        instr->ctx.addr.addrs);
+               break;
+       case NAND_OP_DATA_IN_INSTR:
+               pr_debug("%sDATA_IN  [%d B%s]\n", prefix,
+                        instr->ctx.data.len,
+                        instr->ctx.data.force_8bit ?
+                        ", force 8-bit" : "");
+               break;
+       case NAND_OP_DATA_OUT_INSTR:
+               pr_debug("%sDATA_OUT [%d B%s]\n", prefix,
+                        instr->ctx.data.len,
+                        instr->ctx.data.force_8bit ?
+                        ", force 8-bit" : "");
+               break;
+       case NAND_OP_WAITRDY_INSTR:
+               pr_debug("%sWAITRDY  [max %d ms]\n", prefix,
+                        instr->ctx.waitrdy.timeout_ms);
+               break;
+       }
+ #endif
+ }
  /**
   * struct nand_controller_ops - Controller operations
   *