lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Thu, 28 Nov 2019 23:16:05 +0800
From:   Frank Lee <tiny.windzz@...il.com>
To:     Vasily Khoruzhick <anarsoul@...il.com>,
        Frank Lee <tiny.windzz@...il.com>,
        Mark Rutland <mark.rutland@....com>,
        devicetree <devicetree@...r.kernel.org>,
        Amit Kucheria <amit.kucheria@...durent.com>,
        Linux PM <linux-pm@...r.kernel.org>,
        Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
        Daniel Lezcano <daniel.lezcano@...aro.org>,
        Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
        Maxime Ripard <mripard@...nel.org>,
        Eduardo Valentin <edubezval@...il.com>,
        Chen-Yu Tsai <wens@...e.org>, Rob Herring <robh+dt@...nel.org>,
        Mauro Carvalho Chehab <mchehab+samsung@...nel.org>,
        Zhang Rui <rui.zhang@...el.com>,
        "David S. Miller" <davem@...emloft.net>,
        Linux ARM <linux-arm-kernel@...ts.infradead.org>
Subject: Re: [PATCH v6 1/7] thermal: sun8i: add thermal driver for H6/H5/H3/A64/A83T/R40

On Thu, Nov 28, 2019 at 6:24 AM Ondřej Jirman <megous@...ous.com> wrote:
>
> On Wed, Nov 27, 2019 at 11:48:32AM -0800, Vasily Khoruzhick wrote:
> > On Wed, Nov 27, 2019 at 11:44 AM Frank Lee <tiny.windzz@...il.com> wrote:
> > >
> > > Hello Vasily,
> > >
> > > Thank you very much for your work on this.
> > > This looks good to me.
> >
> > Thanks!
> >
> > > By the way, I would like to ask comments about adding the following code.
> >
> > Can we add it as follow up patch? I don't think that I have a device
> > with working suspend to test it and I'm hesitant to add any code that
> > I can't test.
>
> I have, but it doesn't use any of the clocks and resets, so it wouldn't
> test this fully, and basicaly doesn't need re-calibration at all, probably.
>
> So that may be one feedback. On a83t, I'd made these callbacks a no-op.

This is just that the mainline code does not yet have the S2RAM code
implementation of these SOCs.
Each module has its own suspend function and resume function as part
of the system suspend function.
When the system is in S2RAM, the entire SOC will be completely powered
off, and each module
needs to save and restore its own state.

Yangtao

>
> regards,
>         o.
>
> > >
> > > diff --git a/drivers/thermal/sun8i_thermal.c b/drivers/thermal/sun8i_thermal.c
> > > index c0ed60782b11..579dde5e0701 100644
> > > --- a/drivers/thermal/sun8i_thermal.c
> > > +++ b/drivers/thermal/sun8i_thermal.c
> > > @@ -629,11 +629,63 @@ static const struct of_device_id of_ths_match[] = {
> > >  };
> > >  MODULE_DEVICE_TABLE(of, of_ths_match);
> > >
> > > +static int __maybe_unused sun8i_thermal_suspend(struct device *dev)
> > > +{
> > > + struct ths_device *tmdev; = dev_get_drvdata(dev);
> > > +
> > > + clk_disable(tmdev->mod_clk);
> > > + clk_disable(tmdev->bus_clk);
> > > +
> > > + reset_control_assert(tmdev->reset);
> > > +
> > > + return 0;
> > > +}
> > > +
> > > +static int __maybe_unused sun8i_thermal_resume(struct device *dev)
> > > +{
> > > + struct ths_device *tmdev; = dev_get_drvdata(dev);
> > > + int error;
> > > +
> > > + error = reset_control_deassert(tmdev->reset);
> > > + if (error)
> > > + return error;
> > > +
> > > + error = clk_enable(tmdev->bus_clk);
> > > + if (error)
> > > + goto assert_reset;
> > > +
> > > + clk_set_rate(tmdev->mod_clk, 24000000);
> > > + error = clk_enable(tmdev->mod_clk);
> > > + if (error)
> > > + goto bus_disable;
> > > +
> > > + sun8i_ths_calibrate(tmdev);
> > > +
> > > + ret = tmdev->chip->init(tmdev);
> > > + if (ret)
> > > + goto mod_disable;
> > > +
> > > + return 0;
> > > +
> > > +mod_disable:
> > > + clk_disable(tmdev->mod_clk);
> > > +bus_disable:
> > > + clk_disable(tmdev->bus_clk);
> > > +assert_reset:
> > > + reset_control_assert(tmdev->reset);
> > > +
> > > + return 0;
> > > +}
> > > +
> > > +static SIMPLE_DEV_PM_OPS(sun8i_thermal_pm_ops,
> > > + sun8i_thermal_suspend, sun8i_thermal_resume);
> > > +
> > >  static struct platform_driver ths_driver = {
> > >   .probe = sun8i_ths_probe,
> > >   .remove = sun8i_ths_remove,
> > >   .driver = {
> > >   .name = "sun8i-thermal",
> > > + .pm = &sun8i_thermal_pm_ops,
> > >   .of_match_table = of_ths_match,
> > >   },
> > >  };
> > >
> > > Yangtao
> >
> > _______________________________________________
> > linux-arm-kernel mailing list
> > linux-arm-kernel@...ts.infradead.org
> > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