Merge branch 'hwmon-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6
[sfrench/cifs-2.6.git] / drivers / macintosh / via-pmu68k.c
index 6f80d76ac17c619b5aea4406140eae094cdf6a7b..93e6ef9233f9ec6bdb9632c06db15e301e666c9c 100644 (file)
@@ -102,12 +102,12 @@ static int pmu_kind = PMU_UNKNOWN;
 static int pmu_fully_inited = 0;
 
 int asleep;
-struct notifier_block *sleep_notifier_list;
+BLOCKING_NOTIFIER_HEAD(sleep_notifier_list);
 
 static int pmu_probe(void);
 static int pmu_init(void);
 static void pmu_start(void);
-static irqreturn_t pmu_interrupt(int irq, void *arg, struct pt_regs *regs);
+static irqreturn_t pmu_interrupt(int irq, void *arg);
 static int pmu_send_request(struct adb_request *req, int sync);
 static int pmu_autopoll(int devs);
 void pmu_poll(void);
@@ -118,8 +118,7 @@ static void pmu_start(void);
 static void send_byte(int x);
 static void recv_byte(void);
 static void pmu_done(struct adb_request *req);
-static void pmu_handle_data(unsigned char *data, int len,
-                           struct pt_regs *regs);
+static void pmu_handle_data(unsigned char *data, int len);
 static void set_volume(int level);
 static void pmu_enable_backlight(int on);
 static void pmu_set_brightness(int level);
@@ -222,7 +221,7 @@ pmu_init(void)
                }
                if (pmu_state == idle) {
                        adb_int_pending = 1;
-                       pmu_interrupt(0, NULL, NULL);
+                       pmu_interrupt(0, NULL);
                }
                pmu_poll();
                udelay(10);
@@ -493,7 +492,7 @@ pmu_queue_request(struct adb_request *req)
                return -EINVAL;
        }
 
-       req->next = 0;
+       req->next = NULL;
        req->sent = 0;
        req->complete = 0;
        local_irq_save(flags);
@@ -563,17 +562,17 @@ pmu_poll(void)
        local_irq_save(flags);
        if (via1[IFR] & SR_INT) {
                via1[IFR] = SR_INT;
-               pmu_interrupt(IRQ_MAC_ADB_SR, NULL, NULL);
+               pmu_interrupt(IRQ_MAC_ADB_SR, NULL);
        }
        if (via1[IFR] & CB1_INT) {
                via1[IFR] = CB1_INT;
-               pmu_interrupt(IRQ_MAC_ADB_CL, NULL, NULL);
+               pmu_interrupt(IRQ_MAC_ADB_CL, NULL);
        }
        local_irq_restore(flags);
 }
 
 static irqreturn_t
-pmu_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+pmu_interrupt(int irq, void *dev_id)
 {
        struct adb_request *req;
        int timeout, bite = 0;  /* to prevent compiler warning */
@@ -657,7 +656,7 @@ pmu_interrupt(int irq, void *dev_id, struct pt_regs *regs)
                        }
 
                        if (pmu_state == reading_intr) {
-                               pmu_handle_data(interrupt_data, data_index, regs);
+                               pmu_handle_data(interrupt_data, data_index);
                        } else {
                                req = current_req;
                                current_req = req->next;
@@ -701,7 +700,7 @@ pmu_done(struct adb_request *req)
 
 /* Interrupt data could be the result data from an ADB cmd */
 static void 
-pmu_handle_data(unsigned char *data, int len, struct pt_regs *regs)
+pmu_handle_data(unsigned char *data, int len)
 {
        static int show_pmu_ints = 1;
 
@@ -717,7 +716,7 @@ pmu_handle_data(unsigned char *data, int len, struct pt_regs *regs)
                                printk(KERN_ERR "PMU: extra ADB reply\n");
                                return;
                        }
-                       req_awaiting_reply = 0;
+                       req_awaiting_reply = NULL;
                        if (len <= 2)
                                req->reply_len = 0;
                        else {
@@ -726,7 +725,7 @@ pmu_handle_data(unsigned char *data, int len, struct pt_regs *regs)
                        }
                        pmu_done(req);
                } else {
-                       adb_input(data+1, len-1, regs, 1);
+                       adb_input(data+1, len-1, 1);
                }
        } else {
                if (data[0] == 0x08 && len == 3) {
@@ -843,18 +842,18 @@ pbook_pci_save(void)
        struct pci_save *ps;
 
        npci = 0;
-       while ((pd = pci_find_device(PCI_ANY_ID, PCI_ANY_ID, pd)) != NULL)
+       while ((pd = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, pd)) != NULL)
                ++npci;
        n_pbook_pci_saves = npci;
        if (npci == 0)
                return;
-       ps = (struct pci_save *) kmalloc(npci * sizeof(*ps), GFP_KERNEL);
+       ps = kmalloc(npci * sizeof(*ps), GFP_KERNEL);
        pbook_pci_saves = ps;
        if (ps == NULL)
                return;
 
        pd = NULL;
-       while ((pd = pci_find_device(PCI_ANY_ID, PCI_ANY_ID, pd)) != NULL) {
+       while ((pd = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, pd)) != NULL) {
                pci_read_config_word(pd, PCI_COMMAND, &ps->command);
                pci_read_config_word(pd, PCI_CACHE_LINE_SIZE, &ps->cache_lat);
                pci_read_config_word(pd, PCI_INTERRUPT_LINE, &ps->intr);
@@ -871,7 +870,7 @@ pbook_pci_restore(void)
        struct pci_dev *pd = NULL;
        int j;
 
-       while ((pd = pci_find_device(PCI_ANY_ID, PCI_ANY_ID, pd)) != NULL) {
+       while ((pd = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, pd)) != NULL) {
                if (ps->command == 0)
                        continue;
                pci_read_config_word(pd, PCI_COMMAND, &cmd);
@@ -913,7 +912,8 @@ int powerbook_sleep(void)
        struct adb_request sleep_req;
 
        /* Notify device drivers */
-       ret = notifier_call_chain(&sleep_notifier_list, PBOOK_SLEEP, NULL);
+       ret = blocking_notifier_call_chain(&sleep_notifier_list,
+                       PBOOK_SLEEP, NULL);
        if (ret & NOTIFY_STOP_MASK)
                return -EBUSY;
 
@@ -984,7 +984,7 @@ int powerbook_sleep(void)
                        enable_irq(i);
 
        /* Notify drivers */
-       notifier_call_chain(&sleep_notifier_list, PBOOK_WAKE, NULL);
+       blocking_notifier_call_chain(&sleep_notifier_list, PBOOK_WAKE, NULL);
 
        /* reenable ADB autopoll */
        pmu_adb_autopoll(adb_dev_map);