linux/drivers/mailbox
Orson Zhai 9468ab8403 mailbox: sprd: Introduce refcnt when clients requests/free channels
Unisoc mailbox has no way to be enabled/disabled for any single channel.
They can only be set to startup or shutdown as a whole device at same time.

Add a variable to count references to avoid mailbox FIFO being reset
unexpectedly when clients are requesting or freeing channels.

Also add a lock to dismiss possible conflicts from register r/w in
different startup or shutdown threads. And fix the crash problem when early
interrupts come from channel which has not been requested by client yet.

Fixes: ca27fc26cd ("mailbox: sprd: Add Spreadtrum mailbox driver")
Signed-off-by: Orson Zhai <orson.zhai@unisoc.com>
Reviewed-by: Baolin Wang <baolin.wang7@gmail.com>
Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>
2021-04-13 20:07:36 -05:00
..
arm_mhu_db.c mailbox: arm_mhu_db: Fix mhu_db_shutdown by replacing kfree with devm_kfree 2020-12-01 19:17:20 -06:00
arm_mhu.c mailbox: arm_mhu: Match only if compatible is "arm,mhu" 2020-10-12 21:10:34 -05:00
arm_mhuv2.c mailbox: arm_mhuv2: Skip calling kfree() with invalid pointer 2021-02-22 13:34:27 -06:00
armada-37xx-rwtm-mailbox.c mailbox:armada-37xx-rwtm:remove duplicate print in armada_37xx_mbox_probe() 2020-03-19 23:00:32 -05:00
bcm2835-mailbox.c mailbox: bcm2835: Use device-managed registration API 2018-12-21 16:49:25 -06:00
bcm-flexrm-mailbox.c mailbox: fix various typos in comments 2021-04-13 20:07:35 -05:00
bcm-pdc-mailbox.c mailbox: bcm: convert tasklets to use new tasklet_setup() API 2020-10-12 21:10:34 -05:00
hi3660-mailbox.c mailbox: hi3660: Use device-managed registration API 2018-12-21 16:49:25 -06:00
hi6220-mailbox.c mailbox: no need to set .owner platform_driver_register 2019-11-26 22:45:15 -06:00
imx-mailbox.c mailbox: imx: Mark PM functions as __maybe_unused 2020-08-03 23:28:36 -05:00
Kconfig mailbox: fix various typos in comments 2021-04-13 20:07:35 -05:00
mailbox-altera.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201 2019-05-30 11:29:52 -07:00
mailbox-sti.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
mailbox-test.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
mailbox-xgene-slimpro.c mailbox: fix various typos in comments 2021-04-13 20:07:35 -05:00
mailbox.c mailbox: avoid timer start from callback 2020-10-16 19:09:17 -05:00
mailbox.h mailbox: fix various typos in comments 2021-04-13 20:07:35 -05:00
Makefile mailbox: arm_mhuv2: Add driver 2020-12-09 19:26:02 -06:00
mtk-cmdq-mailbox.c maiblox: mediatek: Fix handling of platform_get_irq() error 2020-10-12 21:10:34 -05:00
omap-mailbox.c mailbox: omap: Add support for K3 AM64x SoCs 2021-02-14 23:23:41 -06:00
pcc.c mailbox: fix various typos in comments 2021-04-13 20:07:35 -05:00
pl320-ipc.c mailbox: fix various typos in comments 2021-04-13 20:07:35 -05:00
platform_mhu.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 285 2019-06-05 17:36:37 +02:00
qcom-apcs-ipc-mailbox.c mailbox: qcom: Add support for SDX55 APCS IPC 2021-02-14 23:25:35 -06:00
qcom-ipcc.c mailbox: Add support for Qualcomm IPCC 2020-05-30 18:43:23 -05:00
rockchip-mailbox.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 288 2019-06-05 17:36:37 +02:00
sprd-mailbox.c mailbox: sprd: Introduce refcnt when clients requests/free channels 2021-04-13 20:07:36 -05:00
stm32-ipcc.c mailbox: stm32-ipcc: cast void pointers to unsigned long 2020-12-01 19:17:20 -06:00
sun6i-msgbox.c mailbox: sun6i-msgbox: Add a new mailbox driver 2020-03-19 23:00:32 -05:00
tegra-hsp.c mailbox: tegra-hsp: Set lockdep class dynamically 2021-02-14 23:28:40 -06:00
ti-msgmgr.c mailbox: fix various typos in comments 2021-04-13 20:07:35 -05:00
zynqmp-ipi-mailbox.c mailbox: zynqmp-ipi: Fix NULL vs IS_ERR() check in zynqmp_ipi_mbox_probe() 2020-05-30 18:08:40 -05:00