Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'mailbox-v6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/jassibrar/mailbox

Pull mailbox updates from Jassi Brar:

- fix kconfig dependencies (mhu-v3, omap2+)

- use devie name instead of genereic imx_mu_chan as interrupt name
(imx)

- enable sa8255p and qcs8300 ipc controllers (qcom)

- Fix timeout during suspend mode (bcm2835)

- convert to use use of_property_match_string (mailbox)

- enable mt8188 (mediatek)

- use devm_clk_get_enabled helpers (spreadtrum)

- fix device-id typo (rockchip)

* tag 'mailbox-v6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/jassibrar/mailbox:
mailbox, remoteproc: omap2+: fix compile testing
dt-bindings: mailbox: qcom-ipcc: Document QCS8300 IPCC
dt-bindings: mailbox: qcom-ipcc: document the support for SA8255p
dt-bindings: mailbox: mtk,adsp-mbox: Add compatible for MT8188
mailbox: Use of_property_match_string() instead of open-coding
mailbox: bcm2835: Fix timeout during suspend mode
mailbox: sprd: Use devm_clk_get_enabled() helpers
mailbox: rockchip: fix a typo in module autoloading
mailbox: imx: use device name in interrupt name
mailbox: ARM_MHU_V3 should depend on ARM64

+32 -51
+9 -3
Documentation/devicetree/bindings/mailbox/mtk,adsp-mbox.yaml
··· 17 17 18 18 properties: 19 19 compatible: 20 - enum: 21 - - mediatek,mt8195-adsp-mbox 22 - - mediatek,mt8186-adsp-mbox 20 + oneOf: 21 + - enum: 22 + - mediatek,mt8186-adsp-mbox 23 + - mediatek,mt8195-adsp-mbox 24 + - items: 25 + - enum: 26 + - mediatek,mt8188-adsp-mbox 27 + - const: mediatek,mt8186-adsp-mbox 28 + 23 29 24 30 "#mbox-cells": 25 31 const: 0
+2
Documentation/devicetree/bindings/mailbox/qcom-ipcc.yaml
··· 24 24 compatible: 25 25 items: 26 26 - enum: 27 + - qcom,qcs8300-ipcc 27 28 - qcom,qdu1000-ipcc 29 + - qcom,sa8255p-ipcc 28 30 - qcom,sa8775p-ipcc 29 31 - qcom,sc7280-ipcc 30 32 - qcom,sc8280xp-ipcc
+2 -1
drivers/mailbox/Kconfig
··· 25 25 26 26 config ARM_MHU_V3 27 27 tristate "ARM MHUv3 Mailbox" 28 + depends on ARM64 || COMPILE_TEST 28 29 depends on HAS_IOMEM || COMPILE_TEST 29 30 depends on OF 30 31 help ··· 74 73 75 74 config OMAP2PLUS_MBOX 76 75 tristate "OMAP2+ Mailbox framework support" 77 - depends on ARCH_OMAP2PLUS || ARCH_K3 76 + depends on ARCH_OMAP2PLUS || ARCH_K3 || COMPILE_TEST 78 77 help 79 78 Mailbox implementation for OMAP family chips with hardware for 80 79 interprocessor communication involving DSP, IVA1.0 and IVA2 in
+2 -1
drivers/mailbox/bcm2835-mailbox.c
··· 145 145 spin_lock_init(&mbox->lock); 146 146 147 147 ret = devm_request_irq(dev, irq_of_parse_and_map(dev->of_node, 0), 148 - bcm2835_mbox_irq, 0, dev_name(dev), mbox); 148 + bcm2835_mbox_irq, IRQF_NO_SUSPEND, dev_name(dev), 149 + mbox); 149 150 if (ret) { 150 151 dev_err(dev, "Failed to register a mailbox IRQ handler: %d\n", 151 152 ret);
+3 -3
drivers/mailbox/imx-mailbox.c
··· 30 30 #define IMX_MU_SCU_CHANS 6 31 31 /* TX0/RX0 */ 32 32 #define IMX_MU_S4_CHANS 2 33 - #define IMX_MU_CHAN_NAME_SIZE 20 33 + #define IMX_MU_CHAN_NAME_SIZE 32 34 34 35 35 #define IMX_MU_V2_PAR_OFF 0x4 36 36 #define IMX_MU_V2_TR_MASK GENMASK(7, 0) ··· 782 782 cp->chan = &priv->mbox_chans[i]; 783 783 priv->mbox_chans[i].con_priv = cp; 784 784 snprintf(cp->irq_desc, sizeof(cp->irq_desc), 785 - "imx_mu_chan[%i-%i]", cp->type, cp->idx); 785 + "%s[%i-%i]", dev_name(priv->dev), cp->type, cp->idx); 786 786 } 787 787 788 788 priv->mbox.num_chans = IMX_MU_CHANS; ··· 819 819 cp->chan = &priv->mbox_chans[i]; 820 820 priv->mbox_chans[i].con_priv = cp; 821 821 snprintf(cp->irq_desc, sizeof(cp->irq_desc), 822 - "imx_mu_chan[%i-%i]", cp->type, cp->idx); 822 + "%s[%i-%i]", dev_name(priv->dev), cp->type, cp->idx); 823 823 } 824 824 825 825 priv->mbox.num_chans = num_chans;
+6 -16
drivers/mailbox/mailbox.c
··· 450 450 const char *name) 451 451 { 452 452 struct device_node *np = cl->dev->of_node; 453 - struct property *prop; 454 - const char *mbox_name; 455 - int index = 0; 453 + int index; 456 454 457 455 if (!np) { 458 456 dev_err(cl->dev, "%s() currently only supports DT\n", __func__); 459 457 return ERR_PTR(-EINVAL); 460 458 } 461 459 462 - if (!of_get_property(np, "mbox-names", NULL)) { 463 - dev_err(cl->dev, 464 - "%s() requires an \"mbox-names\" property\n", __func__); 460 + index = of_property_match_string(np, "mbox-names", name); 461 + if (index < 0) { 462 + dev_err(cl->dev, "%s() could not locate channel named \"%s\"\n", 463 + __func__, name); 465 464 return ERR_PTR(-EINVAL); 466 465 } 467 - 468 - of_property_for_each_string(np, "mbox-names", prop, mbox_name) { 469 - if (!strncmp(name, mbox_name, strlen(name))) 470 - return mbox_request_channel(cl, index); 471 - index++; 472 - } 473 - 474 - dev_err(cl->dev, "%s() could not locate channel named \"%s\"\n", 475 - __func__, name); 476 - return ERR_PTR(-EINVAL); 466 + return mbox_request_channel(cl, index); 477 467 } 478 468 EXPORT_SYMBOL_GPL(mbox_request_channel_byname); 479 469
+1 -1
drivers/mailbox/omap-mailbox.c
··· 603 603 .driver = { 604 604 .name = "omap-mailbox", 605 605 .pm = &omap_mbox_pm_ops, 606 - .of_match_table = of_match_ptr(omap_mailbox_of_match), 606 + .of_match_table = omap_mailbox_of_match, 607 607 }, 608 608 }; 609 609 module_platform_driver(omap_mbox_driver);
+1 -1
drivers/mailbox/rockchip-mailbox.c
··· 159 159 { .compatible = "rockchip,rk3368-mailbox", .data = &rk3368_drv_data}, 160 160 { }, 161 161 }; 162 - MODULE_DEVICE_TABLE(of, rockchp_mbox_of_match); 162 + MODULE_DEVICE_TABLE(of, rockchip_mbox_of_match); 163 163 164 164 static int rockchip_mbox_probe(struct platform_device *pdev) 165 165 {
+4 -21
drivers/mailbox/sprd-mailbox.c
··· 62 62 void __iomem *outbox_base; 63 63 /* Base register address for supplementary outbox */ 64 64 void __iomem *supp_base; 65 - struct clk *clk; 66 65 u32 outbox_fifo_depth; 67 66 68 67 struct mutex lock; ··· 290 291 .shutdown = sprd_mbox_shutdown, 291 292 }; 292 293 293 - static void sprd_mbox_disable(void *data) 294 - { 295 - struct sprd_mbox_priv *priv = data; 296 - 297 - clk_disable_unprepare(priv->clk); 298 - } 299 - 300 294 static int sprd_mbox_probe(struct platform_device *pdev) 301 295 { 302 296 struct device *dev = &pdev->dev; 303 297 struct sprd_mbox_priv *priv; 304 298 int ret, inbox_irq, outbox_irq, supp_irq; 305 299 unsigned long id, supp; 300 + struct clk *clk; 306 301 307 302 priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); 308 303 if (!priv) ··· 324 331 if (IS_ERR(priv->outbox_base)) 325 332 return PTR_ERR(priv->outbox_base); 326 333 327 - priv->clk = devm_clk_get(dev, "enable"); 328 - if (IS_ERR(priv->clk)) { 334 + clk = devm_clk_get_enabled(dev, "enable"); 335 + if (IS_ERR(clk)) { 329 336 dev_err(dev, "failed to get mailbox clock\n"); 330 - return PTR_ERR(priv->clk); 331 - } 332 - 333 - ret = clk_prepare_enable(priv->clk); 334 - if (ret) 335 - return ret; 336 - 337 - ret = devm_add_action_or_reset(dev, sprd_mbox_disable, priv); 338 - if (ret) { 339 - dev_err(dev, "failed to add mailbox disable action\n"); 340 - return ret; 337 + return PTR_ERR(clk); 341 338 } 342 339 343 340 inbox_irq = platform_get_irq_byname(pdev, "inbox");
+2 -4
drivers/remoteproc/Kconfig
··· 330 330 config TI_K3_DSP_REMOTEPROC 331 331 tristate "TI K3 DSP remoteproc support" 332 332 depends on ARCH_K3 333 - select MAILBOX 334 - select OMAP2PLUS_MBOX 333 + depends on OMAP2PLUS_MBOX 335 334 help 336 335 Say m here to support TI's C66x and C71x DSP remote processor 337 336 subsystems on various TI K3 family of SoCs through the remote ··· 355 356 config TI_K3_R5_REMOTEPROC 356 357 tristate "TI K3 R5 remoteproc support" 357 358 depends on ARCH_K3 358 - select MAILBOX 359 - select OMAP2PLUS_MBOX 359 + depends on OMAP2PLUS_MBOX 360 360 help 361 361 Say m here to support TI's R5F remote processor subsystems 362 362 on various TI K3 family of SoCs through the remote processor