Commit graph

1105317 commits

Author SHA1 Message Date
Ville Syrjälä
9adf7d4186 drm/i915/bios: Document the mess around the LFP data tables
Document the fact that struct lvds_lfp_data_entry can't be used
directly and instead must be accessed via the data table pointers.

Also remove the bogus comment implying that there might be a
variable number of panel entries in the table. There are always
exactly 16.

Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220504150440.13748-5-ville.syrjala@linux.intel.com
2022-05-05 18:25:42 +03:00
Ville Syrjälä
901a0cad2a drm/i915/bios: Get access to the tail end of the LFP data block
We need to start parsing stuff from the tail end of the LFP data block.
This is made awkward by the fact that the fp_timing table has variable
size. So we must use a bit more finesse to get the tail end, and to
make sure we allocate enough memory for it to make sure our struct
representation fits.

v2: Rebase due to the preallocation of BDB blocks
v3: Rebase due to min_size WARN relocation
v4: Document BDB_LVDS_LFP_DATA vs. BDB_LVDS_LFP_DATA_PTRS order (Jani)

Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220504150440.13748-4-ville.syrjala@linux.intel.com
2022-05-05 18:25:23 +03:00
Ville Syrjälä
a87d0a8476 drm/i915/bios: Generate LFP data table pointers if the VBT lacks them
Modern VBTs no longer contain the LFP data table pointers
block (41). We are expecting to have one in order to be able
to parse the LFP data block (42), so let's make one up.

Since the fp_timing table has variable size we must somehow
determine its size. Rather than just hardcode it we look for
the terminator bytes (0xffff) to figure out where each table
entry starts. dvo_timing, panel_pnp_id, and panel_name are
expected to have fixed size.

This has been observed on various machines, eg. TGL with BDB
version 240, CML with BDB version 231, etc. The most recent
VBT I've observed that still had block 41 had BDB version
228. So presumably the cutoff (if an exact cutoff even exists)
is somewhere around BDB version 229-231.

v2: kfree the thing we allocated, not the thing+3 bytes
v3: Do the debugprint only if we found the LFP data block
v4: Fix t0 null check (Jani)

Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220504150440.13748-3-ville.syrjala@linux.intel.com
2022-05-05 18:25:17 +03:00
Ville Syrjälä
13367132a7 drm/i915/bios: Reorder panel DTD parsing
Reorder things so that we can parse the entier LFP data block
in one go. For now we just stick to parsing the DTD from it.

Also fix the misleading comment about block 42 being deprecated.
Only the DTD part is deprecated, the rest is still very much needed.

v2: Move the version check+comment into parse_generic_dtd() (Jani)

Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220504150440.13748-2-ville.syrjala@linux.intel.com
2022-05-05 18:25:09 +03:00
Ville Syrjälä
bb7acf59a1 drm/i915: Use drm_mode_init() for on-stack modes
Initialize on-stack modes with drm_mode_init() to guarantee
no stack garbage in the list head, or that we aren't copying
over another mode's list head.

Based on the following cocci script, with manual fixups:
@decl@
identifier M;
expression E;
@@
- struct drm_display_mode M = E;
+ struct drm_display_mode M;

@@
identifier decl.M;
expression decl.E;
statement S, S1;
@@
struct drm_display_mode M;
... when != S
+ drm_mode_init(&M, &E);
+
S1

@@
expression decl.E;
@@
- &*E
+ E

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220218100403.7028-19-ville.syrjala@linux.intel.com
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
2022-05-05 18:23:55 +03:00
Mark Brown
eedd8a8542
regmap: Custom bulk operations for regmaps
Merge series from Marek Vasut:

This patch adds an API for custom bulk operations on a simple regmap,
the number of single use bus implementations shows there's a need for
this.
2022-05-05 16:09:15 +01:00
Mark Brown
cae640c5ff
ASoC: SOF: IPC4: Introduce message handling functionality
Merge series from Peter Ujfalusi <peter.ujfalusi@linux.intel.com>:

The series adds the basic IPC4 message handling code, implementing the ipc
callbacks.
Due to the difference between IPC3 and IPC4 messaging we need to introduce new
message container for IPC4, but the SOF internal callbacks and structures can be
kept as they were and leaving it for the IPC specific code to handle the
differences.

The series provides the foundation for both lowe level (sound/soc/sof/intel) and
high level IPC4 implementation (topologies, firmware loading, control handling,
etc).
2022-05-05 16:08:39 +01:00
Michael Walle
646e321f33 pinctrl: microchip-sgpio: make irq_chip immutable
Since recently, the kernel is nagging about mutable irq_chips:

[    4.967050] gpio gpiochip1: (e2004190.gpio-input): not an immutable chip, please consider fixing it!

Drop the unneeded copy, flag it as IRQCHIP_IMMUTABLE, add the new
helper functions and call the appropriate gpiolib functions.

Signed-off-by: Michael Walle <michael@walle.cc>
Reviewed-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20220428111622.1395831-1-michael@walle.cc
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2022-05-05 16:53:25 +02:00
Linus Walleij
160625856d Merge branch 'irq/gpio-immutable' of git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms into devel 2022-05-05 16:50:14 +02:00
Arnd Bergmann
814cc4fce8 This pull request contains Broadcom ARM-based SoCs Device Tree changes
for 5.19, please pull the following:
 
 - Oleksij fixes the ethernet node name for the USB Ethernet adapter on
   BCM283x (Raspberry Pi 1/2/3) platforms
 
 - Kuldeep fixes the PL022 SPI controller clock names to conform to the
   binding
 
 - Rafal updates the various BCM5301X (Northstar) Device Tree include
   files to be dtsschema conforming for pinctrl, NAND
 
 - Arinc adds the Asus RT-AC88U binding, removes some unnecessary
   properties of the Ethernet switch DT node, populates the correct PHY
   interface for port 5 of the switch, adds support for fetching the MAC
   address from the NVMEM provider and finally disables gmac0 on that
   device which is unused
 
 - Phil updates the Raspberry Pi 1/2/3 DTS files to have the latest gpio
   line names conforming to the printed circuit board layout
 
 - Krzysztof updates various Broadcom DTS files to have a conforming SPI
   nor Device Tree node
 
 - Takayoshi adds support for the Buffalo WZR-1166DHP/WZR-1166DHP2
   wireless routers based on the BCM4708 SoC
 
 - William adds support for the BCM47622 ARMv7 Broadband SoC and provides
   a basic DTS to boot upstream Linux on such a system
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEm+Rq3+YGJdiR9yuFh9CWnEQHBwQFAmJy6dsACgkQh9CWnEQH
 BwTethAAyFaBy5YMVB3mBu/AG8mDg9l9cCQVXWAbkaAktUJtMXRVXqYoan8443FB
 I83dYPVcfs03G6NTs4eqbqDSNgoT6770C8x8xCRrjxKS+/+MeccwVRARV5lDhZgw
 nOGZ8YUSSzjiCFgqzrMbUwhjtA64Qe0KeGm58dzcfwCVxvfwEKcDgBOZ8pFw529H
 IZ2ld1O4xbzU8ork9RRbmAcj+TeHlZKy/So0nkgbCzsEqJUVnLmHEaNed2fXI9Dh
 XCrx8kVsU5Cvgxr/pkoU0h3Dko7IauW7JQd51HSlNV1CWIDcyCo0g3VL7++qvNaq
 6z4X7OvefxweKXUTaT+d9NQoi3pw8I3ZmQMmIK2OfFfJrKEKb+GAPUR5ypKyXSPf
 FnjICa2tKfWy0WnR5x+68/BEGZvbxzjFYF0BFZlAt9moI2BgltmRr2DUJuRW2NLW
 upFssiVlO55MKlWAEopSobBEF/qBn2GDgc2qWGEHzzhQS1S8JZyDbNOIA2oKba8u
 OsbB0e7O7kT8m/T6/PQlMR4adAsWnJL5XDF1UmNhgo305WBfySpkNCnHOP3BZtG8
 9FC60WwBp4GDNpYSP+fP7Y0JGMZoA6nbzdF1Y9rS6d5nm1bX2YEgqTvlRkip01L/
 BwstCe3dtYw+HIfNlnlCW+Uq/AfSKs4DEmGrI+8lDDZSTvAANnA=
 =x8WK
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmJz49cACgkQmmx57+YA
 GNnb7hAAuPfcXE3BjwB2tn3G8hm/RSeyNbVK51Hl0gyyL3uUtLADqn2zfMD0P7NB
 HNqnMkqe+m9Y2czqCBHx9XV3mZB1o3Y4pX0D9esGnXyev+b3Xckgo/gJY7ViSgr0
 uRE9+khAsAA6iI/ZLZCHwKnYWQ9o2WNKRHDUvy66tfoP1i0cQwvxe6PVJUszTeCa
 YzD4UUUZYB3z7o6lXSze1EesWh9R/oAWXOFZnP+qCpQqB9duETEmw1iYMJtHKEZl
 nKwYKHL1IQqFGlvIOzIYx+LW7VIbKQsDXg5PlXQtvwLz/wIYjYbZ3tR/K6yqj/pH
 /rIj9aLhnxZJx/6oGVY1JbBnMMGkYSEfvYd0mz5FnxhedYvbrV6HjtRXwDKVrKGw
 Ofo19aFXMLRj4qoSWTalp792TYVcemR+/vJSnuW830XMoBJ6jqvmwiNss/BeIpqL
 PXTfsgl31MvDAQiJ0GyanAbc3IWrDUTLoK7Bf1miFfjEvt39Rg+gOHU7R8Cb5vcp
 c1BkWfQbcPpZGuHbEhqW0vr/Iwn7kcU7BXf3X2uDtb/hY7ab2P7M2Gv27KnE4Fjd
 /JG+4+cyo387urUFgLShKG+WxHjBbeLu0oK4v3AxkDzhdGoAKklTnHfccrP0mCLk
 CJNleXlRpz3aKe7AhxxFpHM3jLL2ktQKNa+qlZKIQeES0XvBHIk=
 =mbjq
 -----END PGP SIGNATURE-----

