Re: [PATCH v3 1/3] thermal: sun8i: add thermal driver for h6

From: Frank Lee
Date: Thu Jun 13 2019 - 11:40:47 EST


On Thu, Jun 13, 2019 at 9:26 PM Maxime Ripard <maxime.ripard@xxxxxxxxxxx> wrote:
>
> On Fri, Jun 07, 2019 at 09:34:44PM +0800, Frank Lee wrote:
> > On Mon, May 27, 2019 at 8:27 PM Maxime Ripard <maxime.ripard@xxxxxxxxxxx> wrote:
> > > > + ret = devm_request_threaded_irq(dev, irq, NULL,
> > > > + tmdev->chip->irq_thread,
> > > > + IRQF_ONESHOT, "ths", tmdev);
> > > > + if (ret)
> > > > + return ret;
> > >
> > > Is there any particular reason to use a threaded interrupt?
> >
> > Just to improve real-time.
>
> What do you mean by real-time here? If anything, that will increase
> the latency of the interrupts here.
>
> And in preempt-rt, regular top-half interrupts will be forced into a
> threaded interrupt anyway.
>
> > > > +static int sun8i_ths_remove(struct platform_device *pdev)
> > > > +{
> > > > + struct ths_device *tmdev = platform_get_drvdata(pdev);
> > > > +
> > > > + clk_disable_unprepare(tmdev->bus_clk);
> > >
> > > I know that we discussed that already, but I'm not sure why you switch
> > > back to a regular call to regmap_init_mmio, while regmap_init_mmio_clk
> > > will take care of enabling and disabling the bus clock for you?
> >
> > It seems that regmap_init_mmio_clk just get clk and prepare clk
> > but no enable.
>
> At init time, yes. But it will enable it only when you access the
> registers, which is what you want anyway.

But after accessing the register, it turns the clock off, which
affects the ad conversion and the occurrence of the interrupt.

In addition, when resuming from suspend, we need to enable
the clock, so I think it is necessary to have a clock pointer.

Yangtao

>
> Maxime
>
> --
> Maxime Ripard, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com