aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/pcmcia/sym53c500_cs.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/pcmcia/sym53c500_cs.c')
-rw-r--r--drivers/scsi/pcmcia/sym53c500_cs.c31
1 files changed, 15 insertions, 16 deletions
diff --git a/drivers/scsi/pcmcia/sym53c500_cs.c b/drivers/scsi/pcmcia/sym53c500_cs.c
index a51164171179..321e390c9120 100644
--- a/drivers/scsi/pcmcia/sym53c500_cs.c
+++ b/drivers/scsi/pcmcia/sym53c500_cs.c
@@ -71,7 +71,6 @@
71#include <scsi/scsi.h> 71#include <scsi/scsi.h>
72#include <scsi/scsi_host.h> 72#include <scsi/scsi_host.h>
73 73
74#include <pcmcia/cs_types.h>
75#include <pcmcia/cs.h> 74#include <pcmcia/cs.h>
76#include <pcmcia/cistpl.h> 75#include <pcmcia/cistpl.h>
77#include <pcmcia/ds.h> 76#include <pcmcia/ds.h>
@@ -691,13 +690,14 @@ static int SYM53C500_config_check(struct pcmcia_device *p_dev,
691 unsigned int vcc, 690 unsigned int vcc,
692 void *priv_data) 691 void *priv_data)
693{ 692{
694 p_dev->io.BasePort1 = cfg->io.win[0].base; 693 p_dev->io_lines = 10;
695 p_dev->io.NumPorts1 = cfg->io.win[0].len; 694 p_dev->resource[0]->start = cfg->io.win[0].base;
695 p_dev->resource[0]->end = cfg->io.win[0].len;
696 696
697 if (p_dev->io.BasePort1 == 0) 697 if (p_dev->resource[0]->start == 0)
698 return -ENODEV; 698 return -ENODEV;
699 699
700 return pcmcia_request_io(p_dev, &p_dev->io); 700 return pcmcia_request_io(p_dev);
701} 701}
702 702
703static int 703static int
@@ -734,9 +734,9 @@ SYM53C500_config(struct pcmcia_device *link)
734 (info->manf_id == MANFID_PIONEER) || 734 (info->manf_id == MANFID_PIONEER) ||
735 (info->manf_id == 0x0098)) { 735 (info->manf_id == 0x0098)) {
736 /* set ATAcmd */ 736 /* set ATAcmd */
737 outb(0xb4, link->io.BasePort1 + 0xd); 737 outb(0xb4, link->resource[0]->start + 0xd);
738 outb(0x24, link->io.BasePort1 + 0x9); 738 outb(0x24, link->resource[0]->start + 0x9);
739 outb(0x04, link->io.BasePort1 + 0xd); 739 outb(0x04, link->resource[0]->start + 0xd);
740 } 740 }
741 741
742 /* 742 /*
@@ -749,7 +749,7 @@ SYM53C500_config(struct pcmcia_device *link)
749 * 0x130, 0x230, 0x280, 0x290, 749 * 0x130, 0x230, 0x280, 0x290,
750 * 0x320, 0x330, 0x340, 0x350 750 * 0x320, 0x330, 0x340, 0x350
751 */ 751 */
752 port_base = link->io.BasePort1; 752 port_base = link->resource[0]->start;
753 irq_level = link->irq; 753 irq_level = link->irq;
754 754
755 DEB(printk("SYM53C500: port_base=0x%x, irq=%d, fast_pio=%d\n", 755 DEB(printk("SYM53C500: port_base=0x%x, irq=%d, fast_pio=%d\n",
@@ -822,15 +822,15 @@ static int sym53c500_resume(struct pcmcia_device *link)
822 if ((info->manf_id == MANFID_MACNICA) || 822 if ((info->manf_id == MANFID_MACNICA) ||
823 (info->manf_id == MANFID_PIONEER) || 823 (info->manf_id == MANFID_PIONEER) ||
824 (info->manf_id == 0x0098)) { 824 (info->manf_id == 0x0098)) {
825 outb(0x80, link->io.BasePort1 + 0xd); 825 outb(0x80, link->resource[0]->start + 0xd);
826 outb(0x24, link->io.BasePort1 + 0x9); 826 outb(0x24, link->resource[0]->start + 0x9);
827 outb(0x04, link->io.BasePort1 + 0xd); 827 outb(0x04, link->resource[0]->start + 0xd);
828 } 828 }
829 /* 829 /*
830 * If things don't work after a "resume", 830 * If things don't work after a "resume",
831 * this is a good place to start looking. 831 * this is a good place to start looking.
832 */ 832 */
833 SYM53C500_int_host_reset(link->io.BasePort1); 833 SYM53C500_int_host_reset(link->resource[0]->start);
834 834
835 return 0; 835 return 0;
836} 836}
@@ -859,9 +859,8 @@ SYM53C500_probe(struct pcmcia_device *link)
859 return -ENOMEM; 859 return -ENOMEM;
860 info->p_dev = link; 860 info->p_dev = link;
861 link->priv = info; 861 link->priv = info;
862 link->io.NumPorts1 = 16; 862 link->resource[0]->end = 16;
863 link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO; 863 link->resource[0]->flags |= IO_DATA_PATH_WIDTH_AUTO;
864 link->io.IOAddrLines = 10;
865 link->conf.Attributes = CONF_ENABLE_IRQ; 864 link->conf.Attributes = CONF_ENABLE_IRQ;
866 link->conf.IntType = INT_MEMORY_AND_IO; 865 link->conf.IntType = INT_MEMORY_AND_IO;
867 866