Merge tag 'arm-soc/for-5.19/devicetree' of https://github.com/Broadcom/stblinux into arm/dt

This pull request contains Broadcom ARM-based SoCs Device Tree changes
for 5.19, please pull the following:

- Oleksij fixes the ethernet node name for the USB Ethernet adapter on
  BCM283x (Raspberry Pi 1/2/3) platforms

- Kuldeep fixes the PL022 SPI controller clock names to conform to the
  binding

- Rafal updates the various BCM5301X (Northstar) Device Tree include
  files to be dtsschema conforming for pinctrl, NAND

- Arinc adds the Asus RT-AC88U binding, removes some unnecessary
  properties of the Ethernet switch DT node, populates the correct PHY
  interface for port 5 of the switch, adds support for fetching the MAC
  address from the NVMEM provider and finally disables gmac0 on that
  device which is unused

- Phil updates the Raspberry Pi 1/2/3 DTS files to have the latest gpio
  line names conforming to the printed circuit board layout

- Krzysztof updates various Broadcom DTS files to have a conforming SPI
  nor Device Tree node

- Takayoshi adds support for the Buffalo WZR-1166DHP/WZR-1166DHP2
  wireless routers based on the BCM4708 SoC

- William adds support for the BCM47622 ARMv7 Broadband SoC and provides
  a basic DTS to boot upstream Linux on such a system

* tag 'arm-soc/for-5.19/devicetree' of https://github.com/Broadcom/stblinux: (22 commits)
  ARM: dts: BCM5301X: Add DT for WZR-1166DHP,DHP2
  ARM: dts: add dts files for bcmbca soc 47622
  dt-bindings: arm: add bcmbca device tree binding document
  ARM: dts: bcm283x: Align ETH_CLK GPIO line name
  ARM: dts: bcm283x: Remove gpio line name NC
  ARM: dts: bcm2835-rpi-b: Fix GPIO line names
  ARM: dts: bcm2837-rpi-3-b-plus: Fix GPIO line name of power LED
  ARM: dts: bcm2837-rpi-cm3-io3: Fix GPIO line names for SMPS I2C
  ARM: dts: bcm2835-rpi-zero-w: Fix GPIO line name for Wifi/BT
  ARM: dts: BCM5301X: Disable gmac0 and enable port@8 on Asus RT-AC88U
  ARM: dts: broadcom: align SPI NOR node name with dtschema
  dt-bindings: arm: bcm: add bindings for Asus RT-AC88U
  ARM: dts: BCM5301X: Fix compatible strings for BCM53012 and BCM53016 SoC
  dt-bindings: arm: bcm: create new description for BCM53016
  dt-bindings: arm: bcm: fix BCM53012 and BCM53016 SoC strings
  ARM: dts: BCM5301X: Retrieve gmac1 MAC address from NVRAM on Asus RT-AC88U
  ARM: dts: BCM5301X: Add rgmii to port@5 of Broadcom switch on Asus RT-AC88U
  ARM: dts: BCM5301X: Remove cell properties from srab ports on Asus RT-AC88U
  ARM: dts: BCM5301X: Fix DTC warning for NAND node
  ARM: dts: BCM5301X: Update pin controller node name
  ...

Link: https://lore.kernel.org/r/20220504210942.1838248-2-f.fainelli@gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-05-05 16:48:55 +02:00
Arnd Bergmann
e8bcacdaf1 Arm FVP/Juno device tree updates for v5.19
The main and bulk of the change is the addition of new platform
 Arm corstone1000(both FVP and FPGA versions). Also, there are
 addition of Coresight Cross Trigger Interface(CTI) support on Juno,
 fix for incorrect SCMI power domain IDs, addition of virtio-rng
 on FVP which is default disabled as it works only on latest versions
 of the FVP model.
 
 Other miscellanous changes include dropping of useless
 'dma-channels/requests' properties and updating virtio device
 node names as per dtschema.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEunHlEgbzHrJD3ZPhAEG6vDF+4pgFAmJyPcUACgkQAEG6vDF+
 4pizDw/+NzmnScLZFzwXKi8LqKIuC+JlDf+mvWGlidjjz2c1X4Mf45AKPpKvRQmc
 PyvVKB7t6azo9xHcgS43J7+DOFOziqjY/+RJhiQ7YS8L/SSSuaNDyAO3EpWpIo85
 c2QL9sFsiVPqQFmF+E4cLh96gF97xi2QfB2420E5m7feLzCgHQZYYWijhGVlZR5L
 nsoXLDU/HK9MTts3q9jyen3gA2nBE7NGuU2SacehJNXoHCd+T0W6AQgYWIWzWa+X
 eq/PbbnFCguFyzNRncbnxzCVOXeg0FS1zTPOtJFNHioG6FnIEqg4VEF9g2hdtnTZ
 CGEtu4vvVsSKxIr7s2d/vfqlYpOpxwVkJl3XgNcqLXTgk4tHWODW7Rl7RTXwT3hT
 mgh0j272/4gm+iTDYI+YmanQsEKP/VQiMGXDVTX43da2rgFVXUMU/XT1EHy7Ef0P
 iULL5sqcA0q9Y895AV6aeMXZdQl9ZHYYgLxQLPecMVt+dMfde1LxaRssH3YQ+aLN
 u0ZO/SOYRXqe1AbJvgC2xKPH6URmNAHHg6urVsOPI14Zj+q+zdz7M2/Ii1cu6o5O
 EvISCqoNU0Wazcnfg6Khp6MwnPxKVIHl0w3C0Z4qZjVIzzSF0VTomy1W3FJHEZuf
 9HSB0BopmOM8FQzAOJnHYjHIXT7jhhjACmapdi4U1d+XGqw1ih4=
 =dlOE
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmJz4x8ACgkQmmx57+YA
 GNkV+A/+OUattSEzS2yaSUDbHC9KjWEEZvPZduQr6EI7rjOlpqeWIlkL0Neh4fce
 UCQNkk3m6VmJmL+b0YljZZPTK+ajH0cPqb8Rp4EDhaqivhLAiaqRW7v6zMj621rQ
 QXA+7DZ0jh8OXkgJJJaDTAEotFAv+NZ95Ca+AbE31Zi5BfHfe0nQs6s+BJYGmt76
 I3hK6ZCgfa4T/ubFariJsFxbZisWbuMjQJIw5Z+PC7sGPYEx00xiws7L/8apBxTt
 XHz4NF02qA0wV28W6TyQdTN8q+8t/1yAG7wd2cFic5RJl7KNH+SP9WsL2jMLscvM
 QjoFdEg7RM80slFFHI3HUvcC5+2KiqzkvhKbXAG5lqXtgk1Q0I+aLi795TRRhrXu
 IxPubqvBqOd8MLUUIeU+qf3KFAVdtB1ly/tRCFaF5m3U4v8naE063rO3IMuojQmk
 BaCfbBB7vfa50ETSVYwT/APq2U+V6LOH1nvIP8kgltiqd70XZFyGs9cIgdcVZE3w
 a11PPgl/Ux2kKnf8YaRr4vckn+MZ7ByBEEDaHPmbRRlup+n2sMX8q3w1sfYoVI5C
 /IVS3XGxBWkVb3FGoOA4PllIdf9FWr00TIC3N/+3R12WpJ76ACVd+kVlB/GVNMkM
 QY3GaetMUZ4OMm93mXwqg0yACA6arfvRbd/TrTdoRGwb2EYehFs=
 =o+6w
 -----END PGP SIGNATURE-----

Merge tag 'juno-updates-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into arm/dt

Arm FVP/Juno device tree updates for v5.19

The main and bulk of the change is the addition of new platform
Arm corstone1000(both FVP and FPGA versions). Also, there are
addition of Coresight Cross Trigger Interface(CTI) support on Juno,
fix for incorrect SCMI power domain IDs, addition of virtio-rng
on FVP which is default disabled as it works only on latest versions
of the FVP model.

Other miscellanous changes include dropping of useless
'dma-channels/requests' properties and updating virtio device
node names as per dtschema.

* tag 'juno-updates-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux:
  arm64: dts: juno: Drop useless 'dma-channels/requests' properties
  arm64: dts: fvp: Align virtio device node names with dtschema
  arm64: dts: fvp: Add virtio-rng support
  arm64: dts: Add Arm corstone1000 platform support
  dt-bindings: Add Arm corstone1000 platform
  arm64: dts: juno: add CTI entries to device tree
  arm64: dts: juno: Fix SCMI power domain IDs for ETF and CS funnel

