Re: [PATCH 07/31] serial: qcom_geni_serial: convert to use devm_pm_opp_* API

From: Viresh Kumar
Date: Mon Jan 04 2021 - 02:29:31 EST


Dropped lots of people from cc list

On 04-01-21, 12:49, Viresh Kumar wrote:
> On 01-01-21, 16:54, Yangtao Li wrote:
> > Use devm_pm_opp_* API to simplify code, and we don't need
> > to make opp_table glabal.
> >
> > Let's remove opp_table from geni_se later.
> >
> > Signed-off-by: Yangtao Li <tiny.windzz@xxxxxxxxx>
> > ---
> > drivers/tty/serial/qcom_geni_serial.c | 23 +++++++++--------------
> > 1 file changed, 9 insertions(+), 14 deletions(-)
> >
> > diff --git a/drivers/tty/serial/qcom_geni_serial.c b/drivers/tty/serial/qcom_geni_serial.c
> > index 5aada7ebae35..36a92df8ec11 100644
> > --- a/drivers/tty/serial/qcom_geni_serial.c
> > +++ b/drivers/tty/serial/qcom_geni_serial.c
> > @@ -1352,6 +1352,7 @@ static int qcom_geni_serial_probe(struct platform_device *pdev)
> > int irq;
> > bool console = false;
> > struct uart_driver *drv;
> > + struct opp_table *opp_table;
> >
> > if (of_device_is_compatible(pdev->dev.of_node, "qcom,geni-debug-uart"))
> > console = true;
> > @@ -1433,13 +1434,13 @@ static int qcom_geni_serial_probe(struct platform_device *pdev)
> > if (of_property_read_bool(pdev->dev.of_node, "cts-rts-swap"))
> > port->cts_rts_swap = true;
> >
> > - port->se.opp_table = dev_pm_opp_set_clkname(&pdev->dev, "se");
> > - if (IS_ERR(port->se.opp_table))
> > - return PTR_ERR(port->se.opp_table);
> > + opp_table = devm_pm_opp_set_clkname(&pdev->dev, "se");
> > + if (IS_ERR(opp_table))
> > + return PTR_ERR(opp_table);
> > /* OPP table is optional */
> > - ret = dev_pm_opp_of_add_table(&pdev->dev);
> > + ret = devm_pm_opp_of_add_table(&pdev->dev);
> > if (ret) {
> > - dev_pm_opp_put_clkname(port->se.opp_table);
> > + devm_pm_opp_put_clkname(&pdev->dev, opp_table);
>
> We shouldn't be doing this here, i.e. put_clkname. Even when the OPP
> table isn't present, this driver calls dev_pm_opp_set_rate() which
> behaves like clk_set_rate() in this case and so the clk name is still
> required by the OPP core.

The same problem is there with multiple patches, fix them all please.

--
viresh