These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / clocksource / em_sti.c
index dc3c6ee..19bb179 100644 (file)
@@ -228,7 +228,6 @@ static int em_sti_register_clocksource(struct em_sti_priv *p)
 {
        struct clocksource *cs = &p->cs;
 
-       memset(cs, 0, sizeof(*cs));
        cs->name = dev_name(&p->pdev->dev);
        cs->rating = 200;
        cs->read = em_sti_clocksource_read;
@@ -251,33 +250,21 @@ static struct em_sti_priv *ced_to_em_sti(struct clock_event_device *ced)
        return container_of(ced, struct em_sti_priv, ced);
 }
 
-static void em_sti_clock_event_mode(enum clock_event_mode mode,
-                                   struct clock_event_device *ced)
+static int em_sti_clock_event_shutdown(struct clock_event_device *ced)
 {
        struct em_sti_priv *p = ced_to_em_sti(ced);
+       em_sti_stop(p, USER_CLOCKEVENT);
+       return 0;
+}
 
-       /* deal with old setting first */
-       switch (ced->mode) {
-       case CLOCK_EVT_MODE_ONESHOT:
-               em_sti_stop(p, USER_CLOCKEVENT);
-               break;
-       default:
-               break;
-       }
+static int em_sti_clock_event_set_oneshot(struct clock_event_device *ced)
+{
+       struct em_sti_priv *p = ced_to_em_sti(ced);
 
-       switch (mode) {
-       case CLOCK_EVT_MODE_ONESHOT:
-               dev_info(&p->pdev->dev, "used for oneshot clock events\n");
-               em_sti_start(p, USER_CLOCKEVENT);
-               clockevents_config(&p->ced, p->rate);
-               break;
-       case CLOCK_EVT_MODE_SHUTDOWN:
-       case CLOCK_EVT_MODE_UNUSED:
-               em_sti_stop(p, USER_CLOCKEVENT);
-               break;
-       default:
-               break;
-       }
+       dev_info(&p->pdev->dev, "used for oneshot clock events\n");
+       em_sti_start(p, USER_CLOCKEVENT);
+       clockevents_config(&p->ced, p->rate);
+       return 0;
 }
 
 static int em_sti_clock_event_next(unsigned long delta,
@@ -297,17 +284,17 @@ static void em_sti_register_clockevent(struct em_sti_priv *p)
 {
        struct clock_event_device *ced = &p->ced;
 
-       memset(ced, 0, sizeof(*ced));
        ced->name = dev_name(&p->pdev->dev);
        ced->features = CLOCK_EVT_FEAT_ONESHOT;
        ced->rating = 200;
        ced->cpumask = cpu_possible_mask;
        ced->set_next_event = em_sti_clock_event_next;
-       ced->set_mode = em_sti_clock_event_mode;
+       ced->set_state_shutdown = em_sti_clock_event_shutdown;
+       ced->set_state_oneshot = em_sti_clock_event_set_oneshot;
 
        dev_info(&p->pdev->dev, "used for clock events\n");
 
-       /* Register with dummy 1 Hz value, gets updated in ->set_mode() */
+       /* Register with dummy 1 Hz value, gets updated in ->set_state_oneshot() */
        clockevents_config_and_register(ced, 1, 2, 0xffffffff);
 }