Link: https://lore.kernel.org/r/20220504112917.3492009-1-sudeep.holla@arm.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-05-05 16:45:51 +02:00
Arnd Bergmann
0fd8954b9e STM32 DT for v5.19, round 1
Highlights:
 ----------
 
 -MCU:
  -Fix pinctrl node names to match with pinctrl yaml.
 
 - MPU:
  -General:
   - Fix pinctrl node names to match with pinctrl yaml.
   - Add Protonics boards support based on STM32MP151A SoC:
     - PRTT1C - 10BaseT1L switch: mainly embeds a sja1105q switch with
                TI and Micrel 10BaseT Phys and wifi support.
     - PRTT1S - 10BaseT1L CO2 sensor board: mainly embeds I2C humidity
                and CO2 sensors.
     - PRTT1A - 10BaseT1L multi functional controller.
 
  - ST boards:
   - Add RTC support on stm32mp13.
   - Add button and heartbit support on stm32mp13 DK board.
   - Add a secure version of STM32MP15 ED1/EV1/DK1/DK2 boards based
     on OP-TEE OS and SCMI protocol.
 
  - DH boards:
   - Use MCO2 to generate PHY clock and ETHRX clock in order to release
     internal PLL for a better SD card usage.
   - Add 1ms PHY post-reset on Avenger96 board to match with PHY
     requirements.
 -----BEGIN PGP SIGNATURE-----
 
 iQJRBAABCgA7FiEEctl9+nxzUSUqdELdf5rJavIecIUFAmJyVdEdHGFsZXhhbmRy
 ZS50b3JndWVAZm9zcy5zdC5jb20ACgkQf5rJavIecIX04BAAiNspmlnFNXz9+PXr
 W1blnkVWudUAK6OR8gDCaKJF9VGgas+qEUFrH29xdIsCsCD4GjoVKVSDRBUtxUHQ
 V/UtyYgaM+B/Bp628E1R+Xq5HBzjZqiUkMt08TitsvOd6Ep1mZ1MgwsLCD31XGWN
 cOmNhSeNdRZGmnIU1EVEEZyQg2k45b570JPN6lOm9C8Jo09qTRn17Z9Fzzs+1rqq
 OD9RNiiSb8zHDhOGl9j19yhTmgPqZgjRNuuKHQ0s1v2ZHKNYZipkWLu2031JNsOY
 hIgs3tKfGWErVhjcKz5KH8x8pWtxnrbDloS3RCqh2AlHpOkbrb1XpAy7ssW3sqI8
 F+v/riNXtAoGedTrursKrtwr0D3H67VNvwXXKcjnnCV1BiX/CuCHkUpIVt0kNBhr
 MYhVlZJyZHtN1qMbhhCc65TEkup2eopIPdQYt7aNpE/VNKGtqEJly3RvW2wNGFOT
 JWHSXFdDGiSEVXRKY4/fYaxd4JqwVeZ/qQJgeMeJIq+ZrUFuCbqpsV9ipgtS1fUL
 7Tj/UfQr8BYDBAmCmSoItsQWYHXIFDLsmhtFRQSoaUQQSfg7Iywdckr4HnjYWsqV
 DwT4AkZScUSPuQuuUsHl5JMQLDOh5EnR+R27KKz4Q60VMVtiM21QZTogBNZxyG/7
 Wvor5EuQ2lvfdesxpQCwug2f/gU=
 =F34o
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmJz4sMACgkQmmx57+YA
 GNmLihAAo1FbtHGXHU3yqY6pYSKiK2noO7slG3jAIMoNCtcbAW78/4jFMqqByeUJ
 Wa76sRbONd8+NWV/zXqXFXpPwK/R2dIk+PcvkAC6LYq2N0IJ2ot+TBk2y5BDC/YF
 F7X3obHpkGJuMhXKJHVf6aQirnhpEdYWEB1FybKAYcSjAR1hQ/eQG8dtpp10a2Ij
 gjocRb99XvTdU+ZoMuExdno0YZ4A+DSn8Q+L+rSknXMDhjlY+t+PF2bWYxBRImPk
 mODtM+G6Qsn7kkDN17NsPjC7E9hQA4eNSVgxw39Atsb0Ery5rBKqr7GjOfzHQJpq
 n1StMx7lbhnDaeFaXdkKYiAdWPtR5qdrRUsth3/Rv7z8XiJ+o4NuJEd4sI4vrgWd
 Or6ebHBMfDWMYK+BYHsqwZU+duuJNB6B0KI8lT8nDZEya34sS9y8al5jKtLfZR0c
 PjjV+Uc204UNLGPMF90vVFte/dAGJCMBio99mBUKWcRnZlaaYXy1AsnnU8gWD9Fq
 nkwXwrjcJJ+lfB/r7lf2ZkRiW8dpPxNQ/jVmdtQ2UYG+ZUBu5LIIRf7F5V56gdqg
 xZstBGgBHtHXGsOhv3DM7cc0JzwUjlv11g45P2Vb5cE3C6Vglq6KI7Kro8WP7mT6
 R5aPER0EwfxvyJTUK6J70TozjQsFNoN20dYE49daxwyrV8RfaEM=
 =gddr
 -----END PGP SIGNATURE-----

Merge tag 'stm32-dt-for-v5.19-1' of git://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32 into arm/dt

STM32 DT for v5.19, round 1

Highlights:
----------

-MCU:
 -Fix pinctrl node names to match with pinctrl yaml.

- MPU:
 -General:
  - Fix pinctrl node names to match with pinctrl yaml.
  - Add Protonics boards support based on STM32MP151A SoC:
    - PRTT1C - 10BaseT1L switch: mainly embeds a sja1105q switch with
               TI and Micrel 10BaseT Phys and wifi support.
    - PRTT1S - 10BaseT1L CO2 sensor board: mainly embeds I2C humidity
               and CO2 sensors.
    - PRTT1A - 10BaseT1L multi functional controller.

 - ST boards:
  - Add RTC support on stm32mp13.
  - Add button and heartbit support on stm32mp13 DK board.
  - Add a secure version of STM32MP15 ED1/EV1/DK1/DK2 boards based
    on OP-TEE OS and SCMI protocol.

 - DH boards:
  - Use MCO2 to generate PHY clock and ETHRX clock in order to release
    internal PLL for a better SD card usage.
  - Add 1ms PHY post-reset on Avenger96 board to match with PHY
    requirements.

* tag 'stm32-dt-for-v5.19-1' of git://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32: (24 commits)
  ARM: dts: stm32: Add SCMI version of STM32 boards (DK1/DK2/ED1/EV1)
  dt-bindings: arm: stm32: Add SCMI version of STM32 boards (DK1/DK2/ED1/EV1)
  ARM: dts: stm32: enable optee firmware and SCMI support on STM32MP15
  dt-bindings: reset: stm32mp15: rename RST_SCMI define
  dt-bindings: clock: stm32mp15: rename CK_SCMI define
  dt-bindings: clock: stm32mp1: describes clocks if "st,stm32mp1-rcc-secure"
  dt-bindings: rcc: Add optional external ethernet RX clock properties
  ARM: dts: stm32: add UserPA13 button on stm32mp135f-dk
  ARM: dts: stm32: add blue led (Linux heartbeat) on stm32mp135f-dk
  ARM: dts: stm32: add EXTI interrupt-parent to pinctrl node on stm32mp131
  ARM: dts: stm32: add support for Protonic PRTT1x boards
  ARM: dts: stm32: stm32mp15-pinctrl: add spi1-1 pinmux group
  dt-bindings: net: silabs,wfx: add prt,prtt1c-wfm200 antenna variant
  dt-bindings: arm: stm32: Add compatible strings for Protonic T1L boards
  dt-bindings: arm: stm32: correct blank lines
  dt-bindings: arm: stm32: narrow DH STM32MP1 SoM boards
  ARM: dts: stm32: enable RTC support on stm32mp135f-dk
  ARM: dts: stm32: add RTC node on stm32mp131
  ARM: dts: stm32: Fix PHY post-reset delay on Avenger96
  ARM: dts: stm32: fix pinctrl node name warnings (MPU soc)
  ...

Link: https://lore.kernel.org/r/5818c943-882d-7e50-430d-ae3299a108ee@foss.st.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-05-05 16:44:19 +02:00
Arnd Bergmann
dbdaca1300 This pull request contains Broadcom ARM/ARM64 SoCs drivers changes for
5.19, please pull the following:
 
 - Qintao adds a missing NULL check to the Broadcom PMB driver after a
   memory allocation
 
 - Li removes the redundant suppress_bind_attrs from the brcmstb_gisb
   driver which only has a probe and no remove function
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEm+Rq3+YGJdiR9yuFh9CWnEQHBwQFAmJy6BUACgkQh9CWnEQH
 BwRzjxAA56LdLa1ucGBLuXaLMzhN7JBQwqFbJRhJnig6gYMoOu4eJf2tD9Bfq/XN
 Mu5tAqE19orfBsu1xm67hzVUDpwL3DKN11FVDjYBKqmVU8PMEjd8F619ak6DLs+4
 D5R/wC+4sanfwotk7Ud3MAb+F8zUGwFM5NdaMwHdFAZOq++c5zU9xNFHhU3IfJBR
 OdbGKwaFmRT9iF4mztx1C9s3aBSggDqMeCpJeLqlS7jPim14gN3nl+l06n480kw/
 dMgJxnI3sCydefJiGYNDLV833Wfj2XFkLnVbK2erDUL9UTRQSetwPuvIJKI4jPSW
 uAiWM8l8y9DrOTSauVQs8khgx7hzdJ6haYydXfJKI8ZidOHHE7DcOuUkIgvXidpY
 iT5QgVTfVK9l48pFN1xCC+TkfizlbaVVbdTqlp0hPfB/Jb7ZUtKCtcq4A0T4HgdT
 5W8z1bwMdKZpbKj931IcTPO4CH6VVKzJXBks75+17QxPWU7lu883kr81fclYbYD8
 q+VbAMY1lEaWEOUhSuXtK3ubpM4ygVrjrHPpm2qWfeK2RqUTNnQrXy1JSafPwl/2
 zcYjExr6MWNDaXD/oI/udKnEiul+quoW6rXmDdYQHE/t+pOqbPKPNOGRF/pFSW2q
 WJo1seJG20fiCmhOyoTinT4Gfen42a5Tr03ONOP8uS2K9ca4+mU=
 =DrJC
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmJz33gACgkQmmx57+YA
 GNlLjhAAnwpXm0Oco9a+OA3vKPiw4JZzpUvBUW1uCcT6YNRdZKNLhXE50VgshX/s
 L0bK9yarJ/3H2ULs6zsAb4YWDsIrhdrIuARBYuJqJEnXAPCYQO77CJt6K+XPRARf
 maKOfbK4dOrGyXOqqsMKfM3EUWECGK1Z45QBOxi4xj1/U/b0kQc/N8feznzx/uer
 9uzlIleZrixGi3ez/BCmUrqdEMRDKu2AgpUWZQ6J6dwaWSBs8/upeyedEaDc3HgD
 InMsJgkDh/K8dRjuqZQXzsSIVuc/XYiDCVisuCLP+C+a8MTq3We9Y8inu7tv625O
 p1/iiDXO4JAFoD3g0wxH2SetcT1fNIwPv9icG4Lsz2BNav/nAm2/dWc/Py8jvPN+
 hjIqm2IuNL9yxtyMREZ83TWc81688o5laEvw9JslhSaAddhave974vF/bSywryFi
 qZsMpXrTk6q68HzwKpieV/Mx8iNDNkj6peXmAwR5pZ7Uhi/bjYVPnPG0CvMOEstt
 zcjOADLSJPoqjWxqBuPw/71gEoBmv+eJFCXV7mhBBjt+CngmdEAsUmEnMKZPL6SY
 nYCqEy/N5C57FeXbcmMnBbauHdcuoyMrb6RIsVExhbboaLKF0JtEow5z9tM15yqv
 8++HBYsZTA0R+VO4/sn7CX5rG/F+eo0YusN/dUfy7EFr2rK5iSU=
 =ycAK
 -----END PGP SIGNATURE-----

