Message ID | 20240802152109.137243-3-afd@ti.com (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | TI K3 M4F support on AM62 and AM64 SoCs | expand |
Am 02.08.24 um 17:21 schrieb Andrew Davis: > Building the TSP structure is common for users of the TI-SCI processor > control interface. Factor out this function and put it with the rest > of the TI-SCI processor control functions. > > Signed-off-by: Andrew Davis <afd@ti.com> Tested-by: Wadim Egorov <w.egorov@phytec.de> > --- > drivers/remoteproc/ti_k3_dsp_remoteproc.c | 28 +---------------------- > drivers/remoteproc/ti_k3_r5_remoteproc.c | 28 +---------------------- > drivers/remoteproc/ti_sci_proc.h | 26 +++++++++++++++++++++ > 3 files changed, 28 insertions(+), 54 deletions(-) > > diff --git a/drivers/remoteproc/ti_k3_dsp_remoteproc.c b/drivers/remoteproc/ti_k3_dsp_remoteproc.c > index a22d41689a7d2..1585769092924 100644 > --- a/drivers/remoteproc/ti_k3_dsp_remoteproc.c > +++ b/drivers/remoteproc/ti_k3_dsp_remoteproc.c > @@ -636,32 +636,6 @@ static void k3_dsp_release_tsp(void *data) > ti_sci_proc_release(tsp); > } > > -static > -struct ti_sci_proc *k3_dsp_rproc_of_get_tsp(struct device *dev, > - const struct ti_sci_handle *sci) > -{ > - struct ti_sci_proc *tsp; > - u32 temp[2]; > - int ret; > - > - ret = of_property_read_u32_array(dev->of_node, "ti,sci-proc-ids", > - temp, 2); > - if (ret < 0) > - return ERR_PTR(ret); > - > - tsp = devm_kzalloc(dev, sizeof(*tsp), GFP_KERNEL); > - if (!tsp) > - return ERR_PTR(-ENOMEM); > - > - tsp->dev = dev; > - tsp->sci = sci; > - tsp->ops = &sci->ops.proc_ops; > - tsp->proc_id = temp[0]; > - tsp->host_id = temp[1]; > - > - return tsp; > -} > - > static int k3_dsp_rproc_probe(struct platform_device *pdev) > { > struct device *dev = &pdev->dev; > @@ -711,7 +685,7 @@ static int k3_dsp_rproc_probe(struct platform_device *pdev) > return dev_err_probe(dev, PTR_ERR(kproc->reset), > "failed to get reset\n"); > > - kproc->tsp = k3_dsp_rproc_of_get_tsp(dev, kproc->ti_sci); > + kproc->tsp = ti_sci_proc_of_get_tsp(dev, kproc->ti_sci); > if (IS_ERR(kproc->tsp)) > return dev_err_probe(dev, PTR_ERR(kproc->tsp), > "failed to construct ti-sci proc control\n"); > diff --git a/drivers/remoteproc/ti_k3_r5_remoteproc.c b/drivers/remoteproc/ti_k3_r5_remoteproc.c > index 39a47540c5900..dd6294ab81e2e 100644 > --- a/drivers/remoteproc/ti_k3_r5_remoteproc.c > +++ b/drivers/remoteproc/ti_k3_r5_remoteproc.c > @@ -1533,32 +1533,6 @@ static int k3_r5_core_of_get_sram_memories(struct platform_device *pdev, > return 0; > } > > -static > -struct ti_sci_proc *k3_r5_core_of_get_tsp(struct device *dev, > - const struct ti_sci_handle *sci) > -{ > - struct ti_sci_proc *tsp; > - u32 temp[2]; > - int ret; > - > - ret = of_property_read_u32_array(dev_of_node(dev), "ti,sci-proc-ids", > - temp, 2); > - if (ret < 0) > - return ERR_PTR(ret); > - > - tsp = devm_kzalloc(dev, sizeof(*tsp), GFP_KERNEL); > - if (!tsp) > - return ERR_PTR(-ENOMEM); > - > - tsp->dev = dev; > - tsp->sci = sci; > - tsp->ops = &sci->ops.proc_ops; > - tsp->proc_id = temp[0]; > - tsp->host_id = temp[1]; > - > - return tsp; > -} > - > static int k3_r5_core_of_init(struct platform_device *pdev) > { > struct device *dev = &pdev->dev; > @@ -1633,7 +1607,7 @@ static int k3_r5_core_of_init(struct platform_device *pdev) > goto err; > } > > - core->tsp = k3_r5_core_of_get_tsp(dev, core->ti_sci); > + core->tsp = ti_sci_proc_of_get_tsp(dev, core->ti_sci); > if (IS_ERR(core->tsp)) { > ret = PTR_ERR(core->tsp); > dev_err(dev, "failed to construct ti-sci proc control, ret = %d\n", > diff --git a/drivers/remoteproc/ti_sci_proc.h b/drivers/remoteproc/ti_sci_proc.h > index 778558abcdcc5..f3911ce75252e 100644 > --- a/drivers/remoteproc/ti_sci_proc.h > +++ b/drivers/remoteproc/ti_sci_proc.h > @@ -28,6 +28,32 @@ struct ti_sci_proc { > u8 host_id; > }; > > +static inline > +struct ti_sci_proc *ti_sci_proc_of_get_tsp(struct device *dev, > + const struct ti_sci_handle *sci) > +{ > + struct ti_sci_proc *tsp; > + u32 temp[2]; > + int ret; > + > + ret = of_property_read_u32_array(dev_of_node(dev), "ti,sci-proc-ids", > + temp, 2); > + if (ret < 0) > + return ERR_PTR(ret); > + > + tsp = devm_kzalloc(dev, sizeof(*tsp), GFP_KERNEL); > + if (!tsp) > + return ERR_PTR(-ENOMEM); > + > + tsp->dev = dev; > + tsp->sci = sci; > + tsp->ops = &sci->ops.proc_ops; > + tsp->proc_id = temp[0]; > + tsp->host_id = temp[1]; > + > + return tsp; > +} > + > static inline int ti_sci_proc_request(struct ti_sci_proc *tsp) > { > int ret;
diff --git a/drivers/remoteproc/ti_k3_dsp_remoteproc.c b/drivers/remoteproc/ti_k3_dsp_remoteproc.c index a22d41689a7d2..1585769092924 100644 --- a/drivers/remoteproc/ti_k3_dsp_remoteproc.c +++ b/drivers/remoteproc/ti_k3_dsp_remoteproc.c @@ -636,32 +636,6 @@ static void k3_dsp_release_tsp(void *data) ti_sci_proc_release(tsp); } -static -struct ti_sci_proc *k3_dsp_rproc_of_get_tsp(struct device *dev, - const struct ti_sci_handle *sci) -{ - struct ti_sci_proc *tsp; - u32 temp[2]; - int ret; - - ret = of_property_read_u32_array(dev->of_node, "ti,sci-proc-ids", - temp, 2); - if (ret < 0) - return ERR_PTR(ret); - - tsp = devm_kzalloc(dev, sizeof(*tsp), GFP_KERNEL); - if (!tsp) - return ERR_PTR(-ENOMEM); - - tsp->dev = dev; - tsp->sci = sci; - tsp->ops = &sci->ops.proc_ops; - tsp->proc_id = temp[0]; - tsp->host_id = temp[1]; - - return tsp; -} - static int k3_dsp_rproc_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; @@ -711,7 +685,7 @@ static int k3_dsp_rproc_probe(struct platform_device *pdev) return dev_err_probe(dev, PTR_ERR(kproc->reset), "failed to get reset\n"); - kproc->tsp = k3_dsp_rproc_of_get_tsp(dev, kproc->ti_sci); + kproc->tsp = ti_sci_proc_of_get_tsp(dev, kproc->ti_sci); if (IS_ERR(kproc->tsp)) return dev_err_probe(dev, PTR_ERR(kproc->tsp), "failed to construct ti-sci proc control\n"); diff --git a/drivers/remoteproc/ti_k3_r5_remoteproc.c b/drivers/remoteproc/ti_k3_r5_remoteproc.c index 39a47540c5900..dd6294ab81e2e 100644 --- a/drivers/remoteproc/ti_k3_r5_remoteproc.c +++ b/drivers/remoteproc/ti_k3_r5_remoteproc.c @@ -1533,32 +1533,6 @@ static int k3_r5_core_of_get_sram_memories(struct platform_device *pdev, return 0; } -static -struct ti_sci_proc *k3_r5_core_of_get_tsp(struct device *dev, - const struct ti_sci_handle *sci) -{ - struct ti_sci_proc *tsp; - u32 temp[2]; - int ret; - - ret = of_property_read_u32_array(dev_of_node(dev), "ti,sci-proc-ids", - temp, 2); - if (ret < 0) - return ERR_PTR(ret); - - tsp = devm_kzalloc(dev, sizeof(*tsp), GFP_KERNEL); - if (!tsp) - return ERR_PTR(-ENOMEM); - - tsp->dev = dev; - tsp->sci = sci; - tsp->ops = &sci->ops.proc_ops; - tsp->proc_id = temp[0]; - tsp->host_id = temp[1]; - - return tsp; -} - static int k3_r5_core_of_init(struct platform_device *pdev) { struct device *dev = &pdev->dev; @@ -1633,7 +1607,7 @@ static int k3_r5_core_of_init(struct platform_device *pdev) goto err; } - core->tsp = k3_r5_core_of_get_tsp(dev, core->ti_sci); + core->tsp = ti_sci_proc_of_get_tsp(dev, core->ti_sci); if (IS_ERR(core->tsp)) { ret = PTR_ERR(core->tsp); dev_err(dev, "failed to construct ti-sci proc control, ret = %d\n", diff --git a/drivers/remoteproc/ti_sci_proc.h b/drivers/remoteproc/ti_sci_proc.h index 778558abcdcc5..f3911ce75252e 100644 --- a/drivers/remoteproc/ti_sci_proc.h +++ b/drivers/remoteproc/ti_sci_proc.h @@ -28,6 +28,32 @@ struct ti_sci_proc { u8 host_id; }; +static inline +struct ti_sci_proc *ti_sci_proc_of_get_tsp(struct device *dev, + const struct ti_sci_handle *sci) +{ + struct ti_sci_proc *tsp; + u32 temp[2]; + int ret; + + ret = of_property_read_u32_array(dev_of_node(dev), "ti,sci-proc-ids", + temp, 2); + if (ret < 0) + return ERR_PTR(ret); + + tsp = devm_kzalloc(dev, sizeof(*tsp), GFP_KERNEL); + if (!tsp) + return ERR_PTR(-ENOMEM); + + tsp->dev = dev; + tsp->sci = sci; + tsp->ops = &sci->ops.proc_ops; + tsp->proc_id = temp[0]; + tsp->host_id = temp[1]; + + return tsp; +} + static inline int ti_sci_proc_request(struct ti_sci_proc *tsp) { int ret;
Building the TSP structure is common for users of the TI-SCI processor control interface. Factor out this function and put it with the rest of the TI-SCI processor control functions. Signed-off-by: Andrew Davis <afd@ti.com> --- drivers/remoteproc/ti_k3_dsp_remoteproc.c | 28 +---------------------- drivers/remoteproc/ti_k3_r5_remoteproc.c | 28 +---------------------- drivers/remoteproc/ti_sci_proc.h | 26 +++++++++++++++++++++ 3 files changed, 28 insertions(+), 54 deletions(-)