aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/pcmcia/xirc2ps_cs.c
diff options
context:
space:
mode:
authorDominik Brodowski <linux@dominikbrodowski.net>2006-03-31 10:21:06 -0500
committerDominik Brodowski <linux@dominikbrodowski.net>2006-03-31 10:21:06 -0500
commitfba395eee7d3f342ca739c20f5b3ee635d0420a0 (patch)
tree5a73f68d3514aa795b0d8c500e4d72170651d762 /drivers/net/pcmcia/xirc2ps_cs.c
parentfd238232cd0ff4840ae6946bb338502154096d88 (diff)
[PATCH] pcmcia: remove dev_link_t and client_handle_t indirection
dev_link_t * and client_handle_t both mean struct pcmcai_device * by now. Therefore, remove all such indirections. Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
Diffstat (limited to 'drivers/net/pcmcia/xirc2ps_cs.c')
-rw-r--r--drivers/net/pcmcia/xirc2ps_cs.c108
1 files changed, 51 insertions, 57 deletions
diff --git a/drivers/net/pcmcia/xirc2ps_cs.c b/drivers/net/pcmcia/xirc2ps_cs.c
index 94a1e644abdc..84328da075c3 100644
--- a/drivers/net/pcmcia/xirc2ps_cs.c
+++ b/drivers/net/pcmcia/xirc2ps_cs.c
@@ -289,9 +289,9 @@ static void mii_wr(kio_addr_t ioaddr, u_char phyaddr, u_char phyreg,
289 * and ejection events. They are invoked from the event handler. 289 * and ejection events. They are invoked from the event handler.
290 */ 290 */
291 291
292static int has_ce2_string(dev_link_t * link); 292static int has_ce2_string(struct pcmcia_device * link);
293static void xirc2ps_config(dev_link_t * link); 293static void xirc2ps_config(struct pcmcia_device * link);
294static void xirc2ps_release(dev_link_t * link); 294static void xirc2ps_release(struct pcmcia_device * link);
295 295
296/**************** 296/****************
297 * The attach() and detach() entry points are used to create and destroy 297 * The attach() and detach() entry points are used to create and destroy
@@ -313,10 +313,10 @@ static irqreturn_t xirc2ps_interrupt(int irq, void *dev_id, struct pt_regs *regs
313/**************** 313/****************
314 * A linked list of "instances" of the device. Each actual 314 * A linked list of "instances" of the device. Each actual
315 * PCMCIA card corresponds to one device instance, and is described 315 * PCMCIA card corresponds to one device instance, and is described
316 * by one dev_link_t structure (defined in ds.h). 316 * by one struct pcmcia_device structure (defined in ds.h).
317 * 317 *
318 * You may not want to use a linked list for this -- for example, the 318 * You may not want to use a linked list for this -- for example, the
319 * memory card driver uses an array of dev_link_t pointers, where minor 319 * memory card driver uses an array of struct pcmcia_device pointers, where minor
320 * device numbers are used to derive the corresponding array index. 320 * device numbers are used to derive the corresponding array index.
321 */ 321 */
322 322
@@ -326,7 +326,7 @@ static irqreturn_t xirc2ps_interrupt(int irq, void *dev_id, struct pt_regs *regs
326 * example, ethernet cards, modems). In other cases, there may be 326 * example, ethernet cards, modems). In other cases, there may be
327 * many actual or logical devices (SCSI adapters, memory cards with 327 * many actual or logical devices (SCSI adapters, memory cards with
328 * multiple partitions). The dev_node_t structures need to be kept 328 * multiple partitions). The dev_node_t structures need to be kept
329 * in a linked list starting at the 'dev' field of a dev_link_t 329 * in a linked list starting at the 'dev' field of a struct pcmcia_device
330 * structure. We allocate them in the card's private data structure, 330 * structure. We allocate them in the card's private data structure,
331 * because they generally can't be allocated dynamically. 331 * because they generally can't be allocated dynamically.
332 */ 332 */
@@ -355,7 +355,7 @@ static void do_tx_timeout(struct net_device *dev);
355static struct net_device_stats *do_get_stats(struct net_device *dev); 355static struct net_device_stats *do_get_stats(struct net_device *dev);
356static void set_addresses(struct net_device *dev); 356static void set_addresses(struct net_device *dev);
357static void set_multicast_list(struct net_device *dev); 357static void set_multicast_list(struct net_device *dev);
358static int set_card_type(dev_link_t *link, const void *s); 358static int set_card_type(struct pcmcia_device *link, const void *s);
359static int do_config(struct net_device *dev, struct ifmap *map); 359static int do_config(struct net_device *dev, struct ifmap *map);
360static int do_open(struct net_device *dev); 360static int do_open(struct net_device *dev);
361static int do_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); 361static int do_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
@@ -368,7 +368,7 @@ static int do_stop(struct net_device *dev);
368 368
369/*=============== Helper functions =========================*/ 369/*=============== Helper functions =========================*/
370static int 370static int
371first_tuple(client_handle_t handle, tuple_t *tuple, cisparse_t *parse) 371first_tuple(struct pcmcia_device *handle, tuple_t *tuple, cisparse_t *parse)
372{ 372{
373 int err; 373 int err;
374 374
@@ -379,7 +379,7 @@ first_tuple(client_handle_t handle, tuple_t *tuple, cisparse_t *parse)
379} 379}
380 380
381static int 381static int
382next_tuple(client_handle_t handle, tuple_t *tuple, cisparse_t *parse) 382next_tuple(struct pcmcia_device *handle, tuple_t *tuple, cisparse_t *parse)
383{ 383{
384 int err; 384 int err;
385 385
@@ -553,11 +553,10 @@ mii_wr(kio_addr_t ioaddr, u_char phyaddr, u_char phyreg, unsigned data, int len)
553 */ 553 */
554 554
555static int 555static int
556xirc2ps_attach(struct pcmcia_device *p_dev) 556xirc2ps_attach(struct pcmcia_device *link)
557{ 557{
558 struct net_device *dev; 558 struct net_device *dev;
559 local_info_t *local; 559 local_info_t *local;
560 dev_link_t *link = dev_to_instance(p_dev);
561 560
562 DEBUG(0, "attach()\n"); 561 DEBUG(0, "attach()\n");
563 562
@@ -566,7 +565,7 @@ xirc2ps_attach(struct pcmcia_device *p_dev)
566 if (!dev) 565 if (!dev)
567 return -ENOMEM; 566 return -ENOMEM;
568 local = netdev_priv(dev); 567 local = netdev_priv(dev);
569 local->p_dev = p_dev; 568 local->p_dev = link;
570 link->priv = dev; 569 link->priv = dev;
571 570
572 /* General socket configuration */ 571 /* General socket configuration */
@@ -606,9 +605,8 @@ xirc2ps_attach(struct pcmcia_device *p_dev)
606 */ 605 */
607 606
608static void 607static void
609xirc2ps_detach(struct pcmcia_device *p_dev) 608xirc2ps_detach(struct pcmcia_device *link)
610{ 609{
611 dev_link_t *link = dev_to_instance(p_dev);
612 struct net_device *dev = link->priv; 610 struct net_device *dev = link->priv;
613 611
614 DEBUG(0, "detach(0x%p)\n", link); 612 DEBUG(0, "detach(0x%p)\n", link);
@@ -641,7 +639,7 @@ xirc2ps_detach(struct pcmcia_device *p_dev)
641 * 639 *
642 */ 640 */
643static int 641static int
644set_card_type(dev_link_t *link, const void *s) 642set_card_type(struct pcmcia_device *link, const void *s)
645{ 643{
646 struct net_device *dev = link->priv; 644 struct net_device *dev = link->priv;
647 local_info_t *local = netdev_priv(dev); 645 local_info_t *local = netdev_priv(dev);
@@ -710,9 +708,8 @@ set_card_type(dev_link_t *link, const void *s)
710 * Returns: true if this is a CE2 708 * Returns: true if this is a CE2
711 */ 709 */
712static int 710static int
713has_ce2_string(dev_link_t * link) 711has_ce2_string(struct pcmcia_device * link)
714{ 712{
715 client_handle_t handle = link->handle;
716 tuple_t tuple; 713 tuple_t tuple;
717 cisparse_t parse; 714 cisparse_t parse;
718 u_char buf[256]; 715 u_char buf[256];
@@ -722,7 +719,7 @@ has_ce2_string(dev_link_t * link)
722 tuple.TupleDataMax = 254; 719 tuple.TupleDataMax = 254;
723 tuple.TupleOffset = 0; 720 tuple.TupleOffset = 0;
724 tuple.DesiredTuple = CISTPL_VERS_1; 721 tuple.DesiredTuple = CISTPL_VERS_1;
725 if (!first_tuple(handle, &tuple, &parse) && parse.version_1.ns > 2) { 722 if (!first_tuple(link, &tuple, &parse) && parse.version_1.ns > 2) {
726 if (strstr(parse.version_1.str + parse.version_1.ofs[2], "CE2")) 723 if (strstr(parse.version_1.str + parse.version_1.ofs[2], "CE2"))
727 return 1; 724 return 1;
728 } 725 }
@@ -735,9 +732,8 @@ has_ce2_string(dev_link_t * link)
735 * ethernet device available to the system. 732 * ethernet device available to the system.
736 */ 733 */
737static void 734static void
738xirc2ps_config(dev_link_t * link) 735xirc2ps_config(struct pcmcia_device * link)
739{ 736{
740 client_handle_t handle = link->handle;
741 struct net_device *dev = link->priv; 737 struct net_device *dev = link->priv;
742 local_info_t *local = netdev_priv(dev); 738 local_info_t *local = netdev_priv(dev);
743 tuple_t tuple; 739 tuple_t tuple;
@@ -763,7 +759,7 @@ xirc2ps_config(dev_link_t * link)
763 759
764 /* Is this a valid card */ 760 /* Is this a valid card */
765 tuple.DesiredTuple = CISTPL_MANFID; 761 tuple.DesiredTuple = CISTPL_MANFID;
766 if ((err=first_tuple(handle, &tuple, &parse))) { 762 if ((err=first_tuple(link, &tuple, &parse))) {
767 printk(KNOT_XIRC "manfid not found in CIS\n"); 763 printk(KNOT_XIRC "manfid not found in CIS\n");
768 goto failure; 764 goto failure;
769 } 765 }
@@ -799,15 +795,15 @@ xirc2ps_config(dev_link_t * link)
799 795
800 /* get configuration stuff */ 796 /* get configuration stuff */
801 tuple.DesiredTuple = CISTPL_CONFIG; 797 tuple.DesiredTuple = CISTPL_CONFIG;
802 if ((err=first_tuple(handle, &tuple, &parse))) 798 if ((err=first_tuple(link, &tuple, &parse)))
803 goto cis_error; 799 goto cis_error;
804 link->conf.ConfigBase = parse.config.base; 800 link->conf.ConfigBase = parse.config.base;
805 link->conf.Present = parse.config.rmask[0]; 801 link->conf.Present = parse.config.rmask[0];
806 802
807 /* get the ethernet address from the CIS */ 803 /* get the ethernet address from the CIS */
808 tuple.DesiredTuple = CISTPL_FUNCE; 804 tuple.DesiredTuple = CISTPL_FUNCE;
809 for (err = first_tuple(handle, &tuple, &parse); !err; 805 for (err = first_tuple(link, &tuple, &parse); !err;
810 err = next_tuple(handle, &tuple, &parse)) { 806 err = next_tuple(link, &tuple, &parse)) {
811 /* Once I saw two CISTPL_FUNCE_LAN_NODE_ID entries: 807 /* Once I saw two CISTPL_FUNCE_LAN_NODE_ID entries:
812 * the first one with a length of zero the second correct - 808 * the first one with a length of zero the second correct -
813 * so I skip all entries with length 0 */ 809 * so I skip all entries with length 0 */
@@ -817,8 +813,8 @@ xirc2ps_config(dev_link_t * link)
817 } 813 }
818 if (err) { /* not found: try to get the node-id from tuple 0x89 */ 814 if (err) { /* not found: try to get the node-id from tuple 0x89 */
819 tuple.DesiredTuple = 0x89; /* data layout looks like tuple 0x22 */ 815 tuple.DesiredTuple = 0x89; /* data layout looks like tuple 0x22 */
820 if ((err = pcmcia_get_first_tuple(handle, &tuple)) == 0 && 816 if ((err = pcmcia_get_first_tuple(link, &tuple)) == 0 &&
821 (err = pcmcia_get_tuple_data(handle, &tuple)) == 0) { 817 (err = pcmcia_get_tuple_data(link, &tuple)) == 0) {
822 if (tuple.TupleDataLen == 8 && *buf == CISTPL_FUNCE_LAN_NODE_ID) 818 if (tuple.TupleDataLen == 8 && *buf == CISTPL_FUNCE_LAN_NODE_ID)
823 memcpy(&parse, buf, 8); 819 memcpy(&parse, buf, 8);
824 else 820 else
@@ -827,8 +823,8 @@ xirc2ps_config(dev_link_t * link)
827 } 823 }
828 if (err) { /* another try (James Lehmer's CE2 version 4.1)*/ 824 if (err) { /* another try (James Lehmer's CE2 version 4.1)*/
829 tuple.DesiredTuple = CISTPL_FUNCE; 825 tuple.DesiredTuple = CISTPL_FUNCE;
830 for (err = first_tuple(handle, &tuple, &parse); !err; 826 for (err = first_tuple(link, &tuple, &parse); !err;
831 err = next_tuple(handle, &tuple, &parse)) { 827 err = next_tuple(link, &tuple, &parse)) {
832 if (parse.funce.type == 0x02 && parse.funce.data[0] == 1 828 if (parse.funce.type == 0x02 && parse.funce.data[0] == 1
833 && parse.funce.data[1] == 6 && tuple.TupleDataLen == 13) { 829 && parse.funce.data[1] == 6 && tuple.TupleDataLen == 13) {
834 buf[1] = 4; 830 buf[1] = 4;
@@ -871,14 +867,14 @@ xirc2ps_config(dev_link_t * link)
871 * Ethernet port */ 867 * Ethernet port */
872 link->io.NumPorts1 = 16; /* no Mako stuff anymore */ 868 link->io.NumPorts1 = 16; /* no Mako stuff anymore */
873 tuple.DesiredTuple = CISTPL_CFTABLE_ENTRY; 869 tuple.DesiredTuple = CISTPL_CFTABLE_ENTRY;
874 for (err = first_tuple(handle, &tuple, &parse); !err; 870 for (err = first_tuple(link, &tuple, &parse); !err;
875 err = next_tuple(handle, &tuple, &parse)) { 871 err = next_tuple(link, &tuple, &parse)) {
876 if (cf->io.nwin > 0 && (cf->io.win[0].base & 0xf) == 8) { 872 if (cf->io.nwin > 0 && (cf->io.win[0].base & 0xf) == 8) {
877 for (ioaddr = 0x300; ioaddr < 0x400; ioaddr += 0x10) { 873 for (ioaddr = 0x300; ioaddr < 0x400; ioaddr += 0x10) {
878 link->conf.ConfigIndex = cf->index ; 874 link->conf.ConfigIndex = cf->index ;
879 link->io.BasePort2 = cf->io.win[0].base; 875 link->io.BasePort2 = cf->io.win[0].base;
880 link->io.BasePort1 = ioaddr; 876 link->io.BasePort1 = ioaddr;
881 if (!(err=pcmcia_request_io(link->handle, &link->io))) 877 if (!(err=pcmcia_request_io(link, &link->io)))
882 goto port_found; 878 goto port_found;
883 } 879 }
884 } 880 }
@@ -892,15 +888,15 @@ xirc2ps_config(dev_link_t * link)
892 */ 888 */
893 for (pass=0; pass < 2; pass++) { 889 for (pass=0; pass < 2; pass++) {
894 tuple.DesiredTuple = CISTPL_CFTABLE_ENTRY; 890 tuple.DesiredTuple = CISTPL_CFTABLE_ENTRY;
895 for (err = first_tuple(handle, &tuple, &parse); !err; 891 for (err = first_tuple(link, &tuple, &parse); !err;
896 err = next_tuple(handle, &tuple, &parse)){ 892 err = next_tuple(link, &tuple, &parse)){
897 if (cf->io.nwin > 0 && (cf->io.win[0].base & 0xf) == 8){ 893 if (cf->io.nwin > 0 && (cf->io.win[0].base & 0xf) == 8){
898 link->conf.ConfigIndex = cf->index ; 894 link->conf.ConfigIndex = cf->index ;
899 link->io.BasePort2 = cf->io.win[0].base; 895 link->io.BasePort2 = cf->io.win[0].base;
900 link->io.BasePort1 = link->io.BasePort2 896 link->io.BasePort1 = link->io.BasePort2
901 + (pass ? (cf->index & 0x20 ? -24:8) 897 + (pass ? (cf->index & 0x20 ? -24:8)
902 : (cf->index & 0x20 ? 8:-24)); 898 : (cf->index & 0x20 ? 8:-24));
903 if (!(err=pcmcia_request_io(link->handle, &link->io))) 899 if (!(err=pcmcia_request_io(link, &link->io)))
904 goto port_found; 900 goto port_found;
905 } 901 }
906 } 902 }
@@ -915,12 +911,12 @@ xirc2ps_config(dev_link_t * link)
915 link->io.NumPorts1 = 16; 911 link->io.NumPorts1 = 16;
916 for (ioaddr = 0x300; ioaddr < 0x400; ioaddr += 0x10) { 912 for (ioaddr = 0x300; ioaddr < 0x400; ioaddr += 0x10) {
917 link->io.BasePort1 = ioaddr; 913 link->io.BasePort1 = ioaddr;
918 if (!(err=pcmcia_request_io(link->handle, &link->io))) 914 if (!(err=pcmcia_request_io(link, &link->io)))
919 goto port_found; 915 goto port_found;
920 } 916 }
921 link->io.BasePort1 = 0; /* let CS decide */ 917 link->io.BasePort1 = 0; /* let CS decide */
922 if ((err=pcmcia_request_io(link->handle, &link->io))) { 918 if ((err=pcmcia_request_io(link, &link->io))) {
923 cs_error(link->handle, RequestIO, err); 919 cs_error(link, RequestIO, err);
924 goto config_error; 920 goto config_error;
925 } 921 }
926 } 922 }
@@ -932,8 +928,8 @@ xirc2ps_config(dev_link_t * link)
932 * Now allocate an interrupt line. Note that this does not 928 * Now allocate an interrupt line. Note that this does not
933 * actually assign a handler to the interrupt. 929 * actually assign a handler to the interrupt.
934 */ 930 */
935 if ((err=pcmcia_request_irq(link->handle, &link->irq))) { 931 if ((err=pcmcia_request_irq(link, &link->irq))) {
936 cs_error(link->handle, RequestIRQ, err); 932 cs_error(link, RequestIRQ, err);
937 goto config_error; 933 goto config_error;
938 } 934 }
939 935
@@ -941,8 +937,8 @@ xirc2ps_config(dev_link_t * link)
941 * This actually configures the PCMCIA socket -- setting up 937 * This actually configures the PCMCIA socket -- setting up
942 * the I/O windows and the interrupt mapping. 938 * the I/O windows and the interrupt mapping.
943 */ 939 */
944 if ((err=pcmcia_request_configuration(link->handle, &link->conf))) { 940 if ((err=pcmcia_request_configuration(link, &link->conf))) {
945 cs_error(link->handle, RequestConfiguration, err); 941 cs_error(link, RequestConfiguration, err);
946 goto config_error; 942 goto config_error;
947 } 943 }
948 944
@@ -959,15 +955,15 @@ xirc2ps_config(dev_link_t * link)
959 reg.Action = CS_WRITE; 955 reg.Action = CS_WRITE;
960 reg.Offset = CISREG_IOBASE_0; 956 reg.Offset = CISREG_IOBASE_0;
961 reg.Value = link->io.BasePort2 & 0xff; 957 reg.Value = link->io.BasePort2 & 0xff;
962 if ((err = pcmcia_access_configuration_register(link->handle, &reg))) { 958 if ((err = pcmcia_access_configuration_register(link, &reg))) {
963 cs_error(link->handle, AccessConfigurationRegister, err); 959 cs_error(link, AccessConfigurationRegister, err);
964 goto config_error; 960 goto config_error;
965 } 961 }
966 reg.Action = CS_WRITE; 962 reg.Action = CS_WRITE;
967 reg.Offset = CISREG_IOBASE_1; 963 reg.Offset = CISREG_IOBASE_1;
968 reg.Value = (link->io.BasePort2 >> 8) & 0xff; 964 reg.Value = (link->io.BasePort2 >> 8) & 0xff;
969 if ((err = pcmcia_access_configuration_register(link->handle, &reg))) { 965 if ((err = pcmcia_access_configuration_register(link, &reg))) {
970 cs_error(link->handle, AccessConfigurationRegister, err); 966 cs_error(link, AccessConfigurationRegister, err);
971 goto config_error; 967 goto config_error;
972 } 968 }
973 969
@@ -978,15 +974,15 @@ xirc2ps_config(dev_link_t * link)
978 req.Attributes = WIN_DATA_WIDTH_8|WIN_MEMORY_TYPE_AM|WIN_ENABLE; 974 req.Attributes = WIN_DATA_WIDTH_8|WIN_MEMORY_TYPE_AM|WIN_ENABLE;
979 req.Base = req.Size = 0; 975 req.Base = req.Size = 0;
980 req.AccessSpeed = 0; 976 req.AccessSpeed = 0;
981 if ((err = pcmcia_request_window(&link->handle, &req, &link->win))) { 977 if ((err = pcmcia_request_window(&link, &req, &link->win))) {
982 cs_error(link->handle, RequestWindow, err); 978 cs_error(link, RequestWindow, err);
983 goto config_error; 979 goto config_error;
984 } 980 }
985 local->dingo_ccr = ioremap(req.Base,0x1000) + 0x0800; 981 local->dingo_ccr = ioremap(req.Base,0x1000) + 0x0800;
986 mem.CardOffset = 0x0; 982 mem.CardOffset = 0x0;
987 mem.Page = 0; 983 mem.Page = 0;
988 if ((err = pcmcia_map_mem_page(link->win, &mem))) { 984 if ((err = pcmcia_map_mem_page(link->win, &mem))) {
989 cs_error(link->handle, MapMemPage, err); 985 cs_error(link, MapMemPage, err);
990 goto config_error; 986 goto config_error;
991 } 987 }
992 988
@@ -1048,7 +1044,7 @@ xirc2ps_config(dev_link_t * link)
1048 1044
1049 link->dev_node = &local->node; 1045 link->dev_node = &local->node;
1050 link->state &= ~DEV_CONFIG_PENDING; 1046 link->state &= ~DEV_CONFIG_PENDING;
1051 SET_NETDEV_DEV(dev, &handle_to_dev(handle)); 1047 SET_NETDEV_DEV(dev, &handle_to_dev(link));
1052 1048
1053 if ((err=register_netdev(dev))) { 1049 if ((err=register_netdev(dev))) {
1054 printk(KNOT_XIRC "register_netdev() failed\n"); 1050 printk(KNOT_XIRC "register_netdev() failed\n");
@@ -1084,7 +1080,7 @@ xirc2ps_config(dev_link_t * link)
1084 * still open, this will be postponed until it is closed. 1080 * still open, this will be postponed until it is closed.
1085 */ 1081 */
1086static void 1082static void
1087xirc2ps_release(dev_link_t *link) 1083xirc2ps_release(struct pcmcia_device *link)
1088{ 1084{
1089 DEBUG(0, "release(0x%p)\n", link); 1085 DEBUG(0, "release(0x%p)\n", link);
1090 1086
@@ -1094,15 +1090,14 @@ xirc2ps_release(dev_link_t *link)
1094 if (local->dingo) 1090 if (local->dingo)
1095 iounmap(local->dingo_ccr - 0x0800); 1091 iounmap(local->dingo_ccr - 0x0800);
1096 } 1092 }
1097 pcmcia_disable_device(link->handle); 1093 pcmcia_disable_device(link);
1098} /* xirc2ps_release */ 1094} /* xirc2ps_release */
1099 1095
1100/*====================================================================*/ 1096/*====================================================================*/
1101 1097
1102 1098
1103static int xirc2ps_suspend(struct pcmcia_device *p_dev) 1099static int xirc2ps_suspend(struct pcmcia_device *link)
1104{ 1100{
1105 dev_link_t *link = dev_to_instance(p_dev);
1106 struct net_device *dev = link->priv; 1101 struct net_device *dev = link->priv;
1107 1102
1108 if ((link->state & DEV_CONFIG) && (link->open)) { 1103 if ((link->state & DEV_CONFIG) && (link->open)) {
@@ -1113,9 +1108,8 @@ static int xirc2ps_suspend(struct pcmcia_device *p_dev)
1113 return 0; 1108 return 0;
1114} 1109}
1115 1110
1116static int xirc2ps_resume(struct pcmcia_device *p_dev) 1111static int xirc2ps_resume(struct pcmcia_device *link)
1117{ 1112{
1118 dev_link_t *link = dev_to_instance(p_dev);
1119 struct net_device *dev = link->priv; 1113 struct net_device *dev = link->priv;
1120 1114
1121 if ((link->state & DEV_CONFIG) && (link->open)) { 1115 if ((link->state & DEV_CONFIG) && (link->open)) {
@@ -1534,7 +1528,7 @@ static int
1534do_open(struct net_device *dev) 1528do_open(struct net_device *dev)
1535{ 1529{
1536 local_info_t *lp = netdev_priv(dev); 1530 local_info_t *lp = netdev_priv(dev);
1537 dev_link_t *link = lp->p_dev; 1531 struct pcmcia_device *link = lp->p_dev;
1538 1532
1539 DEBUG(0, "do_open(%p)\n", dev); 1533 DEBUG(0, "do_open(%p)\n", dev);
1540 1534
@@ -1864,7 +1858,7 @@ do_stop(struct net_device *dev)
1864{ 1858{
1865 kio_addr_t ioaddr = dev->base_addr; 1859 kio_addr_t ioaddr = dev->base_addr;
1866 local_info_t *lp = netdev_priv(dev); 1860 local_info_t *lp = netdev_priv(dev);
1867 dev_link_t *link = lp->p_dev; 1861 struct pcmcia_device *link = lp->p_dev;
1868 1862
1869 DEBUG(0, "do_stop(%p)\n", dev); 1863 DEBUG(0, "do_stop(%p)\n", dev);
1870 1864