Merge tag 'arm-soc/for-5.19/drivers' of https://github.com/Broadcom/stblinux into arm/drivers

This pull request contains Broadcom ARM/ARM64 SoCs drivers changes for
5.19, please pull the following:

- Qintao adds a missing NULL check to the Broadcom PMB driver after a
  memory allocation

- Li removes the redundant suppress_bind_attrs from the brcmstb_gisb
  driver which only has a probe and no remove function

* tag 'arm-soc/for-5.19/drivers' of https://github.com/Broadcom/stblinux:
  bus: brcmstb_gisb: Remove the suppress_bind_attrs attribute of the driver
  soc: bcm: Check for NULL return of devm_kzalloc()

Link: https://lore.kernel.org/r/20220504210942.1838248-4-f.fainelli@gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-05-05 16:30:16 +02:00
Linus Walleij
f4b09d8d67 pinctrl: stm32: Fix up errorpath after merge
When merging the for_each_gpiochip_node() changes, I made
some mistakes by not disabling the clocks on the errorpath,
fix it up.

Fixes: a091208308 ("Merge tag 'intel-gpio-v5.19-1' of git://git.kernel.org/pub/scm/linux/kernel/git/andy/linux-gpio-intel into devel")
Cc: Stephen Rothwell <sfr@canb.auug.org.au>
Cc: Fabien Dessenne <fabien.dessenne@foss.st.com>
Reported-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2022-05-05 16:24:06 +02:00
Zev Weiss
c3e3ca05da
regulator: core: Fix enable_count imbalance with EXCLUSIVE_GET
Since the introduction of regulator->enable_count, a driver that did
an exclusive get on an already-enabled regulator would end up with
enable_count initialized to 0 but rdev->use_count initialized to 1.
With that starting point the regulator is effectively stuck enabled,
because if the driver attempted to disable it it would fail the
enable_count underflow check in _regulator_handle_consumer_disable().

The EXCLUSIVE_GET path in _regulator_get() now initializes
enable_count along with rdev->use_count so that the regulator can be
disabled without underflowing the former.

Signed-off-by: Zev Weiss <zev@bewilderbeest.net>
Fixes: 5451781dad ("regulator: core: Only count load for enabled consumers")
Link: https://lore.kernel.org/r/20220505043152.12933-1-zev@bewilderbeest.net
Signed-off-by: Mark Brown <broonie@kernel.org>
2022-05-05 15:13:06 +01:00
Arnd Bergmann
6c6012ab96 OP-TEE RPC argument cache
Adds caching of the OP-TEE argument structure used to pass request to
 secure world. This reduces quite a bit of unnecessary alloc/free and
 possibly switching back and forth to secure work in order to register
 the buffers in some configurations, most notably FF-A.
 -----BEGIN PGP SIGNATURE-----
 
 iQJOBAABCgA4FiEEFV+gSSXZJY9ZyuB5LinzTIcAHJcFAmJy2qcaHGplbnMud2lr
 bGFuZGVyQGxpbmFyby5vcmcACgkQLinzTIcAHJfGvRAAwWWyMSRRxFGlaiENphwg
 vLKP0faPgW4kBPLI7bd6ItpWlMNNx6ixtqZo8Icz0yke7yb/5m1wi3jC1rz2FuvU
 JZXdepakJ3TGDpXWX6wVSpZFGfq/l41OTmFh3BV3DvUCMTfjXzcUJqv9zHpWwgU/
 qPY/hhWzrJcJ8fTi6tXtExAhUsGxAmSJ/s+ShvNYXbNa8hrgyU3Nq15HODGR1BXS
 +2mos1F4KlGRxhPu+hCRqyyD5l3Tkzk4HFoSt6AOfBQ9voSCcw8XVtL9/4Jx3592
 +99Y+VqsnJJNEHiSD6ESRyKadRIZvH4zwKBh92J3z/NhhxmeC1isDFYkmlgoxCaq
 OgPdFUa0Nq3JlIY4W+0c3TS0N/CGXrRFkDChEbn4sdQOKeIUy70yX/Eml5d+xhAC
 JDnSzz/B6i8qYgXwK6srSiY2uKi75L4qhGQmemp1x4HToRjEjTfWaKX2rBjfspiQ
 8/9HQBG7Xk1PYiAN0z4xIjpoYqMRLwrtGm7J0Ep8/PKFyr+yzIHkYLFtoWGv9PZa
 F23/muMZALUxCLwm03/WmlFqmEeY2cFh/dB6UBIVpBmTM3X7QPdrTwVpamLgmtyT
 hwONAOpmUGF6du0a84Gz2D3unUaGXGI8Ccyam2MsYYQF9vwxp0HU/Q08zR69vMJA
 BmVbSlUfIPcMLOP0xamfrx4=
 =vq/I
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmJz2LIACgkQmmx57+YA
 GNltcBAAws2PU8EbtUoyYsJlClc1lxj+pUfT9snyv8CJVSLV6a+c94EUrxApJiZv
 HWyNrGfjRCY0otXzI+uFz9VbRC7sOWZNygdK0oDu+P9kkRNqzqdzfD366ms/VOGJ
 cswKla5iqKWThkBM4jA2aZA6YdXg4yHjU5h529K5kd/MlW4FyPrN11Bj3ELMeqH5
 XaPkbGMoUgOTkk2CA/9VxVJz2n3fIvXXPYox2fsaDeNJIv3Y0GLEZSC0qE79lve5
 kALRxoHfawyTkHtmVu+3btaUDyjoopRXP0oxo2e3kssGoOUpCJ5OJ8FQhiCiTWXi
 dXE0U7HdM1NNfUSwo87BaE64oMaAULd1OJsOsPkTzzJwvHlcSewAip2y0dd5N7N9
 ngcfBKWo+D17dVNKCVgA7rATMP5se2wtx2/u2TGsyOTmqhteR3hXznHVRm8ZrHCy
 yjtj/5SCqQL9/0/jRGLUR0BwhL0K8+zpW56uQ28cy1a9j7E5iROnrHRmqE6fYaaF
 /sD08lGaeqRKRuIJxFe0OVpQlgVN4ZL75dkujS7OUCrtI++No3QzCjlkSnLdNKdk
 +UB8r3NNPrZSWqdz87Otd+8T6nt7NBbGK/R2yZMtYy1l532VFLguJvRzuY75J8ks
 8LgvZ0AumWRJbig+WdTulanXneAKgugpdwLGfDzNUt8P1nnjVE4=
 =XEqq
 -----END PGP SIGNATURE-----

Merge tag 'optee-rpc-arg-for-v5.19' of https://git.linaro.org/people/jens.wiklander/linux-tee into arm/drivers

OP-TEE RPC argument cache

Adds caching of the OP-TEE argument structure used to pass request to
secure world. This reduces quite a bit of unnecessary alloc/free and
possibly switching back and forth to secure work in order to register
the buffers in some configurations, most notably FF-A.

* tag 'optee-rpc-arg-for-v5.19' of https://git.linaro.org/people/jens.wiklander/linux-tee:
  optee: cache argument shared memory structs
  optee: add FF-A capability OPTEE_FFA_SEC_CAP_ARG_OFFSET
  optee: add OPTEE_SMC_CALL_WITH_RPC_ARG and OPTEE_SMC_CALL_WITH_REGD_ARG
  optee: rename rpc_arg_count to rpc_param_count

Link: https://lore.kernel.org/r/20220504201759.GA180315@jade
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-05-05 16:01:22 +02:00
Christophe Leroy
669df99c95 powerpc: Add missing declaration in asm/drmem.h
Don't rely on random inclusion of linux/of.h by users
of asm/drmem.h

