fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / drivers / pcmcia / vrc4173_cardu.c
index db91259..812f038 100644 (file)
@@ -6,7 +6,7 @@
  *     NEC VRC4173 CARDU driver for Socket Services
  *     (This device doesn't support CardBus. it is supporting only 16bit PC Card.)
  *
- * Copyright 2002,2003 Yoichi Yuasa <yuasa@hh.iij4u.or.jp>
+ * Copyright 2002,2003 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
  *
  *  This program is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
@@ -41,7 +41,7 @@
 #include "vrc4173_cardu.h"
 
 MODULE_DESCRIPTION("NEC VRC4173 CARDU driver for Socket Services");
-MODULE_AUTHOR("Yoichi Yuasa <yuasa@hh.iij4u.or.jp>");
+MODULE_AUTHOR("Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>");
 MODULE_LICENSE("GPL");
 
 static int vrc4173_cardu_slots;
@@ -198,48 +198,6 @@ static int cardu_get_status(unsigned int sock, u_int *value)
        return 0;
 }
 
-static inline u_char get_Vcc_value(uint8_t val)
-{
-       switch (val & VCC_MASK) {
-       case VCC_3V:
-               return 33;
-       case VCC_5V:
-               return 50;
-       }
-
-       return 0;
-}
-
-static inline u_char get_Vpp_value(uint8_t val)
-{
-       switch (val & VPP_MASK) {
-       case VPP_12V:
-               return 120;
-       case VPP_VCC:
-               return get_Vcc_value(val);
-       }
-
-       return 0;
-}
-
-static int cardu_get_socket(unsigned int sock, socket_state_t *state)
-{
-       vrc4173_socket_t *socket = &cardu_sockets[sock];
-       uint8_t val;
-
-       val = exca_readb(socket, PWR_CNT);
-       state->Vcc = get_Vcc_value(val);
-       state->Vpp = get_Vpp_value(val);
-       state->flags = 0;
-       if (val & CARD_OUT_EN) state->flags |= SS_OUTPUT_ENA;
-
-       val = exca_readb(socket, INT_GEN_CNT);
-       if (!(val & CARD_REST0)) state->flags |= SS_RESET;
-       if (val & CARD_TYPE_IO) state->flags |= SS_IOCARD;
-
-       return 0;
-}
-
 static inline uint8_t set_Vcc_value(u_char Vcc)
 {
        switch (Vcc) {
@@ -431,7 +389,6 @@ static struct pccard_operations cardu_operations = {
        .register_callback      = cardu_register_callback,
        .inquire_socket         = cardu_inquire_socket,
        .get_status             = cardu_get_status,
-       .get_socket             = cardu_get_socket,
        .set_socket             = cardu_set_socket,
        .get_io_map             = cardu_get_io_map,
        .set_io_map             = cardu_set_io_map,
@@ -483,7 +440,7 @@ static uint16_t get_events(vrc4173_socket_t *socket)
        return events;
 }
 
-static void cardu_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+static void cardu_interrupt(int irq, void *dev_id)
 {
        vrc4173_socket_t *socket = (vrc4173_socket_t *)dev_id;
        uint16_t events;
@@ -543,7 +500,7 @@ static int __devinit vrc4173_cardu_probe(struct pci_dev *dev,
                return -ENOMEM;
        }
 
-       if (request_irq(dev->irq, cardu_interrupt, SA_SHIRQ, socket->name, socket) < 0) {
+       if (request_irq(dev->irq, cardu_interrupt, IRQF_SHARED, socket->name, socket) < 0) {
                pcmcia_unregister_socket(socket->pcmcia_socket);
                socket->pcmcia_socket = NULL;
                iounmap(socket->base);
@@ -559,7 +516,7 @@ static int __devinit vrc4173_cardu_probe(struct pci_dev *dev,
 static int __devinit vrc4173_cardu_setup(char *options)
 {
        if (options == NULL || *options == '\0')
-               return 0;
+               return 1;
 
        if (strncmp(options, "cardu1:", 7) == 0) {
                options += 7;
@@ -570,9 +527,9 @@ static int __devinit vrc4173_cardu_setup(char *options)
                        }
 
                        if (*options != ',')
-                               return 0;
+                               return 1;
                } else
-                       return 0;
+                       return 1;
        }
 
        if (strncmp(options, "cardu2:", 7) == 0) {
@@ -581,7 +538,7 @@ static int __devinit vrc4173_cardu_setup(char *options)
                        cardu_sockets[CARDU2].noprobe = 1;
        }
 
-       return 0;
+       return 1;
 }
 
 __setup("vrc4173_cardu=", vrc4173_cardu_setup);
@@ -604,7 +561,7 @@ static int __devinit vrc4173_cardu_init(void)
 {
        vrc4173_cardu_slots = 0;
 
-       return pci_module_init(&vrc4173_cardu_driver);
+       return pci_register_driver(&vrc4173_cardu_driver);
 }
 
 static void __devexit vrc4173_cardu_exit(void)