Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755343AbbGPMm3 (ORCPT ); Thu, 16 Jul 2015 08:42:29 -0400 Received: from icp-osb-irony-out7.external.iinet.net.au ([203.59.1.107]:44350 "EHLO icp-osb-irony-out7.external.iinet.net.au" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755137AbbGPMm2 (ORCPT ); Thu, 16 Jul 2015 08:42:28 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AmgCAAKmp1V8lBi2/2dsb2JhbAANTYRQqGkDAQEBBpRBhgECghcBAQEBAQF+hDABAQEDAQECJBFAAQULCw0LCRYPCQMCAQIBFi8GAQwBBQIBAYgiuQmXEAEBAQEBAQEBAQEBAQEBAQEBARqGHoUuhQYHhCsBBIcNhSeIEolFizOQH4EJgSocgWVdgksBAQE X-IronPort-AV: E=Sophos;i="5.15,488,1432569600"; d="scan'208";a="655845362" Message-ID: <55A7A6AA.1050602@uclinux.org> Date: Thu, 16 Jul 2015 22:42:18 +1000 From: Greg Ungerer User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: Viresh Kumar , Thomas Gleixner , Daniel Lezcano CC: linaro-kernel@lists.linaro.org, linux-kernel@vger.kernel.org, Geert Uytterhoeven , linux-m68k@vger.kernel.org Subject: Re: [PATCH 08/23] m68k/coldfire/pit: Migrate to new 'set-state' interface References: In-Reply-To: Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3745 Lines: 118 Hi Viresh, On 16/07/15 21:26, Viresh Kumar wrote: > Migrate m68k driver to the new 'set-state' interface provided by > clockevents core, the earlier 'set-mode' interface is marked obsolete > now. > > This also enables us to implement callbacks for new states of clockevent > devices, for example: ONESHOT_STOPPED. > > We weren't doing anything in ->set_mode(RESUME) and so tick_resume() > isn't implemented. > > Cc: Greg Ungerer Applied and tested ok (against 4.2-rc2). Acked-by: Greg Ungerer > Cc: Geert Uytterhoeven > Cc: linux-m68k@lists.linux-m68k.org > Signed-off-by: Viresh Kumar > --- > arch/m68k/coldfire/pit.c | 66 ++++++++++++++++++++++-------------------------- > 1 file changed, 30 insertions(+), 36 deletions(-) > > diff --git a/arch/m68k/coldfire/pit.c b/arch/m68k/coldfire/pit.c > index 493b3111d4c1..d86a9ffb3f13 100644 > --- a/arch/m68k/coldfire/pit.c > +++ b/arch/m68k/coldfire/pit.c > @@ -42,37 +42,28 @@ static u32 pit_cnt; > * This is also called after resume to bring the PIT into operation again. > */ > > -static void init_cf_pit_timer(enum clock_event_mode mode, > - struct clock_event_device *evt) > +static int cf_pit_set_periodic(struct clock_event_device *evt) > { > - switch (mode) { > - case CLOCK_EVT_MODE_PERIODIC: > - > - __raw_writew(MCFPIT_PCSR_DISABLE, TA(MCFPIT_PCSR)); > - __raw_writew(PIT_CYCLES_PER_JIFFY, TA(MCFPIT_PMR)); > - __raw_writew(MCFPIT_PCSR_EN | MCFPIT_PCSR_PIE | \ > - MCFPIT_PCSR_OVW | MCFPIT_PCSR_RLD | \ > - MCFPIT_PCSR_CLK64, TA(MCFPIT_PCSR)); > - break; > - > - case CLOCK_EVT_MODE_SHUTDOWN: > - case CLOCK_EVT_MODE_UNUSED: > - > - __raw_writew(MCFPIT_PCSR_DISABLE, TA(MCFPIT_PCSR)); > - break; > - > - case CLOCK_EVT_MODE_ONESHOT: > - > - __raw_writew(MCFPIT_PCSR_DISABLE, TA(MCFPIT_PCSR)); > - __raw_writew(MCFPIT_PCSR_EN | MCFPIT_PCSR_PIE | \ > - MCFPIT_PCSR_OVW | MCFPIT_PCSR_CLK64, \ > - TA(MCFPIT_PCSR)); > - break; > - > - case CLOCK_EVT_MODE_RESUME: > - /* Nothing to do here */ > - break; > - } > + __raw_writew(MCFPIT_PCSR_DISABLE, TA(MCFPIT_PCSR)); > + __raw_writew(PIT_CYCLES_PER_JIFFY, TA(MCFPIT_PMR)); > + __raw_writew(MCFPIT_PCSR_EN | MCFPIT_PCSR_PIE | > + MCFPIT_PCSR_OVW | MCFPIT_PCSR_RLD | > + MCFPIT_PCSR_CLK64, TA(MCFPIT_PCSR)); > + return 0; > +} > + > +static int cf_pit_set_oneshot(struct clock_event_device *evt) > +{ > + __raw_writew(MCFPIT_PCSR_DISABLE, TA(MCFPIT_PCSR)); > + __raw_writew(MCFPIT_PCSR_EN | MCFPIT_PCSR_PIE | > + MCFPIT_PCSR_OVW | MCFPIT_PCSR_CLK64, TA(MCFPIT_PCSR)); > + return 0; > +} > + > +static int cf_pit_shutdown(struct clock_event_device *evt) > +{ > + __raw_writew(MCFPIT_PCSR_DISABLE, TA(MCFPIT_PCSR)); > + return 0; > } > > /* > @@ -88,12 +79,15 @@ static int cf_pit_next_event(unsigned long delta, > } > > struct clock_event_device cf_pit_clockevent = { > - .name = "pit", > - .features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT, > - .set_mode = init_cf_pit_timer, > - .set_next_event = cf_pit_next_event, > - .shift = 32, > - .irq = MCF_IRQ_PIT1, > + .name = "pit", > + .features = CLOCK_EVT_FEAT_PERIODIC | > + CLOCK_EVT_FEAT_ONESHOT, > + .set_state_shutdown = cf_pit_shutdown, > + .set_state_periodic = cf_pit_set_periodic, > + .set_state_oneshot = cf_pit_set_oneshot, > + .set_next_event = cf_pit_next_event, > + .shift = 32, > + .irq = MCF_IRQ_PIT1, > }; > > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/