Add a forward declaration of struct property and
struct device_node.

Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/5643ec410e51b749db0636471cb7979524f9ed0e.1646767214.git.christophe.leroy@csgroup.eu
2022-05-06 00:00:21 +10:00
Arnd Bergmann
a4f7f93180 Arm SCMI firmware driver updates/fixes for v5.19
The main theme for most of the changes this time is around the addition
 of the support for SCMI v3.1 specification changes. Though one of the main
 addition in the specification is the powercap protocol, that is still
 work in progress and this set includes all other changes bit and pieces
 scattered all around the different parts of the specification. There are
 few bugs discovered during the process and associated fixes and some
 refactoring to simplify the addition of v3.1 support. It mainly includes
 the support for extended names, few newly added notifications and async
 command support.
 
 Apart from v3.1 SCMI changes, OPTEE transport gets support for dynamic
 shared memory.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEunHlEgbzHrJD3ZPhAEG6vDF+4pgFAmJyPYgACgkQAEG6vDF+
 4pjzMBAAztB1e2M2VXUwpNrgjbEbLMco4OH6iP/YhqHCYKWSxvr1F4GYx6zx6mMl
 1aC7G4PdpHYzhzOmfWN+ewGxrH6YQf8gnJtNbxQQ+whWEL1X5jscyef+UsMnInDf
 jZF8mk5JFrH1cGZxa1RQo+rupTnAY5fhaNwcMNt9AqvXz8Jw/b+PVZ48FznDXvAb
 FvTq8/hZ1C+vxWS0UBRVSTuqyWhXKhl5rX+EUH7HhtIIbZAXZ1kDL2GbiywjaED2
 vWCga1bbYDqBRnz7TFUCW5J9qd/LSxYB7DUZUALyHhPBtsLeAJbjcpLbRffrWvUS
 B9g8kvlAZNfLjh2+jMeUxuV301Z91uA7w3TU7QU5ZHITOA2nOW6yJqw1qgq9sJxA
 tpu04dpIwFnJwId/3XtOyQT9RSdE2wlXqM1iDy1N8oTeGdSdayIqhc+3Rq9cRjxx
 MuEuajUF0iBw5azSN9qpu6Gv7ZxwcntAsTMjHOrZ0hLQweyY6MfhT31QKinN7oul
 uKXT1RPHk2bgaCIkL5w65fVoMcgpvh9giJZYjOheb+dsFWROLNR21kDYxwugEXI+
 yXe3OYanFrZ5PqqGAK6xEmT7suxaKQnHRhlFyF8NDT4UxHMtcRHiBZuktsMsOLGQ
 SeySI1DH13hN/LI6v5T2L5SMCgN8DM02pwtgMB9GQdd8WNHsuXw=
 =y58p
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmJz2HQACgkQmmx57+YA
 GNnjJw/+K+okeg/RQr3AC4I0Ne0E1qGZtQ8imw1q2XylFnYfuTwbQn8G1aK0WGLQ
 LcgzJrH7Ue69sSUAYpXflmE18Ro+onKMtjZ7E75SDhce6dd2YHFn88+tUPiblcQq
 /N6HUAthnkkjinvEeZULc/hnHzmfcK0i4sLuaVbo+LgF96XTG+NDGSgPb6Y6SDz5
 mIOawckmH4wBZHGdUBquZc1q20lXx507omUC2nTrv98cTlgcCUx8MlcnLDKnLjiF
 Sqvh0KLAzpoiwr564Zpji4pNx8haXiN9UjErys8m46lt3d2u/SzCzDS+8mtDyLXO
 qGmVeoBFR6WO9gM9L/Shzp1zo2M7dxNu0lf5xov5nAVs9PgViO8Ea4yxEnpULqpL
 2AYJxMBinG6eJ8FQ++8HIrnAn14ULmJQO/daSJemHdRk9YSQFC2PIa7VPLAT1clr
 8+fVwe05Pes3ttAMXb78KoiOccAdzQjPontwm/cfGIkgmhSs4XEs96qp4DbgjGg4
 TKu6ksiSUDqAkp2M3nj8d0BPOcCSSZgdr5dz8T/4l1S6mtsX0AxfZCQHSjyaDY2j
 JNjHEtU6BuOMJ2CiwB/CAvSYnsQsLJ1gReho3EJH5fwoRbRF2M2dtFjsMQxUCQJ9
 cig2UHlxYvC+TyAvkgYnX+0gntc8DYCgC/JlG7a6BdDD0TyTtpY=
 =JE30
 -----END PGP SIGNATURE-----

Merge tag 'scmi-updates-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into arm/drivers

Arm SCMI firmware driver updates/fixes for v5.19

The main theme for most of the changes this time is around the addition
of the support for SCMI v3.1 specification changes. Though one of the main
addition in the specification is the powercap protocol, that is still
work in progress and this set includes all other changes bit and pieces
scattered all around the different parts of the specification. There are
few bugs discovered during the process and associated fixes and some
refactoring to simplify the addition of v3.1 support. It mainly includes
the support for extended names, few newly added notifications and async
command support.

Apart from v3.1 SCMI changes, OPTEE transport gets support for dynamic
shared memory.

* tag 'scmi-updates-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux: (24 commits)
  firmware: arm_scmi: Fix late checks on pointer dereference
  firmware: arm_scmi: Support optee shared memory in the optee transport
  firmware: arm_scmi: Add SCMI v3.1 VOLTAGE_LEVEL_SET_COMPLETE
  firmware: arm_scmi: Add SCMI v3.1 clock notifications
  firmware: arm_scmi: Add checks for min/max limits in PERFORMANCE_LIMITS_SET
  firmware: arm_scmi: Add SCMI v3.1 perf power-cost in microwatts
  firmware: arm_scmi: Use common iterators in the perf protocol
  firmware: arm_scmi: Use common iterators in the voltage protocol
  firmware: arm_scmi: Use common iterators in the clock protocol
  firmware: arm_scmi: Add SCMI v3.1 SENSOR_AXIS_NAME_GET support
  firmware: arm_scmi: Use common iterators in the sensor protocol
  firmware: arm_scmi: Add iterators for multi-part commands
  firmware: arm_scmi: Parse clock_enable_latency conditionally
  firmware: arm_scmi: Set clock latency to U32_MAX if it is not supported
  firmware: arm_scmi: Add SCMI v3.1 protocol extended names support
  firmware: arm_scmi: Introduce a common SCMI v3.1 .extended_name_get helper
  firmware: arm_scmi: Split protocol specific definitions in a dedicated header
  firmware: arm_scmi: Remove unneeded NULL termination of clk name
  firmware: arm_scmi: Check CLOCK_RATE_SET_COMPLETE async response
  firmware: arm_scmi: Make name_get operations return a const
  ...

Link: https://lore.kernel.org/r/20220504112906.3491985-1-sudeep.holla@arm.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-05-05 16:00:20 +02:00
Christophe Leroy
eb4713c40a powerpc: Include asm/reg.h in asm/svm.h
is_secure_guest() uses mfmsr().

Don't rely on users to include asm/reg.h, include
it in asm/svm.h

Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/482c82c8a29d5fb3ea279b34f107e0e775001344.1646767214.git.christophe.leroy@csgroup.eu
2022-05-06 00:00:20 +10:00
Christophe Leroy
07071346bb powerpc: Don't include asm/prom.h in asm/parport.h
parport.h needs only of_irq.h, no need to go via asm/prom.h

Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/ec796ee56cf61f16ba24e62a9d3525d11931538c.1646767214.git.christophe.leroy@csgroup.eu
2022-05-06 00:00:20 +10:00
Christophe Leroy
0aa297e73b powerpc/64: Move pci_device_from_OF_node() out of asm/pci-bridge.h
Move pci_device_from_OF_node() in pci64.c because it needs definition
of struct device_node and is not worth inlining.

ppc32.c already has it in pci32.c.

That way pci-bridge.h doesn't need linux/of.h (Brought by asm/prom.h
via asm/pci.h)

Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/3c88286b55413730d7784133993a46ef4a3607ce.1646767214.git.christophe.leroy@csgroup.eu
2022-05-06 00:00:20 +10:00
Christophe Leroy
f206fdd9d4 powerpc: Reduce csum_add() complexity for PPC64
PPC64 does everything in C, gcc is able to skip calculation
when one of the operands in zero.

Move the constant folding in PPC32 part.

This helps GCC and reduces ppc64_defconfig by 170 bytes.

Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/a4ca63dd4c4b09e1906d08fb814af5a41d0f3fcb.1644651363.git.christophe.leroy@csgroup.eu
2022-05-06 00:00:20 +10:00
Nicholas Piggin
a553476c44 powerpc/64: remove system call instruction emulation
emulate_step() instruction emulation including sc instruction emulation
initially appeared in xmon. It was then moved into sstep.c where kprobes
could use it too, and later hw_breakpoint and uprobes started to use it.

Until uprobes, the only instruction emulation users were for kernel
mode instructions.

- xmon only steps / breaks on kernel addresses.
- kprobes is kernel only.
- hw_breakpoint only emulates kernel instructions, single steps user.

At one point, there was support for the kernel to execute sc
instructions, although that is long removed and it's not clear whether
there were any in-tree users. So system call emulation is not required
by the above users.

uprobes uses emulate_step and it appears possible to emulate sc
instruction in userspace. Userspace system call emulation is broken and
it's not clear it ever worked well.

The big complication is that userspace takes an interrupt to the kernel
to emulate the instruction. The user->kernel interrupt sets up registers
and interrupt stack frame expecting to return to userspace, then system
call instruction emulation re-directs that stack frame to the kernel,
early in the system call interrupt handler. This means the interrupt
return code takes the kernel->kernel restore path, which does not
restore everything as the system call interrupt handler would expect
coming from userspace. regs->iamr appears to get lost for example,
because the kernel->kernel return does not restore the user iamr.
Accounting such as irqflags tracing and CPU accounting does not get
flipped back to user mode as the system call handler expects, so those
appear to enter the kernel twice without returning to userspace.

These things may be individually fixable with various complication, but
it is a big complexity for unclear real benefit.

Furthermore, it is not possible to single step a system call instruction
since it causes an interrupt. As such, a separate patch disables probing
on system call instructions.

This patch removes system call emulation and disables stepping system
calls.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
[minor commit log edit, and also get rid of '#ifdef CONFIG_PPC64']
Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/a412e3b3791ed83de18704c8d90f492e7a0049c0.1648648712.git.naveen.n.rao@linux.vnet.ibm.com
2022-05-06 00:00:20 +10:00
Naveen N. Rao
54cdacd7d3 powerpc: Reject probes on instructions that can't be single stepped
Per the ISA, a Trace interrupt is not generated for:
- [h|u]rfi[d]
- rfscv
- sc, scv, and Trap instructions that trap
- Power-Saving Mode instructions
- other instructions that cause interrupts (other than Trace interrupts)
- the first instructions of any interrupt handler (applies to Branch and Single Step tracing;
CIABR matches may still occur)
- instructions that are emulated by software

