Commit 08906abc authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull remoteproc updates from Bjorn Andersson:
 "Make Qualcomm TrustZone Peripherial Authentication Service-remoteproc
  identifier/name human friendly. Add audio DSP support for the Qualcomm
  SAR2130P. Ensure IMEM access in the Qualcomm modem remoteproc driver
  is performed prior to the firmware enabling the XPU and locking us
  out.

  Improve error handling, error logging, compile testing support, and a
  few other stylistic things across a variety of the drivers"

* tag 'rproc-v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux: (30 commits)
  remoteproc: qcom: wcss: Remove double assignment in q6v5_wcss_probe()
  remoteproc: qcom_q6v5_mss: Re-order writes to the IMEM region
  remoteproc: qcom_wcnss_iris: Simplify with dev_err_probe()
  remoteproc: qcom_q6v5_wcss: Simplify with dev_err_probe()
  remoteproc: qcom_q6v5_pas: Simplify with dev_err_probe()
  remoteproc: qcom_q6v5_mss: Drop redundant error printks in probe
  remoteproc: qcom_q6v5_mss: Simplify with dev_err_probe()
  remoteproc: qcom_q6v5_adsp: Simplify with dev_err_probe()
  remoteproc: qcom_q6v5_pas: disable auto boot for wpss
  remoteproc: qcom: pas: Make remoteproc name human friendly
  remoteproc: qcom: pas: enable SAR2130P audio DSP support
  remoteproc: qcom: pas: add minidump_id to SM8350 resources
  dt-bindings: remoteproc: qcom,sm8350-pas: add SAR2130P aDSP compatible
  dt-bindings: remoteproc: qcom,sm8550-pas: Add SM8750 ADSP
  remoteproc: qcom: wcss: Remove subdevs on the error path of q6v5_wcss_probe()
  remoteproc: qcom: adsp: Remove subdevs on the error path of adsp_probe()
  remoteproc: qcom: pas: Remove subdevs on the error path of adsp_probe()
  remoteproc: Switch back to struct platform_driver::remove()
  remoteproc: k3-dsp: Force cast from iomem address space
  remoteproc: k3-r5: Force cast from iomem address space
  ...
parents 727968ff 44024ebf
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@ description:
properties:
  compatible:
    enum:
      - qcom,sar2130p-adsp-pas
      - qcom,sm8350-adsp-pas
      - qcom,sm8350-cdsp-pas
      - qcom,sm8350-slpi-pas
@@ -61,6 +62,7 @@ allOf:
      properties:
        compatible:
          enum:
            - qcom,sar2130p-adsp-pas
            - qcom,sm8350-adsp-pas
            - qcom,sm8350-cdsp-pas
            - qcom,sm8350-slpi-pas
@@ -101,6 +103,7 @@ allOf:
      properties:
        compatible:
          enum:
            - qcom,sar2130p-adsp-pas
            - qcom,sm8350-adsp-pas
            - qcom,sm8350-slpi-pas
            - qcom,sm8450-adsp-pas
+34 −14
Original line number Diff line number Diff line
@@ -15,7 +15,8 @@ description:

properties:
  compatible:
    enum:
    oneOf:
      - enum:
          - qcom,sdx75-mpss-pas
          - qcom,sm8550-adsp-pas
          - qcom,sm8550-cdsp-pas
@@ -25,6 +26,9 @@ properties:
          - qcom,sm8650-mpss-pas
          - qcom,x1e80100-adsp-pas
          - qcom,x1e80100-cdsp-pas
      - items:
          - const: qcom,sm8750-adsp-pas
          - const: qcom,sm8550-adsp-pas

  reg:
    maxItems: 1
@@ -82,6 +86,20 @@ allOf:
          maxItems: 5
        memory-region:
          maxItems: 2
  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,sm8750-adsp-pas
    then:
      properties:
        interrupts:
          maxItems: 6
        interrupt-names:
          maxItems: 6
        memory-region:
          maxItems: 2
  - if:
      properties:
        compatible:
@@ -129,9 +147,11 @@ allOf:
  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,sm8550-adsp-pas
              - qcom,sm8650-adsp-pas
              - qcom,sm8750-adsp-pas
              - qcom,x1e80100-adsp-pas
    then:
      properties:
+7 −5
Original line number Diff line number Diff line
@@ -329,7 +329,8 @@ config STM32_RPROC

