Messages in this thread | | | Date | Tue, 31 Jan 2023 14:30:44 +0100 | Subject | Re: [PATCH v4 11/14] soc: mediatek: mtk-svs: delete superfluous platform data entries | From | Matthias Brugger <> |
| |
On 11/01/2023 08:45, Roger Lu wrote: > From: Matthias Brugger <matthias.bgg@gmail.com> > > The platform name and efuse parsing function pointer are only used while > probing the device. Use them from the svs_platform_data struct instead. > > Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com> > Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> > Signed-off-by: Roger Lu <roger.lu@mediatek.com>
Applied, thanks!
> --- > drivers/soc/mediatek/mtk-svs.c | 22 ++++++++++++---------- > 1 file changed, 12 insertions(+), 10 deletions(-) > > diff --git a/drivers/soc/mediatek/mtk-svs.c b/drivers/soc/mediatek/mtk-svs.c > index 9d9210c22289..bd23d1111d7b 100644 > --- a/drivers/soc/mediatek/mtk-svs.c > +++ b/drivers/soc/mediatek/mtk-svs.c > @@ -313,14 +313,12 @@ static const u32 svs_regs_v2[] = { > > /** > * struct svs_platform - svs platform control > - * @name: svs platform name > * @base: svs platform register base > * @dev: svs platform device > * @main_clk: main clock for svs bank > * @pbank: svs bank pointer needing to be protected by spin_lock section > * @banks: svs banks that svs platform supports > * @rst: svs platform reset control > - * @efuse_parsing: svs platform efuse parsing function pointer > * @efuse_max: total number of svs efuse > * @tefuse_max: total number of thermal efuse > * @regs: svs platform registers map > @@ -330,14 +328,12 @@ static const u32 svs_regs_v2[] = { > * @clk_cnt: clock count shows the clk enable/disable times by svs driver > */ > struct svs_platform { > - char *name; > void __iomem *base; > struct device *dev; > struct clk *main_clk; > struct svs_bank *pbank; > struct svs_bank *banks; > struct reset_control *rst; > - bool (*efuse_parsing)(struct svs_platform *svsp); > size_t efuse_max; > size_t tefuse_max; > const u32 *regs; > @@ -2066,7 +2062,7 @@ static bool svs_is_efuse_data_correct(struct svs_platform *svsp) > svsp->efuse_max /= sizeof(u32); > nvmem_cell_put(cell); > > - return svsp->efuse_parsing(svsp); > + return true; > } > > static struct device *svs_get_subsys_device(struct svs_platform *svsp, > @@ -2400,9 +2396,7 @@ static int svs_probe(struct platform_device *pdev) > return -ENOMEM; > > svsp->dev = &pdev->dev; > - svsp->name = svsp_data->name; > svsp->banks = svsp_data->banks; > - svsp->efuse_parsing = svsp_data->efuse_parsing; > svsp->regs = svsp_data->regs; > svsp->bank_max = svsp_data->bank_max; > > @@ -2413,6 +2407,12 @@ static int svs_probe(struct platform_device *pdev) > if (!svs_is_efuse_data_correct(svsp)) { > dev_notice(svsp->dev, "efuse data isn't correct\n"); > ret = -EPERM; > + goto svs_probe_free_efuse; > + } > + > + if (!svsp_data->efuse_parsing(svsp)) { > + dev_err(svsp->dev, "efuse data parsing failed\n"); > + ret = -EPERM; > goto svs_probe_free_resource; > } > > @@ -2448,7 +2448,7 @@ static int svs_probe(struct platform_device *pdev) > } > > ret = devm_request_threaded_irq(svsp->dev, svsp_irq, NULL, svs_isr, > - IRQF_ONESHOT, svsp->name, svsp); > + IRQF_ONESHOT, svsp_data->name, svsp); > if (ret) { > dev_err(svsp->dev, "register irq(%d) failed: %d\n", > svsp_irq, ret); > @@ -2478,11 +2478,13 @@ static int svs_probe(struct platform_device *pdev) > svs_clk_disable(svsp); > > svs_probe_free_resource: > - if (!IS_ERR_OR_NULL(svsp->efuse)) > - kfree(svsp->efuse); > if (!IS_ERR_OR_NULL(svsp->tefuse)) > kfree(svsp->tefuse); > > +svs_probe_free_efuse: > + if (!IS_ERR_OR_NULL(svsp->efuse)) > + kfree(svsp->efuse); > + > return ret; > } >
| |