Add a helper to check for instructions belonging to the first four
categories above and to reject kprobes, uprobes and xmon breakpoints on
such instructions. We reject probing on instructions belonging to these
categories across all ISA versions and across both BookS and BookE.

For trap instructions, we can't know in advance if they can cause a
trap, and there is no good reason to allow probing on those. Also,
uprobes already refuses to probe trap instructions and kprobes does not
allow probes on trap instructions used for kernel warnings and bugs. As
such, stop allowing any type of probes/breakpoints on trap instruction
across uprobes, kprobes and xmon.

For some of the fp/altivec instructions that can generate an interrupt
and which we emulate in the kernel (altivec assist, for example), we
check and turn off single stepping in emulate_single_step().

Instructions generating a DSI are restarted and single stepping normally
completes once the instruction is completed.

In uprobes, if a single stepped instruction results in a non-fatal
signal to be delivered to the task, such signals are "delayed" until
after the instruction completes. For fatal signals, single stepping is
cancelled and the instruction restarted in-place so that core dump
captures proper addresses.

In kprobes, we do not allow probes on instructions having an extable
entry and we also do not allow probing interrupt vectors.

Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/f56ee979d50b8711fae350fc97870f3ca34acd75.1648648712.git.naveen.n.rao@linux.vnet.ibm.com
2022-05-06 00:00:20 +10:00
Naveen N. Rao
f31c618373 powerpc: Sort and de-dup primary opcodes in ppc-opcode.h
Some of the primary opcodes are duplicated. Remove those, and sort the
rest of the primary opcodes to make it easy to read.

Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/a05edf638a2638d708fc2db0272f6317837b5eab.1648648712.git.naveen.n.rao@linux.vnet.ibm.com
2022-05-06 00:00:19 +10:00
Arnd Bergmann
91f92d7038 Arm FF-A firmware driver updates/fixes for v5.19
Couple of fixes to handle fragmented memory descriptors and incorrect
 UUID parameter passed to ffa_partition_probe. Another fix deals with
 the incorrect use of ffa_device's driver_data by the core driver.
 Apart from these fixes, there is an addition of ffa_dev_get_drvdata helper
 function and its use in optee driver.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEunHlEgbzHrJD3ZPhAEG6vDF+4pgFAmJyPeUACgkQAEG6vDF+
 4piw1A//Y/LGEj9+4yv/NWt26M3DujFmQzHdjjJbIMZmy/iV+GJqfl/6uNH49pZZ
 6lNl7N3ZJC/hPakpDPOZUkDwmivlQWiKGbpdtiAXA6qNp5X+bpUk0N2DZTifhl1a
 0M9/iY/77N9CBTe0n0VcY24alm4++94ccMcpleGLYzf1sYU7sy8wZKV+++GDDJld
 TkD1wZ6GQaYQMdQTh+Il92jQbOOnMOfGqPrdRIHDS3R9g099GvFeB34QZfUOJL2d
 3ikKdj+Pe7BUD68FZZ8UQo1irudCi66577ufnN6dgV7Gf0wgqt+f0C+nawmErQCT
 yuYtUd1fOSTLlQCKXKsgF/+VgxwjcGHG1is7jCsBKJRFv3oSYzmaUWTifpxx2HVx
 XfCmrz4N46OmXUkQ1J12qo8F7Swo+VeIYZWIB+PrsUdqFHKK0lOX7mgU1dPZV3wx
 iiwzeexfVk2MCidaE0xqkuP9fQun39/3sZhtMvap6W9A3+jHKJhbz+yWP/AwlEtP
 pTjElKmMHgP1Md6G2kFcHuooPvAe8BPvudGD49U56nenz4uP0o6OnAub6Ay/1GVB
 dmYSdm33BmLM9bxiJqZHb/I3HtYO5suQum4DWQhfcrQX4BtqSu9fjLhkIAuznp2g
 YiBhF0Xdp4XF760JmePZiqCGH7Y8rqyNZHwxWnKunxCb+3uaJiQ=
 =IOMn
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmJz2EAACgkQmmx57+YA
 GNlnvBAAqHkiCC9z0WW4I7qGQ/uNbsYeX4EU856CXXyI5I9Lz8huJBiXoZwcuJMg
 3WBx8aF1m6xIUORM3NbuI/MLkVZyHI6z6Xfndcd+w8U1mI2CLg7/B+djr0jLyx78
 ckXRhua1g8DGoXdFwDao3ndsAAkMtWFJhNHpOMf2jqGdY1xEAIOfHb7YAeyNf7SZ
 1ygoSAhpys5rcek5r6GQzate4QqiwL2YTnC5vDkOWA1OFsX33d5WVEbrM4KmuLSO
 TdEcBWMxQX52pVZkrBZ1F+tZqgGqyDhf3bJ64zNleycV5U81abndTjkadpZflr1R
 4JgUkzHNkb0Xh3TkcyFBqwerq5FmeCkF6Um0vStngNpsa9fiQ8L5dC1T/NNTl6y5
 pZJhXWMPPgN7GDqLRnTnqdk9t3YS5lbU5BuNU33M1X2y0jMikn2V61WKkejhiXK4
 ZYcs5z31zXkDWXuO149FT38ZUXzf14rolrLx7zc3GVhk6oGp0R7kz+7SKW65P0z5
 NAWLFUmwPYAYgOsFaSY7P+i6UhBtpEk3YixjdYjjU3RvwqAp+YkARQKPApUTXido
 zVB4PRSgf1owEhnlnBzKKwM9ORkL+lrqxpGnB7fvr9UU3LvlI2QxoU+4LGlGmvMh
 cutmev2PBmC6QYmPMwLTvOziyP100riiI5ORb2zJPQVIplzn2EM=
 =MDJg
 -----END PGP SIGNATURE-----

Merge tag 'ffa-updates-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into arm/drivers

Arm FF-A firmware driver updates/fixes for v5.19

Couple of fixes to handle fragmented memory descriptors and incorrect
UUID parameter passed to ffa_partition_probe. Another fix deals with
the incorrect use of ffa_device's driver_data by the core driver.
Apart from these fixes, there is an addition of ffa_dev_get_drvdata helper
function and its use in optee driver.

* tag 'ffa-updates-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux:
  tee: optee: Use ffa_dev_get_drvdata to fetch driver_data
  firmware: arm_ffa: Add ffa_dev_get_drvdata helper function
  firmware: arm_ffa: Remove incorrect assignment of driver_data
  firmware: arm_ffa: Fix uuid parameter to ffa_partition_probe
  firmware: arm_ffa: Fix handling of fragmented memory descriptors

Link: https://lore.kernel.org/r/20220504112853.3491961-1-sudeep.holla@arm.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-05-05 15:59:28 +02:00
Arnd Bergmann
a37de2ad8e TEE accept vmalloc()ed buffers for tee_shm_register_kernel_buf()
-----BEGIN PGP SIGNATURE-----
 
 iQJOBAABCgA4FiEEFV+gSSXZJY9ZyuB5LinzTIcAHJcFAmJxgEYaHGplbnMud2lr
 bGFuZGVyQGxpbmFyby5vcmcACgkQLinzTIcAHJfRmBAAqqqcACLZe0kaV5ngiVm6
 JEpBjlKHdArifWg9wH3D/xpV6huJLve2aut9ppZXA6lm2r+Gt9JLkSygGfpBeHiO
 CdzNvUeY2rGAMNROGUNE5aeXOF5Sul32Otey8co9p55GCi7WQEIdZ0DDmGrywcSV
 BPdsaqaw+hAo1PbOHk592NK455lO/WQDkEDYr/ySI8RyKhfys1aa/x0Eq3mJOiCv
 10rOP1sSZlR9WmEqnOh+9YMzsPoctrajhCfJgvKLzyWZl3nkNd3KfjI/6on4TAGp
 huX408otz06UTGTb+IxXAhm2PKXHBewWUOeiEHN/AptDgrWVKN4oL9/Z4RFXULfr
 rMohHkxqMeJ39pzBsHVY8fSuQgu9eNkuImncLXBJbBwU8TKU6eXIqWxXAC/PGoso
 pJEG16E1TM6v7Ld0TzMAEqiWMcDahA27A4NNhEtZUA9yR8AiiwdpnKXmFHmBaKfV
 kSxcvK1xUrEP19AU7Jf+zLRMx44pQ8X9dIoh5mSMjIkwhvsu0CV0xCXJSv/LOznb
 6P0hlyi/lbfb73pFe93a/fW8NwplArIFK77j8WugIZ9V1AwgACi4YGNJs/zqgy+A
 zwuoRgVAWvu8hPpNodMZl2LYPYF8pBOl2jTPtdhqZY75ulxjaYuH7V/H9DE/zQ4L
 GbMMpLS0joTkVx3cM0CFzxE=
 =30Ow
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmJz16YACgkQmmx57+YA
 GNlSnA//dzoavHz1PMVA3iMLAk4u9Lm+UKDGrB2vgSzldaEDhged8mVM+//ihU69
 wlMLf8tujiYEcqt63ceFYGNUVtBzollXu/k58U2AnUCheQA5CaACvuroDOlxRpOA
 gdwDCmOfl/fom0evoYuGO/E6J+ICBda5t1lYCxer4w1h8Znl9NlE3M9KJOOiiZXv
 SXVZ4fgp3cdcXIdyEeuMsM+2dv8FnPjT4eHR840lVJ0Gjv8sZGXB79OviX6yyG4D
 Z0QmvtVzRse1qUCBZbyqTDdvSWLlijSjxW7v6GPSAvT7vULYeeZtbv7PwdTCQhEt
 PyqUQd/qGW4LQfferDXsXYykPFTDL9jRia54k54o6e+VNQlpepFMI7isQxRj8EIK
 Qt7Yuri8lZzOFB91BIGWM8h3ZD3rP0f/WR4DESnYOLFlEVRc9cMR4HooXdSg9bhb
 0O8zkuE6XfZwixnXgafoaO/RWJ1VacZSusTM/cCYWk6F7hj1DYewbXE+wxAOmYiu
 S9NerFvu/89o2iIBHC7acoigBC7Uw0Yw+aoZiZU47iHbNwGgjrWkUPZfYOeVB6e9
 p0Khq6jkeuw/K0r/aQ9Gq2Jp9JprBmzhTJs/GCmMlRq6kq14HqyZZZ/PJZbcJQkA
 tfSYeQO6gxYs9fvuB3HFDlyVUuuNf7MgEEnMZoQJsQkUPKSj0m0=
 =pqsk
 -----END PGP SIGNATURE-----

