Commit 02676ecc authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull remoteproc updates from Bjorn Andersson:
 "The bulk of these patches relates to the moving to a void-returning
  remove callback.

  The i.MX HiFi remoteproc driver gets its pm_ops helpers updated to
  resolve build warnings about 'defined but not used' variables in
  certain configurations.

  The ST STM32 remoteproc driver is extended to allow using a SCMI reset
  controller to hold boot, and has an error message corrected.

  The Qualcomm Q6V5 PAS driver gains a missing 'static' qualifier on
  adsp_segment_dump()"

* tag 'rproc-v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux: (23 commits)
  remoteproc: qcom_q6v5_pas: staticize adsp_segment_dump()
  remoteproc: stm32: Fix error code in stm32_rproc_parse_dt()
  remoteproc: stm32: Allow hold boot management by the SCMI reset controller
  dt-bindings: remoteproc: st,stm32-rproc: Rework reset declarations
  remoteproc: imx_dsp_rproc: use modern pm_ops
  remoteproc: wkup_m3: Convert to platform remove callback returning void
  remoteproc: stm32: Convert to platform remove callback returning void
  remoteproc: st: Convert to platform remove callback returning void
  remoteproc: virtio: Convert to platform remove callback returning void
  remoteproc: rcar: Convert to platform remove callback returning void
  remoteproc: qcom_wcnss: Convert to platform remove callback returning void
  remoteproc: qcom_q6v5_wcss: Convert to platform remove callback returning void
  remoteproc: qcom_q6v5_pas: Convert to platform remove callback returning void
  remoteproc: qcom_q6v5_mss: Convert to platform remove callback returning void
  remoteproc: qcom_q6v5_adsp: Convert to platform remove callback returning void
  remoteproc: pru: Convert to platform remove callback returning void
  remoteproc: omap: Convert to platform remove callback returning void
  remoteproc: mtk_scp: Convert to platform remove callback returning void
  remoteproc: meson_mx_ao_arc: Convert to platform remove callback returning void
  remoteproc: keystone: Convert to platform remove callback returning void
  ...
parents 6afb24a0 181da4bc
Loading
Loading
Loading
Loading
+39 −5
Original line number Diff line number Diff line
@@ -25,7 +25,14 @@ properties:
    maxItems: 3

  resets:
    maxItems: 1
    minItems: 1
    maxItems: 2

  reset-names:
    items:
      - const: mcu_rst
      - const: hold_boot
    minItems: 1

  st,syscfg-holdboot:
    description: remote processor reset hold boot
@@ -37,6 +44,7 @@ properties:
          - description: The field mask of the hold boot

  st,syscfg-tz:
    deprecated: true
    description:
      Reference to the system configuration which holds the RCC trust zone mode
    $ref: /schemas/types.yaml#/definitions/phandle-array
@@ -135,22 +143,48 @@ required:
  - compatible
  - reg
  - resets

allOf:
  - if:
      properties:
        reset-names:
          not:
            contains:
              const: hold_boot
    then:
      required:
        - st,syscfg-holdboot
  - st,syscfg-tz
    else:
      properties:
        st,syscfg-holdboot: false

additionalProperties: false

examples:
  - |
    #include <dt-bindings/reset/stm32mp1-resets.h>
    m4_rproc: m4@10000000 {
    m4@10000000 {
      compatible = "st,stm32mp1-m4";
      reg = <0x10000000 0x40000>,
            <0x30000000 0x40000>,
            <0x38000000 0x10000>;
      resets = <&rcc MCU_R>;
      reset-names = "mcu_rst";
      /* Hold boot managed using system config*/
      st,syscfg-holdboot = <&rcc 0x10C 0x1>;
      st,syscfg-tz = <&rcc 0x000 0x1>;
      st,syscfg-rsc-tbl = <&tamp 0x144 0xFFFFFFFF>;
      st,syscfg-m4-state = <&tamp 0x148 0xFFFFFFFF>;
    };
  - |
    #include <dt-bindings/reset/stm32mp1-resets.h>
    m4@10000000 {
      compatible = "st,stm32mp1-m4";
      reg = <0x10000000 0x40000>,
            <0x30000000 0x40000>,
            <0x38000000 0x10000>;
      /* Hold boot managed using SCMI reset controller */
      resets = <&scmi MCU_R>, <&scmi MCU_HOLD_BOOT_R>;
      reset-names = "mcu_rst", "hold_boot";
      st,syscfg-rsc-tbl = <&tamp 0x144 0xFFFFFFFF>;
      st,syscfg-m4-state = <&tamp 0x148 0xFFFFFFFF>;
    };
+2 −4
Original line number Diff line number Diff line
@@ -357,7 +357,7 @@ static int da8xx_rproc_probe(struct platform_device *pdev)
	return ret;
}

static int da8xx_rproc_remove(struct platform_device *pdev)
static void da8xx_rproc_remove(struct platform_device *pdev)
{
	struct rproc *rproc = platform_get_drvdata(pdev);
	struct da8xx_rproc *drproc = rproc->priv;
@@ -374,8 +374,6 @@ static int da8xx_rproc_remove(struct platform_device *pdev)
	rproc_free(rproc);
	if (dev->of_node)
		of_reserved_mem_device_release(dev);

	return 0;
}

