On Tue, 23 Jun 2015, Paul Osmialowski wrote:
> +/*
> + * Clock event device set mode function
> + */
> +static void kinetis_clockevent_tmr_set_mode(
> +     enum clock_event_mode mode, struct clock_event_device *clk)
> +{
> +     struct kinetis_clock_event_ddata *pit =
> +             container_of(clk, struct kinetis_clock_event_ddata, evtdev);
> +
> +     switch (mode) {
> +     case CLOCK_EVT_MODE_PERIODIC:
> +             kinetis_pit_enable(pit->base, 1);
> +             break;
> +     case CLOCK_EVT_MODE_ONESHOT:
> +     case CLOCK_EVT_MODE_UNUSED:
> +     case CLOCK_EVT_MODE_SHUTDOWN:
> +     default:
> +             kinetis_pit_enable(pit->base, 0);
> +     }
> +}

Please move to the new set_state_* interfaces. set_mode() is deprecated.

> +static int kinetis_clockevent_tmr_set_next_event(
> +     unsigned long delta, struct clock_event_device *c)
> +{
> +     struct kinetis_clock_event_ddata *pit =
> +             container_of(c, struct kinetis_clock_event_ddata, evtdev);
> +     unsigned long flags;
> +
> +     raw_local_irq_save(flags);

Pointless exercise. This is called with interrupts disabled.

> +     kinetis_pit_init(pit->base, delta);
> +     kinetis_pit_enable(pit->base, 1);
> +     raw_local_irq_restore(flags);


> +static struct irqaction kinetis_clockevent_irqaction[KINETIS_PIT_CHANNELS] = 
> {
> +     {
> +             .name = "Kinetis Kernel Time Tick (pit0)",

Please use oneword descriptive names not half sentences.

> +             .flags = IRQF_TIMER | IRQF_IRQPOLL,
> +             .dev_id = &kinetis_clockevent_tmrs[0],
> +             .handler = kinetis_clockevent_tmr_irq_handler,
> +     }, {
> +             .name = "Kinetis Kernel Time Tick (pit1)",
> +             .flags = IRQF_TIMER | IRQF_IRQPOLL,
> +             .dev_id = &kinetis_clockevent_tmrs[1],
> +             .handler = kinetis_clockevent_tmr_irq_handler,
> +     }, {
> +             .name = "Kinetis Kernel Time Tick (pit2)",
> +             .flags = IRQF_TIMER | IRQF_IRQPOLL,
> +             .dev_id = &kinetis_clockevent_tmrs[2],
> +             .handler = kinetis_clockevent_tmr_irq_handler,
> +     }, {
> +             .name = "Kinetis Kernel Time Tick (pit3)",
> +             .flags = IRQF_TIMER | IRQF_IRQPOLL,
> +             .dev_id = &kinetis_clockevent_tmrs[3],
> +             .handler = kinetis_clockevent_tmr_irq_handler,
> +     },

Aside of that. Please use standard request_irq() there is no reason to
use setup_irq here.

> +
> +     setup_irq(irq, &(kinetis_clockevent_irqaction[chan]));

  request_irq(irq, handler, flags, "name", &kinetis_clockevent_tmrs[chan]);

....

Thanks,

        tglx
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to