Merge tag 'tee-shm-vmalloc-for-v5.19' of https://git.linaro.org/people/jens.wiklander/linux-tee into arm/drivers

TEE accept vmalloc()ed buffers for tee_shm_register_kernel_buf()

* tag 'tee-shm-vmalloc-for-v5.19' of https://git.linaro.org/people/jens.wiklander/linux-tee:
  tee: make tee_shm_register_kernel_buf vmalloc supported

Link: https://lore.kernel.org/r/20220503192916.GA3288817@jade
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-05-05 15:56:54 +02:00
Arnd Bergmann
a964ecd8a7 Combine TEE config and menu in one line
-----BEGIN PGP SIGNATURE-----
 
 iQJOBAABCgA4FiEEFV+gSSXZJY9ZyuB5LinzTIcAHJcFAmJxfW4aHGplbnMud2lr
 bGFuZGVyQGxpbmFyby5vcmcACgkQLinzTIcAHJeplA//bo1BqeyXWjyls+nAMKQR
 jF/jtCceoUUrsE9Xtd5w/3yaA5iJJsp/hUcR35bhl93SZxRJ8r8gGj5qY1FNqzAi
 hoTkp1QCiSaDbdO2kUFpzFkl5mtv8A84McgUA4U9zmFED+h485m2/4igThu9NgSC
 ekmMRKdxrl483u4IBf5nPPbGhCtxDFcRbs3GpWBxKwzbi+GCTUYSSdbagn6XWV/D
 8tTxTKU0vv570oapb9Yg3u0V8Efmy/PtxYeEWMIXGroN6AIiniz/MvKAZUcpLfar
 z8SFCo+qgrgjCvXxdRqleDQqZ19DVoaqlVoAx7G0BmDyysOmq+DdZd33HQeBHrNM
 uwA5DaYnM26wFtkNLMSwR60rmWIf0rpiCjUq25jq6VT8SiSkhTU2s37cSRNZ4vF4
 FH5J8pMUrUq5klxCI06YvjVPctlbbIYKXxwb1SuCj2M5VTSJ8htSI7+a6+5oX9s/
 pUyYyZYHOv9m1E2yHUwckQArdOBnSl9klSENA134hEi797nSI5YiDwmb3p0INMPK
 oZhLUHv9MBRmG4uj2MBkzZELqBGgKUhIF+Qwa+MEcCegBGvzJINphyCGR8LjbcA/
 LXVZnbHk/L4tEA27XlNyPjt76F4PjyU38bzMyKIosnN2l3LRXSdnhgnbEJYZmB9r
 qxv4ZfYLqzUUWWjEekd4t+E=
 =pRcc
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmJz1bEACgkQmmx57+YA
 GNnGJg//TgSk6GAPzpBXAwOROropiEpJTrgXrKvwdvdvOg1MAuhcne6c9pF+9TH3
 cEtBcOaepXqIqa16nx1mnPkAQlFvzitJwnu+1+CN5z+3I2P1214OLxtWFXa8cDAb
 AKmPPsHxvVcwARiBiFvTnD2yvRk6MgJS0osB+5IyDBOZd8p46RymLeu2rxVoQctY
 IETs1kIp05DdShylN1CkNu76HUWqARkzY/AHLkcjKr8Z9K6OGz2VUArRFauO180y
 i3iOQKSVgFXDii4gCTvJe2pffC51q/3aBvasjVVtWeJfsHskQ4jDDZXQ+SG7n9og
 BItVZ+akprOAIVB9Iv4+j6u4Q3UoKpQAKS2aYmBeg83+EnYkpRp33G37UTmDZYXB
 gqnpYPVGJJRUNOXhIPP2jZrp3RfwPCbxfYZkJ1TidcD/p/KTrjCLRV9cXxSNi7DA
 k9RSL66WB9bXCd/QuifeLkhhoYquG8XwyPZRxJuUEw5a3ntXnWUxl3sGjR671UIP
 tEFMD0k33cKlAhGod7UdXLgXY2h2bngk6aodFlSbxzlqVJmE+uw+Spb+S1Deg4DF
 QE9ysxrKnTigY8OuRrPEGAAGfqhpmmw5Q+ogZYv0OpXaTNyZuxnma4xc6WBFVyTo
 cUX0oPJ9s3EjQY1eCtpK1U2sYiKEPOtlCyWdHcTuHNRskZ6oBRs=
 =atkj
 -----END PGP SIGNATURE-----

Merge tag 'tee-menu-for-v5.19' of https://git.linaro.org/people/jens.wiklander/linux-tee into arm/drivers

Combine TEE config and menu in one line

* tag 'tee-menu-for-v5.19' of https://git.linaro.org/people/jens.wiklander/linux-tee:
  tee: combine "config" and "menu" for TEE's menuconfig

Link: https://lore.kernel.org/r/20220503191626.GA3278203@jade
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-05-05 15:48:33 +02:00
Arnd Bergmann
89c500b1fa Reset controller updates for v5.19
Add Meson-S4 SoC reset controller support to reset-meson, AST2600 LPC
 reset controller support to reset-simple, and R9A07G054 USBPHY reset
 controller support to reset-rzg2l-usbphy-ctrl. Add ACPI _RST support to
 device_reset(), simplify the uniphier-glue reset driver using bulk API
 and devres and clean up its dt-bindings docs. Convert most dt-bindings
 docs from txt to yaml.
 -----BEGIN PGP SIGNATURE-----
 
 iI0EABYIADUWIQRRO6F6WdpH1R0vGibVhaclGDdiwAUCYnFPRRcccC56YWJlbEBw
 ZW5ndXRyb25peC5kZQAKCRDVhaclGDdiwOdpAP997XLr1A1I78UFSA8PPrGeL2Zy
 PFjyqq7nd0PXxZfIqQD7B0dkHR8p4oDerjSlKofsZiIw8Drf32E1O+F07gQFGgs=
 =0BLP
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmJzzz0ACgkQmmx57+YA
 GNnhFA/7B2q3RAO2+TsxBVNXocg2qx4Bp+/GD0mInc/TdRZDmvlgOzFca+YElrOL
 amBYZITbNvTlFIKaQkVHmg1IMlGFTH4lCE9s41Jv2CbcN6/7+DcIGTYc21o3xj4P
 hbg3u1Ku9rlOvPrHoFaTrmg+5pgSeqt+sUaRReAOjoEIeb58hDlpDDxp1iXDGpSl
 eL1Ntjr9A5roERmponXWEWdh4TeI2YM62NGtH/y4d/HI7YDzovYeDgmOEZhqiQAy
 vICdSRGqqq8Bo+R0e4mQLKfc6SyyImA6jArpNrsmjtrubyUgcUCpytzmJNAknr7u
 +vnY4PjpaPai57lah1U2FmL+VZRHDlZ6GhCUeC5mYWGpWzQuc3t8VLDcyuCNlYTg
 xzMO4utZox8rQYVPfqAbJd86pszt0ph8b4gnxnZgpeBx7r816TJVM8nXmEMTY3/H
 K/6GEepGi6tslUh6X3bxjjqOzkF9z29iBqchOmll6rE+cGBAKmPpubjkSE5WczBN
 +fmjAmP3HQL7Vb/7qenKnpgU+M8Ypk3Mwlx2Y1bOkjPBoH3YQQ3BSFB0YUrzKdeC
 bSOM2yuNm9tBQeA8B6poYUmS5aCceLCNc0vov518yJcGxmPXokL45eWE6FCDUryD
 v8AmnYXtBXJUfiozcYTfsb9puZBDCEMspMP+6B1XyUdMmswErrE=
 =hOUj
 -----END PGP SIGNATURE-----

Merge tag 'reset-for-v5.19' of git://git.pengutronix.de/pza/linux into arm/drivers

Reset controller updates for v5.19

Add Meson-S4 SoC reset controller support to reset-meson, AST2600 LPC
reset controller support to reset-simple, and R9A07G054 USBPHY reset
controller support to reset-rzg2l-usbphy-ctrl. Add ACPI _RST support to
device_reset(), simplify the uniphier-glue reset driver using bulk API
and devres and clean up its dt-bindings docs. Convert most dt-bindings
docs from txt to yaml.

* tag 'reset-for-v5.19' of git://git.pengutronix.de/pza/linux:
  dt-bindings: reset: st,sti-powerdown: Convert to yaml
  dt-bindings: reset: st,sti-picophyreset: Convert to yaml
  dt-bindings: reset: socfpga: Convert to yaml
  dt-bindings: reset: snps,axs10x-reset: Convert to yaml
  dt-bindings: reset: nuvoton,npcm-reset: Convert to yaml
  dt-bindings: reset: lantiq,reset: Convert to yaml
  dt-bindings: reset: bitmain,bm1880-reset: Convert to yaml
  dt-bindings: reset: berlin: Convert to yaml
  dt-bindings: reset: ath79: Convert to yaml
  dt-bindings: reset: amlogic,meson-axg-audio-arb: Convert to yaml
  dt-bindings: reset: uniphier-glue: Clean up clocks, resets, and their names using compatible string
  reset: Kconfig: Make RESET_RZG2L_USBPHY_CTRL depend on ARCH_RZG2L
  reset: ACPI reset support
  reset: simple: Add AST2600 compatible
  reset: reset-meson: add support for the Meson-S4 SoC Reset Controller
  dt-bindings: reset: add bindings for the Meson-S4 SoC Reset Controller
  dt-bindings: reset: Add compatible for Meson-S4 Reset Controller
  reset: uniphier-glue: Use devm_add_action_or_reset()
  reset: uniphier-glue: Use reset_control_bulk API

