lkml.org 
[lkml]   [2011]   [Feb]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 3/4] ARM: Xilinx: Adding timer support to the platform
    On Mon, Feb 07, 2011 at 07:16:01AM -0700, John Linn wrote:
    > > -----Original Message-----
    > > From: Jamie Iles [mailto:jamie@jamieiles.com]
    > > Sent: Saturday, February 05, 2011 6:04 PM
    > > To: John Linn
    > > Cc: linux-arm-kernel@lists.infradead.org;
    > linux-kernel@vger.kernel.org; linux@arm.linux.org.uk;
    > > catalin.marinas@arm.com; glikely@secretlab.ca; Kiran Sutariya
    > > Subject: Re: [PATCH 3/4] ARM: Xilinx: Adding timer support to the
    > platform
    > >
    > > Hi John,
    > >
    > > A couple more nitpicks.
    > >
    > > Jamie
    > >
    > > On Sat, Feb 05, 2011 at 09:17:16AM -0700, John Linn wrote:
    > > > +static irqreturn_t xttcpss_clock_event_interrupt(int irq, void
    > *dev_id)
    > > > +{
    > > > + struct clock_event_device *evt = &xttcpss_clockevent;
    > > > + struct xttcpss_timer *timer = dev_id;
    > > > + u32 ctrl_reg;
    > > > +
    > > > + /* Acknowledge the interrupt and call event handler */
    > > > + xttcpss_write(timer->base_addr + XTTCPSS_ISR_OFFSET,
    > > > + xttcpss_read(timer->base_addr + XTTCPSS_ISR_OFFSET));
    > > > +
    > > > + if (timer->mode == CLOCK_EVT_MODE_ONESHOT) {
    > > > +
    > > > + /* Disable the counter as it would keep running. */
    > > > + ctrl_reg = xttcpss_read(timer->base_addr +
    > > > + XTTCPSS_CNT_CNTRL_OFFSET);
    > > > + ctrl_reg |= ~(XTTCPSS_CNT_CNTRL_ENABLE_MASK);
    > >
    > > The clock events framework should reprogram the next event so you
    > don't
    > > actually need to disable the timer here. Once the event handler has
    > > been called the timer will be reenabled with a new period, and as
    > we're
    > > running with interrupts disabled here we don't need to stop the timer.
    > >
    >
    > What about if there's not another event to be started?

    Then the clockevents code can set the mode to CLOCK_EVT_MODE_SHUTDOWN
    and this should disable the timer. For NOHZ, AFAICT the
    clockevents/tick code will make sure that the next tick always falls
    within your max_delta_ns.

    Jamie


    \
     
     \ /
      Last update: 2011-02-07 16:01    [W:0.025 / U:0.464 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site