static const struct of_device_id davinci_rproc_of_match[] __maybe_unused = {
@@ -386,7 +384,7 @@ MODULE_DEVICE_TABLE(of, davinci_rproc_of_match);

static struct platform_driver da8xx_rproc_driver = {
	.probe = da8xx_rproc_probe,
	.remove = da8xx_rproc_remove,
	.remove_new = da8xx_rproc_remove,
	.driver = {
		.name = "davinci-rproc",
		.of_match_table = of_match_ptr(davinci_rproc_of_match),
+7 −10
Original line number Diff line number Diff line
@@ -1161,7 +1161,7 @@ static int imx_dsp_rproc_probe(struct platform_device *pdev)
	return ret;
}

static int imx_dsp_rproc_remove(struct platform_device *pdev)
static void imx_dsp_rproc_remove(struct platform_device *pdev)
{
	struct rproc *rproc = platform_get_drvdata(pdev);
	struct imx_dsp_rproc *priv = rproc->priv;
@@ -1170,8 +1170,6 @@ static int imx_dsp_rproc_remove(struct platform_device *pdev)
	rproc_del(rproc);
	imx_dsp_detach_pm_domains(priv);
	rproc_free(rproc);

	return 0;
}

/* pm runtime functions */
@@ -1243,7 +1241,7 @@ static void imx_dsp_load_firmware(const struct firmware *fw, void *context)
	release_firmware(fw);
}

static __maybe_unused int imx_dsp_suspend(struct device *dev)
static int imx_dsp_suspend(struct device *dev)
{
	struct rproc *rproc = dev_get_drvdata(dev);
	struct imx_dsp_rproc *priv = rproc->priv;
@@ -1278,7 +1276,7 @@ static __maybe_unused int imx_dsp_suspend(struct device *dev)
	return pm_runtime_force_suspend(dev);
}

static __maybe_unused int imx_dsp_resume(struct device *dev)
static int imx_dsp_resume(struct device *dev)
{
	struct rproc *rproc = dev_get_drvdata(dev);
	int ret = 0;
@@ -1312,9 +1310,8 @@ static __maybe_unused int imx_dsp_resume(struct device *dev)
}

static const struct dev_pm_ops imx_dsp_rproc_pm_ops = {
	SET_SYSTEM_SLEEP_PM_OPS(imx_dsp_suspend, imx_dsp_resume)
	SET_RUNTIME_PM_OPS(imx_dsp_runtime_suspend,
			   imx_dsp_runtime_resume, NULL)
	SYSTEM_SLEEP_PM_OPS(imx_dsp_suspend, imx_dsp_resume)
	RUNTIME_PM_OPS(imx_dsp_runtime_suspend, imx_dsp_runtime_resume, NULL)
};

static const struct of_device_id imx_dsp_rproc_of_match[] = {
@@ -1328,11 +1325,11 @@ MODULE_DEVICE_TABLE(of, imx_dsp_rproc_of_match);

static struct platform_driver imx_dsp_rproc_driver = {
	.probe = imx_dsp_rproc_probe,
	.remove = imx_dsp_rproc_remove,
	.remove_new = imx_dsp_rproc_remove,
	.driver = {
		.name = "imx-dsp-rproc",
		.of_match_table = imx_dsp_rproc_of_match,
		.pm = &imx_dsp_rproc_pm_ops,
		.pm = pm_ptr(&imx_dsp_rproc_pm_ops),
	},
};
module_platform_driver(imx_dsp_rproc_driver);
+2 −4
Original line number Diff line number Diff line
@@ -1112,7 +1112,7 @@ static int imx_rproc_probe(struct platform_device *pdev)
	return ret;
}

static int imx_rproc_remove(struct platform_device *pdev)
static void imx_rproc_remove(struct platform_device *pdev)
{
	struct rproc *rproc = platform_get_drvdata(pdev);
	struct imx_rproc *priv = rproc->priv;
@@ -1123,8 +1123,6 @@ static int imx_rproc_remove(struct platform_device *pdev)
	imx_rproc_free_mbox(rproc);
	destroy_workqueue(priv->workqueue);
	rproc_free(rproc);

	return 0;
}

static const struct of_device_id imx_rproc_of_match[] = {
@@ -1145,7 +1143,7 @@ MODULE_DEVICE_TABLE(of, imx_rproc_of_match);

static struct platform_driver imx_rproc_driver = {
	.probe = imx_rproc_probe,
	.remove = imx_rproc_remove,
	.remove_new = imx_rproc_remove,
	.driver = {
		.name = "imx-rproc",
		.of_match_table = imx_rproc_of_match,
+2 −4
Original line number Diff line number Diff line
@@ -476,7 +476,7 @@ static int keystone_rproc_probe(struct platform_device *pdev)
	return ret;
}

static int keystone_rproc_remove(struct platform_device *pdev)
static void keystone_rproc_remove(struct platform_device *pdev)
{
	struct keystone_rproc *ksproc = platform_get_drvdata(pdev);

@@ -486,8 +486,6 @@ static int keystone_rproc_remove(struct platform_device *pdev)
	pm_runtime_disable(&pdev->dev);
	rproc_free(ksproc->rproc);
	of_reserved_mem_device_release(&pdev->dev);

	return 0;
}

static const struct of_device_id keystone_rproc_of_match[] = {
@@ -501,7 +499,7 @@ MODULE_DEVICE_TABLE(of, keystone_rproc_of_match);

static struct platform_driver keystone_rproc_driver = {
	.probe	= keystone_rproc_probe,
	.remove	= keystone_rproc_remove,
	.remove_new = keystone_rproc_remove,
	.driver	= {
		.name = "keystone-rproc",
		.of_match_table = keystone_rproc_of_match,
Loading