diff options
| -rw-r--r-- | drivers/sn/ioc3.c | 18 | ||||
| -rw-r--r-- | include/linux/ioc3.h | 2 |
2 files changed, 10 insertions, 10 deletions
diff --git a/drivers/sn/ioc3.c b/drivers/sn/ioc3.c index c70ae81b5d98..12357e1fa558 100644 --- a/drivers/sn/ioc3.c +++ b/drivers/sn/ioc3.c | |||
| @@ -38,10 +38,10 @@ static inline unsigned mcr_pack(unsigned pulse, unsigned sample) | |||
| 38 | 38 | ||
| 39 | static int nic_wait(struct ioc3_driver_data *idd) | 39 | static int nic_wait(struct ioc3_driver_data *idd) |
| 40 | { | 40 | { |
| 41 | volatile unsigned mcr; | 41 | unsigned mcr; |
| 42 | 42 | ||
| 43 | do { | 43 | do { |
| 44 | mcr = (volatile unsigned)idd->vma->mcr; | 44 | mcr = readl(&idd->vma->mcr); |
| 45 | } while (!(mcr & 2)); | 45 | } while (!(mcr & 2)); |
| 46 | 46 | ||
| 47 | return mcr & 1; | 47 | return mcr & 1; |
| @@ -53,7 +53,7 @@ static int nic_reset(struct ioc3_driver_data *idd) | |||
| 53 | unsigned long flags; | 53 | unsigned long flags; |
| 54 | 54 | ||
| 55 | local_irq_save(flags); | 55 | local_irq_save(flags); |
| 56 | idd->vma->mcr = mcr_pack(500, 65); | 56 | writel(mcr_pack(500, 65), &idd->vma->mcr); |
| 57 | presence = nic_wait(idd); | 57 | presence = nic_wait(idd); |
| 58 | local_irq_restore(flags); | 58 | local_irq_restore(flags); |
| 59 | 59 | ||
| @@ -68,7 +68,7 @@ static inline int nic_read_bit(struct ioc3_driver_data *idd) | |||
| 68 | unsigned long flags; | 68 | unsigned long flags; |
| 69 | 69 | ||
| 70 | local_irq_save(flags); | 70 | local_irq_save(flags); |
| 71 | idd->vma->mcr = mcr_pack(6, 13); | 71 | writel(mcr_pack(6, 13), &idd->vma->mcr); |
| 72 | result = nic_wait(idd); | 72 | result = nic_wait(idd); |
| 73 | local_irq_restore(flags); | 73 | local_irq_restore(flags); |
| 74 | 74 | ||
| @@ -80,9 +80,9 @@ static inline int nic_read_bit(struct ioc3_driver_data *idd) | |||
| 80 | static inline void nic_write_bit(struct ioc3_driver_data *idd, int bit) | 80 | static inline void nic_write_bit(struct ioc3_driver_data *idd, int bit) |
| 81 | { | 81 | { |
| 82 | if (bit) | 82 | if (bit) |
| 83 | idd->vma->mcr = mcr_pack(6, 110); | 83 | writel(mcr_pack(6, 110), &idd->vma->mcr); |
| 84 | else | 84 | else |
| 85 | idd->vma->mcr = mcr_pack(80, 30); | 85 | writel(mcr_pack(80, 30), &idd->vma->mcr); |
| 86 | 86 | ||
| 87 | nic_wait(idd); | 87 | nic_wait(idd); |
| 88 | } | 88 | } |
| @@ -337,7 +337,7 @@ static void probe_nic(struct ioc3_driver_data *idd) | |||
| 337 | int save = 0, loops = 3; | 337 | int save = 0, loops = 3; |
| 338 | unsigned long first, addr; | 338 | unsigned long first, addr; |
| 339 | 339 | ||
| 340 | idd->vma->gpcr_s = GPCR_MLAN_EN; | 340 | writel(GPCR_MLAN_EN, &idd->vma->gpcr_s); |
| 341 | 341 | ||
| 342 | while(loops>0) { | 342 | while(loops>0) { |
| 343 | idd->nic_part[0] = 0; | 343 | idd->nic_part[0] = 0; |
| @@ -408,7 +408,7 @@ static irqreturn_t ioc3_intr_io(int irq, void *arg, struct pt_regs *regs) | |||
| 408 | 408 | ||
| 409 | read_lock_irqsave(&ioc3_submodules_lock, flags); | 409 | read_lock_irqsave(&ioc3_submodules_lock, flags); |
| 410 | 410 | ||
| 411 | if(idd->dual_irq && idd->vma->eisr) { | 411 | if(idd->dual_irq && readb(&idd->vma->eisr)) { |
| 412 | /* send Ethernet IRQ to the driver */ | 412 | /* send Ethernet IRQ to the driver */ |
| 413 | if(ioc3_ethernet && idd->active[ioc3_ethernet->id] && | 413 | if(ioc3_ethernet && idd->active[ioc3_ethernet->id] && |
| 414 | ioc3_ethernet->intr) { | 414 | ioc3_ethernet->intr) { |
| @@ -682,7 +682,7 @@ static int ioc3_probe(struct pci_dev *pdev, const struct pci_device_id *pci_id) | |||
| 682 | idd->id = ioc3_counter++; | 682 | idd->id = ioc3_counter++; |
| 683 | up_write(&ioc3_devices_rwsem); | 683 | up_write(&ioc3_devices_rwsem); |
| 684 | 684 | ||
| 685 | idd->gpdr_shadow = idd->vma->gpdr; | 685 | idd->gpdr_shadow = readl(&idd->vma->gpdr); |
| 686 | 686 | ||
| 687 | /* Read IOC3 NIC contents */ | 687 | /* Read IOC3 NIC contents */ |
| 688 | probe_nic(idd); | 688 | probe_nic(idd); |
diff --git a/include/linux/ioc3.h b/include/linux/ioc3.h index e7906a72a4f1..da7c09e4ede6 100644 --- a/include/linux/ioc3.h +++ b/include/linux/ioc3.h | |||
| @@ -27,7 +27,7 @@ struct ioc3_driver_data { | |||
| 27 | int id; /* IOC3 sequence number */ | 27 | int id; /* IOC3 sequence number */ |
| 28 | /* PCI mapping */ | 28 | /* PCI mapping */ |
| 29 | unsigned long pma; /* physical address */ | 29 | unsigned long pma; /* physical address */ |
| 30 | struct __iomem ioc3 *vma; /* pointer to registers */ | 30 | struct ioc3 __iomem *vma; /* pointer to registers */ |
| 31 | struct pci_dev *pdev; /* PCI device */ | 31 | struct pci_dev *pdev; /* PCI device */ |
| 32 | /* IRQ stuff */ | 32 | /* IRQ stuff */ |
| 33 | int dual_irq; /* set if separate IRQs are used */ | 33 | int dual_irq; /* set if separate IRQs are used */ |