Link: https://lore.kernel.org/r/20220503160057.46625-1-p.zabel@pengutronix.de
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-05-05 15:21:01 +02:00
Ethan Yang
870b1eee2d USB: serial: qcserial: add support for Sierra Wireless EM7590
Add support for Sierra Wireless EM7590 0xc080/0xc081 compositions.

Signed-off-by: Ethan Yang <etyang@sierrawireless.com>
Link: https://lore.kernel.org/r/20220425055840.5693-1-etyang@sierrawireless.com
Cc: stable@vger.kernel.org
Signed-off-by: Johan Hovold <johan@kernel.org>
2022-05-05 15:15:15 +02:00
Casper Andersson
1c1ed5a484 net: sparx5: Add handling of host MDB entries
Handle adding and removing MDB entries for host

Signed-off-by: Casper Andersson <casper.casan@gmail.com>
Link: https://lore.kernel.org/r/20220503093922.1630804-1-casper.casan@gmail.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2022-05-05 15:03:45 +02:00
Bartosz Golaszewski
86bfb916df Merge branch 'irq/gpio-immutable' of git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms into gpio/for-next
This pulls in changes improving the handling of immutable irqchips in core
gpiolib and several drivers.
2022-05-05 15:03:29 +02:00
Jon Hunter
7f42aa7b00 gpio: max77620: Make the irqchip immutable
Commit 6c846d026d ("gpio: Don't fiddle with irqchips marked as
immutable") added a warning to indicate if the gpiolib is altering the
internals of irqchips. Following this change the following warning is
now observed for the max77620 gpio driver ...

 WARNING KERN gpio gpiochip0: (max77620-gpio): not an immutable chip,
 	please consider fixing it!

Fix the above warning by making the max77620 gpio driver immutable.

Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
2022-05-05 14:56:37 +02:00
Fabio Estevam
9ac0ae97e3 ARM: dts: imx7d-smegw01: Add support for i.MX7D SMEGW01 board
Add support for the i.MX7D SMEGW01 board.

This is a gateway board that supports the following peripherals:

- eMMC / SD card
- RTC
- USB modem
- Wifi via SDIO
- Dual Ethernet
- CAN
- Serial SRAM

Signed-off-by: Fabio Estevam <festevam@denx.de>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2022-05-05 20:54:09 +08:00
Fabio Estevam
0efdbec205 dt-bindings: arm: fsl: Add Storopack i.MX7D SMEGW01 board
Add DT compatible string for Storopack i.MX7D SMEGW01 board.

Signed-off-by: Fabio Estevam <festevam@denx.de>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2022-05-05 20:53:53 +08:00
Fabio Estevam
5c39d087c9 dt-bindings: vendor-prefixes: Add prefix for Storopack
Add a vendor prefix entry for Storopack (https://www.storopack.com).

Signed-off-by: Fabio Estevam <festevam@denx.de>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2022-05-05 20:53:34 +08:00
Justin Chen
2d4fdc15f9 dt-bindings: gpio: pca95xx: add entry for pca6408
The NXP PCA5608 is the 8-bit version of PCA5616.

Signed-off-by: Justin Chen <justinpopo6@gmail.com>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
2022-05-05 14:52:50 +02:00
Justin Chen
a9e49635e2 gpio: pca953xx: Add support for pca6408
Add support for pca6408 which is the 8-bit version of the pca6416.

https://www.nxp.com/docs/en/data-sheet/PCA6408A.pdf

Signed-off-by: Justin Chen <justinpopo6@gmail.com>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
2022-05-05 14:52:39 +02:00
kernel test robot
7a0c5cb671 soc: imx: fix semicolon.cocci warnings
drivers/soc/imx/imx8mp-blk-ctrl.c:227:61-62: Unneeded semicolon
drivers/soc/imx/imx8mp-blk-ctrl.c:192:61-62: Unneeded semicolon

 Remove unneeded semicolon.

Generated by: scripts/coccinelle/misc/semicolon.cocci

Fixes: 556f5cf956 ("soc: imx: add i.MX8MP HSIO blk-ctrl")
CC: Lucas Stach <l.stach@pengutronix.de>
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: kernel test robot <lkp@intel.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2022-05-05 20:51:52 +08:00
Nobuhiro Iwamatsu
171865dab0 gpio: visconti: Fix fwnode of GPIO IRQ
The fwnode of GPIO IRQ must be set to its own fwnode, not the fwnode of the
parent IRQ. Therefore, this sets own fwnode instead of the parent IRQ fwnode to
GPIO IRQ's.

Fixes: 2ad74f40da ("gpio: visconti: Add Toshiba Visconti GPIO support")
Signed-off-by: Nobuhiro Iwamatsu <nobuhiro1.iwamatsu@toshiba.co.jp>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
2022-05-05 14:39:02 +02:00
Uwe Kleine-König
6d5f220744 gpio: max732x: Drop unused support for irq and setup code via platform data
The only user of max732x_platform_data is arch/arm/mach-pxa/littleton.c
and it only uses .gpio_base. So drop the other members from the data struct
and simplify the driver accordingly.

The motivating side effect of this change is that the .remove() callback
cannot return a nonzero error code any more which prepares making i2c
remove callbacks return void.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
2022-05-05 14:37:17 +02:00
Rafael J. Wysocki
be60348a82 Merge back earlier int340x thermal driver changes for 5.19. 2022-05-05 14:25:13 +02:00
Andy Shevchenko
e14bd35ef4
ASoC: cs43130: Re-use generic struct u16_fract
Instead of custom data type re-use generic struct u16_fract.
No changes intended.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20220502120455.84386-1-andriy.shevchenko@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2022-05-05 13:24:49 +01:00
Shengjiu Wang
101b096bc2
ASoC: fsl_micfil: fix the naming style for mask definition
Remove the _SHIFT for the mask definition.

Fixes: 17f2142bae ("ASoC: fsl_micfil: use GENMASK to define register bit fields")
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Link: https://lore.kernel.org/r/1651736047-28809-1-git-send-email-shengjiu.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2022-05-05 13:24:48 +01:00
Jayesh Choudhary
ea706e5604
ASoC: ti: davinci-mcasp: Add dma-type for bcdma
Set DMA type for ti-bcdma controller for AM62-SK.

Acked-by: Peter Ujfalusi <peter.ujfalusi@gmail.com>
Signed-off-by: Jayesh Choudhary <j-choudhary@ti.com>
Signed-off-by: Jai Luthra <j-luthra@ti.com>
Link: https://lore.kernel.org/r/20220505111226.29217-1-j-luthra@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2022-05-05 13:24:46 +01:00
Peter Ujfalusi
ceb89acc4d
ASoC: SOF: ipc4: Add support for mandatory message handling functionality
Introduce the initial and mandatory IPC ops support for IPC4 to enable
IPC communication with this new IPC protocol.

This patch implements the following ops:
tx_msg, rx_msg, set_get_data and get_reply.

Co-developed-by: Rander Wang <rander.wang@intel.com>
Signed-off-by: Rander Wang <rander.wang@intel.com>
Co-developed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Link: https://lore.kernel.org/r/20220505094818.10346-4-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2022-05-05 13:24:45 +01:00
Peter Ujfalusi
ed85a6e6fe
ASoC: SOF: Add initial header file for ipc4
The header file contains essential structure definitions, description of
bit fields and bits in the ipc4 header and an internally used ipc4 message
container definition.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Link: https://lore.kernel.org/r/20220505094818.10346-3-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2022-05-05 13:24:44 +01:00
Peter Ujfalusi
84c2dca3c3
ASoC: SOF: Add rx_data pointer to snd_sof_ipc_msg struct
The rx_data pointer can be used by IPC implementations to pass the received
message (or part of the message, like the header) from platform code to
generic, high level IPC code.

IPC4 is going to be the first user of this as its implementation on Intel
platforms detaches the header and payload and the rx cannot be handled in
a similar way as it is implemented for ipc3.

If the rx_data is dynamically allocated, it is up to the platform code to
free it up.
After the message reception handling (rx_msg ops) returned, the pointer via
the msg->rx_data should be considered as invalid.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Link: https://lore.kernel.org/r/20220505094818.10346-2-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2022-05-05 13:24:43 +01:00
Marek Vasut
d77e745613
regmap: Add bulk read/write callbacks into regmap_config
Currently the regmap_config structure only allows the user to implement
single element register read/write using .reg_read/.reg_write callbacks.
The regmap_bus already implements bulk counterparts of both, and is being
misused as a workaround for the missing bulk read/write callbacks in
regmap_config by a couple of drivers. To stop this misuse, add the bulk
read/write callbacks to regmap_config and call them from the regmap core
code.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Jagan Teki <jagan@amarulasolutions.com>
Cc: Mark Brown <broonie@kernel.org>
Cc: Maxime Ripard <maxime@cerno.tech>
Cc: Robert Foss <robert.foss@linaro.org>
Cc: Sam Ravnborg <sam@ravnborg.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
To: dri-devel@lists.freedesktop.org
Link: https://lore.kernel.org/r/20220430025145.640305-1-marex@denx.de
Signed-off-by: Mark Brown <broonie@kernel.org>
2022-05-05 13:22:34 +01:00
Rafael J. Wysocki
02678c0882 Merge back earlier cpufreq changes for 5.19. 2022-05-05 14:22:23 +02:00