]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
Merge tag 'rproc-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc...
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 21 Mar 2024 17:37:39 +0000 (10:37 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 21 Mar 2024 17:37:39 +0000 (10:37 -0700)
Pull remoteproc updates from Bjorn Andersson:
 "Qualcomm SM8650 audio, compute and modem remoteproc are added.
  Qualcomm X1 Elite audio and compute remoteprocs are added, after
  support for shutting down the bootloader-loaded firmware loaded into
  the audio DSP..

  A dozen drivers in the subsystem are transitioned to use devres
  helpers for remoteproc and memory allocations - this makes it possible
  to acquire in-kernel handle to individual remoteproc instances in a
  cluster.

  The release of DMA memory for remoteproc virtio is corrected to ensure
  that restarting due to a watchdog bite doesn't attempt to allocate the
  memory again without first freeing it.

  Last, but not least, a couple of DeviceTree binding cleanups"

* tag 'rproc-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux: (30 commits)
  remoteproc: qcom_q6v5_pas: Unload lite firmware on ADSP
  remoteproc: qcom_q6v5_pas: Add support for X1E80100 ADSP/CDSP
  dt-bindings: remoteproc: qcom,sm8550-pas: document the X1E80100 aDSP & cDSP
  remoteproc: qcom_wcnss: Use devm_rproc_alloc() helper
  remoteproc: qcom_q6v5_wcss: Use devm_rproc_alloc() helper
  remoteproc: qcom_q6v5_pas: Use devm_rproc_alloc() helper
  remoteproc: qcom_q6v5_mss: Use devm_rproc_alloc() helper
  remoteproc: qcom_q6v5_adsp: Use devm_rproc_alloc() helper
  dt-bindings: remoteproc: do not override firmware-name $ref
  dt-bindings: remoteproc: qcom,glink-rpm-edge: drop redundant type from label
  remoteproc: qcom: pas: correct data indentation
  remoteproc: Make rproc_get_by_phandle() work for clusters
  remoteproc: qcom: pas: Add SM8650 remoteproc support
  remoteproc: qcom: pas: make region assign more generic
  dt-bindings: remoteproc: qcom,sm8550-pas: document the SM8650 PAS
  remoteproc: k3-dsp: Use devm_rproc_add() helper
  remoteproc: k3-dsp: Use devm_ioremap_wc() helper
  remoteproc: k3-dsp: Add devm action to release tsp
  remoteproc: k3-dsp: Use devm_kzalloc() helper
  remoteproc: k3-dsp: Use devm_ti_sci_get_by_phandle() helper
  ...

1  2 
drivers/remoteproc/imx_dsp_rproc.c
drivers/remoteproc/imx_rproc.c
drivers/remoteproc/qcom_q6v5_adsp.c

index d73727a5828a4fa37d00b5b0f70cf4c2b186cc8b,56a799cb8b363adbcbc435e617434f9f1df4859e..087506e2150805d268ba669e307302828f0a331d
@@@ -1090,9 -1154,7 +1090,7 @@@ static int imx_dsp_rproc_probe(struct p
        return 0;
  
  err_detach_domains:
 -      imx_dsp_detach_pm_domains(priv);
 +      dev_pm_domain_detach_list(priv->pd_list);
- err_put_rproc:
-       rproc_free(rproc);
  
        return ret;
  }
@@@ -1104,8 -1166,7 +1102,7 @@@ static void imx_dsp_rproc_remove(struc
  
        pm_runtime_disable(&pdev->dev);
        rproc_del(rproc);
 -      imx_dsp_detach_pm_domains(priv);
 +      dev_pm_domain_detach_list(priv->pd_list);
-       rproc_free(rproc);
  }
  
  /* pm runtime functions */
Simple merge
index 93f9a1537ec60406ff826715453c02436ca2f65b,34ac996a93b20b025dc387f07ae75141d9c6dd80..1d24c9b656a8299cd46e382a541df60a329cff11
@@@ -704,13 -713,15 +704,13 @@@ static int adsp_probe(struct platform_d
  
        ret = adsp_init_clock(adsp, desc->clk_ids);
        if (ret)
-               goto free_rproc;
+               return ret;
  
 -      ret = qcom_rproc_pds_attach(adsp->dev, adsp,
 -                                  desc->proxy_pd_names);
 +      ret = qcom_rproc_pds_attach(adsp, desc->pd_names, desc->num_pds);
        if (ret < 0) {
                dev_err(&pdev->dev, "Failed to attach proxy power domains\n");
-               goto free_rproc;
+               return ret;
        }
 -      adsp->proxy_pd_count = ret;
  
        ret = adsp_init_reset(adsp);
        if (ret)
        return 0;
  
  disable_pm:
 -      qcom_rproc_pds_detach(adsp, adsp->proxy_pds, adsp->proxy_pd_count);
 +      qcom_rproc_pds_detach(adsp);
  
- free_rproc:
-       rproc_free(rproc);
        return ret;
  }
  
@@@ -760,8 -768,7 +757,7 @@@ static void adsp_remove(struct platform
        qcom_remove_glink_subdev(adsp->rproc, &adsp->glink_subdev);
        qcom_remove_sysmon_subdev(adsp->sysmon);
        qcom_remove_ssr_subdev(adsp->rproc, &adsp->ssr_subdev);
 -      qcom_rproc_pds_detach(adsp, adsp->proxy_pds, adsp->proxy_pd_count);
 +      qcom_rproc_pds_detach(adsp);
-       rproc_free(adsp->rproc);
  }
  
  static const struct adsp_pil_data adsp_resource_init = {