]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/macintosh/rack-meter.c
ARM: IXP4xx Ethernet NAPI fix
[linux-2.6-omap-h63xx.git] / drivers / macintosh / rack-meter.c
index f1b6f563673a20e07225f03ff11db104df52dc67..2c21d4f25cc82e85ab138aca5e4490f4166865f3 100644 (file)
@@ -30,7 +30,6 @@
 #include <asm/machdep.h>
 #include <asm/pmac_feature.h>
 #include <asm/dbdma.h>
-#include <asm/dbdma.h>
 #include <asm/macio.h>
 #include <asm/keylargo.h>
 
@@ -48,7 +47,8 @@ struct rackmeter_dma {
 } ____cacheline_aligned;
 
 struct rackmeter_cpu {
-       struct work_struct      sniffer;
+       struct delayed_work     sniffer;
+       struct rackmeter        *rm;
        cputime64_t             prev_wall;
        cputime64_t             prev_idle;
        int                     zero;
@@ -170,11 +170,11 @@ static void rackmeter_setup_dbdma(struct rackmeter *rm)
        /* Make sure dbdma is reset */
        DBDMA_DO_RESET(rm->dma_regs);
 
-       pr_debug("rackmeter: mark offset=0x%lx\n",
+       pr_debug("rackmeter: mark offset=0x%zx\n",
                 offsetof(struct rackmeter_dma, mark));
-       pr_debug("rackmeter: buf1 offset=0x%lx\n",
+       pr_debug("rackmeter: buf1 offset=0x%zx\n",
                 offsetof(struct rackmeter_dma, buf1));
-       pr_debug("rackmeter: buf2 offset=0x%lx\n",
+       pr_debug("rackmeter: buf2 offset=0x%zx\n",
                 offsetof(struct rackmeter_dma, buf2));
 
        /* Prepare 4 dbdma commands for the 2 buffers */
@@ -208,11 +208,12 @@ static void rackmeter_setup_dbdma(struct rackmeter *rm)
        rackmeter_do_pause(rm, 0);
 }
 
-static void rackmeter_do_timer(void *data)
+static void rackmeter_do_timer(struct work_struct *work)
 {
-       struct rackmeter *rm = data;
+       struct rackmeter_cpu *rcpu =
+               container_of(work, struct rackmeter_cpu, sniffer.work);
+       struct rackmeter *rm = rcpu->rm;
        unsigned int cpu = smp_processor_id();
-       struct rackmeter_cpu *rcpu = &rm->cpu[cpu];
        cputime64_t cur_jiffies, total_idle_ticks;
        unsigned int total_ticks, idle_ticks;
        int i, offset, load, cumm, pause;
@@ -263,8 +264,10 @@ static void __devinit rackmeter_init_cpu_sniffer(struct rackmeter *rm)
         * on those machines yet
         */
 
-       INIT_WORK(&rm->cpu[0].sniffer, rackmeter_do_timer, rm);
-       INIT_WORK(&rm->cpu[1].sniffer, rackmeter_do_timer, rm);
+       rm->cpu[0].rm = rm;
+       INIT_DELAYED_WORK(&rm->cpu[0].sniffer, rackmeter_do_timer);
+       rm->cpu[1].rm = rm;
+       INIT_DELAYED_WORK(&rm->cpu[1].sniffer, rackmeter_do_timer);
 
        for_each_online_cpu(cpu) {
                struct rackmeter_cpu *rcpu;
@@ -383,7 +386,7 @@ static int __devinit rackmeter_probe(struct macio_dev* mdev,
               if (strcmp(np->name, "lightshow") == 0)
                       break;
               if ((strcmp(np->name, "sound") == 0) &&
-                  get_property(np, "virtual", NULL) != NULL)
+                  of_get_property(np, "virtual", NULL) != NULL)
                       break;
        }
        if (np == NULL) {