config TI_K3_DSP_REMOTEPROC
	tristate "TI K3 DSP remoteproc support"
	depends on ARCH_K3
	depends on ARCH_K3 || COMPILE_TEST
	depends on TI_SCI_PROTOCOL || (COMPILE_TEST && TI_SCI_PROTOCOL=n)
	depends on OMAP2PLUS_MBOX
	help
	  Say m here to support TI's C66x and C71x DSP remote processor
@@ -341,9 +342,9 @@ config TI_K3_DSP_REMOTEPROC

config TI_K3_M4_REMOTEPROC
	tristate "TI K3 M4 remoteproc support"
	depends on ARCH_OMAP2PLUS || ARCH_K3
	select MAILBOX
	select OMAP2PLUS_MBOX
	depends on ARCH_K3 || COMPILE_TEST
	depends on TI_SCI_PROTOCOL || (COMPILE_TEST && TI_SCI_PROTOCOL=n)
	depends on OMAP2PLUS_MBOX
	help
	  Say m here to support TI's M4 remote processor subsystems
	  on various TI K3 family of SoCs through the remote processor
@@ -354,7 +355,8 @@ config TI_K3_M4_REMOTEPROC

config TI_K3_R5_REMOTEPROC
	tristate "TI K3 R5 remoteproc support"
	depends on ARCH_K3
	depends on ARCH_K3 || COMPILE_TEST
	depends on TI_SCI_PROTOCOL || (COMPILE_TEST && TI_SCI_PROTOCOL=n)
	depends on OMAP2PLUS_MBOX
	help
	  Say m here to support TI's R5F remote processor subsystems
+9 −22
Original line number Diff line number Diff line
@@ -251,10 +251,8 @@ static int da8xx_rproc_probe(struct platform_device *pdev)
		return irq;

	irq_data = irq_get_irq_data(irq);
	if (!irq_data) {
		dev_err(dev, "irq_get_irq_data(%d): NULL\n", irq);
		return -EINVAL;
	}
	if (!irq_data)
		return dev_err_probe(dev, -EINVAL, "irq_get_irq_data(%d): NULL\n", irq);

	bootreg = devm_platform_ioremap_resource_byname(pdev, "host1cfg");
	if (IS_ERR(bootreg))
@@ -265,28 +263,17 @@ static int da8xx_rproc_probe(struct platform_device *pdev)
		return PTR_ERR(chipsig);

	dsp_clk = devm_clk_get(dev, NULL);
	if (IS_ERR(dsp_clk)) {
		dev_err(dev, "clk_get error: %ld\n", PTR_ERR(dsp_clk));

		return PTR_ERR(dsp_clk);
	}
	if (IS_ERR(dsp_clk))
		return dev_err_probe(dev, PTR_ERR(dsp_clk), "clk_get error\n");

	dsp_reset = devm_reset_control_get_exclusive(dev, NULL);
	if (IS_ERR(dsp_reset)) {
		if (PTR_ERR(dsp_reset) != -EPROBE_DEFER)
			dev_err(dev, "unable to get reset control: %ld\n",
				PTR_ERR(dsp_reset));

		return PTR_ERR(dsp_reset);
	}
	if (IS_ERR(dsp_reset))
		return dev_err_probe(dev, PTR_ERR(dsp_reset), "unable to get reset control\n");

	if (dev->of_node) {
		ret = of_reserved_mem_device_init(dev);
		if (ret) {
			dev_err(dev, "device does not have specific CMA pool: %d\n",
				ret);
			return ret;
		}
		if (ret)
			return dev_err_probe(dev, ret, "device does not have specific CMA pool\n");
	}

	rproc = rproc_alloc(dev, "dsp", &da8xx_rproc_ops, da8xx_fw_name,
@@ -378,7 +365,7 @@ MODULE_DEVICE_TABLE(of, davinci_rproc_of_match);

static struct platform_driver da8xx_rproc_driver = {
	.probe = da8xx_rproc_probe,
	.remove_new = da8xx_rproc_remove,
	.remove = da8xx_rproc_remove,
	.driver = {
		.name = "davinci-rproc",
		.of_match_table = of_match_ptr(davinci_rproc_of_match),
+1 −1
Original line number Diff line number Diff line
@@ -1258,7 +1258,7 @@ MODULE_DEVICE_TABLE(of, imx_dsp_rproc_of_match);

static struct platform_driver imx_dsp_rproc_driver = {
	.probe = imx_dsp_rproc_probe,
	.remove_new = imx_dsp_rproc_remove,
	.remove = imx_dsp_rproc_remove,
	.driver = {
		.name = "imx-dsp-rproc",
		.of_match_table = imx_dsp_rproc_of_match,
Loading