linux/drivers/soc
Conor Dooley 5ee40e8d76 Merge patch series "mailbox,soc: mpfs: add support for fallible services"
Conor Dooley <conor@kernel.org> says:

Here are some fixes for the system controller on PolarFire SoC that I
ran into while implementing support for using the system controller to
re-program the FPGA. A few are just minor bits that I fixed in passing,
but the bulk of the patchset is changes to how the mailbox figures out
if a "service" has completed.

Prior to implementing this particular functionality, the services
requested from the system controller, via its mailbox interface, always
triggered an interrupt when the system controller was finished with
the service.

Unfortunately some of the services used to validate the FPGA images
before programming them do not trigger an interrupt if they fail.
For example, the service that checks whether an FPGA image is actually
a newer version than what is already programmed, does not trigger an
interrupt, unless the image is actually newer than the one currently
programmed. If it has an earlier version, no interrupt is triggered
and a status is set in the system controller's status register to
signify the reason for the failure.

In order to differentiate between the service succeeding & the system
controller being inoperative or otherwise unable to function, I had to
switch the controller to poll a busy bit in the system controller's
registers to see if it has completed a service.
This makes sense anyway, as the interrupt corresponds to "data ready"
rather than "tx done", so I have changed the mailbox controller driver
to do that & left the interrupt solely for signalling data ready.
It just so happened that all of the services that I had worked with and
tested up to this point were "infallible" & did not set a status, so the
particular code paths were never tested.

Link: https://lore.kernel.org/r/20230307202257.1762151-1-conor@kernel.org
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
2023-04-03 19:27:06 +01:00
..
actions
amlogic soc: amlogic: meson-pwrc: Add NNA power domain for A311D 2023-01-02 11:32:53 +01:00
apple soc: apple: rtkit: Do not copy the reg state structure to the stack 2023-02-13 20:20:34 +01:00
aspeed
atmel ARM: at91: add support in soc driver for new SAMA7G54 SiPs 2023-01-09 13:58:02 +02:00
bcm soc: bcm: bcm2835-power: Drop empty platform remove function 2023-01-10 13:46:28 -08:00
canaan soc: canaan: Make K210_SYSCTL depend on CLK_K210 2023-03-15 14:22:53 +00:00
dove
fsl Pin control changes for the v6.2 kernel cycle: 2022-12-13 13:03:06 -08:00
fujitsu
gemini
imx ARM: SoC drivers for 6.3 2023-02-27 10:04:49 -08:00
ixp4xx ARM: ixp4xx: Replace 0-length arrays with flexible arrays 2023-01-19 15:18:19 -08:00
lantiq
litex
loongson
mediatek soc: mediatek: mtk-svs: add missing MODULE_DEVICE_TABLE 2023-02-01 14:35:12 +01:00
microchip soc: microchip: mpfs: handle timeouts and failed services differently 2023-04-03 19:27:02 +01:00
nuvoton soc: nuvoton: Add SoC info driver for WPCM450 2023-02-01 17:11:36 +01:00
pxa pxa: Remove dev_err() after platform_get_irq() 2022-12-04 13:10:57 +01:00
qcom ARM: SoC drivers for 6.3 2023-02-27 10:04:49 -08:00
renesas ARM: SoC drivers for 6.3 2023-02-27 10:04:49 -08:00
rockchip
samsung soc: s3c: remove pm-debug hack 2023-01-16 09:26:06 +01:00
sifive soc: sifive: ccache: Add StarFive JH7110 support 2022-12-26 22:50:15 +00:00
starfive soc: starfive: Add StarFive JH71XX pmu driver 2023-01-20 21:55:59 +00:00
sunxi soc: sunxi: SUN20I_PPU should depend on PM 2023-02-10 17:42:25 +01:00
tegra ARM: SoC fixes for 6.2 2022-12-19 16:07:59 -06:00
ti ARM: omap2: smartreflex: remove on_init control 2023-01-09 17:00:54 +01:00
ux500
versatile
xilinx firmware: xilinx: Remove kernel-doc marking in the code 2023-01-05 10:18:07 +01:00
Kconfig soc: nuvoton: Add SoC info driver for WPCM450 2023-02-01 17:11:36 +01:00
Makefile soc: nuvoton: Add SoC info driver for WPCM450 2023-02-01 17:11:36 +01:00