atp870u: Remove workport
Remove workport temporary variable to simplify the code. Signed-off-by: Ondrej Zary <linux@rainbow-software.org> Reviewed-by: Hannes Reinicke <hare@suse.de> Acked-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
d282e2b383
commit
c43cd036e5
1 changed files with 28 additions and 31 deletions
|
@ -51,7 +51,7 @@ static irqreturn_t atp870u_intr_handle(int irq, void *dev_id)
|
||||||
unsigned char i, j, c, target_id, lun,cmdp;
|
unsigned char i, j, c, target_id, lun,cmdp;
|
||||||
unsigned char *prd;
|
unsigned char *prd;
|
||||||
struct scsi_cmnd *workreq;
|
struct scsi_cmnd *workreq;
|
||||||
unsigned int workport, tmport, tmport1;
|
unsigned int tmport, tmport1;
|
||||||
unsigned long adrcnt, k;
|
unsigned long adrcnt, k;
|
||||||
#ifdef ED_DBGP
|
#ifdef ED_DBGP
|
||||||
unsigned long l;
|
unsigned long l;
|
||||||
|
@ -76,10 +76,9 @@ static irqreturn_t atp870u_intr_handle(int irq, void *dev_id)
|
||||||
#endif
|
#endif
|
||||||
dev->in_int[c] = 1;
|
dev->in_int[c] = 1;
|
||||||
cmdp = inb(dev->ioport[c] + 0x10);
|
cmdp = inb(dev->ioport[c] + 0x10);
|
||||||
workport = dev->ioport[c];
|
|
||||||
if (dev->working[c] != 0) {
|
if (dev->working[c] != 0) {
|
||||||
if (dev->dev_id == ATP885_DEVID) {
|
if (dev->dev_id == ATP885_DEVID) {
|
||||||
tmport1 = workport + 0x16;
|
tmport1 = dev->ioport[c] + 0x16;
|
||||||
if ((inb(tmport1) & 0x80) == 0)
|
if ((inb(tmport1) & 0x80) == 0)
|
||||||
outb((inb(tmport1) | 0x80), tmport1);
|
outb((inb(tmport1) | 0x80), tmport1);
|
||||||
}
|
}
|
||||||
|
@ -160,7 +159,7 @@ static irqreturn_t atp870u_intr_handle(int irq, void *dev_id)
|
||||||
* Flip wide
|
* Flip wide
|
||||||
*/
|
*/
|
||||||
if (dev->wide_id[c] != 0) {
|
if (dev->wide_id[c] != 0) {
|
||||||
tmport = workport + 0x1b;
|
tmport = dev->ioport[c] + 0x1b;
|
||||||
outb(0x01, tmport);
|
outb(0x01, tmport);
|
||||||
while ((inb(tmport) & 0x01) != 0x01) {
|
while ((inb(tmport) & 0x01) != 0x01) {
|
||||||
outb(0x01, tmport);
|
outb(0x01, tmport);
|
||||||
|
@ -276,9 +275,9 @@ static irqreturn_t atp870u_intr_handle(int irq, void *dev_id)
|
||||||
if (dev->dev_id == ATP885_DEVID) {
|
if (dev->dev_id == ATP885_DEVID) {
|
||||||
j = inb(dev->baseport + 0x29) & 0xfe;
|
j = inb(dev->baseport + 0x29) & 0xfe;
|
||||||
outb(j, dev->baseport + 0x29);
|
outb(j, dev->baseport + 0x29);
|
||||||
tmport = workport + 0x16;
|
tmport = dev->ioport[c] + 0x16;
|
||||||
} else {
|
} else {
|
||||||
tmport = workport + 0x10;
|
tmport = dev->ioport[c] + 0x10;
|
||||||
outb(0x45, tmport);
|
outb(0x45, tmport);
|
||||||
tmport += 0x06;
|
tmport += 0x06;
|
||||||
}
|
}
|
||||||
|
@ -293,7 +292,7 @@ static irqreturn_t atp870u_intr_handle(int irq, void *dev_id)
|
||||||
target_id &= 0x07;
|
target_id &= 0x07;
|
||||||
}
|
}
|
||||||
if (dev->dev_id == ATP885_DEVID) {
|
if (dev->dev_id == ATP885_DEVID) {
|
||||||
tmport = workport + 0x10;
|
tmport = dev->ioport[c] + 0x10;
|
||||||
outb(0x45, tmport);
|
outb(0x45, tmport);
|
||||||
}
|
}
|
||||||
workreq = dev->id[c][target_id].curr_req;
|
workreq = dev->id[c][target_id].curr_req;
|
||||||
|
@ -304,7 +303,7 @@ static irqreturn_t atp870u_intr_handle(int irq, void *dev_id)
|
||||||
printk("\n");
|
printk("\n");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
tmport = workport + 0x0f;
|
tmport = dev->ioport[c] + 0x0f;
|
||||||
outb(lun, tmport);
|
outb(lun, tmport);
|
||||||
tmport += 0x02;
|
tmport += 0x02;
|
||||||
outb(dev->id[c][target_id].devsp, tmport++);
|
outb(dev->id[c][target_id].devsp, tmport++);
|
||||||
|
@ -338,21 +337,21 @@ static irqreturn_t atp870u_intr_handle(int irq, void *dev_id)
|
||||||
outb(i,tmpcip);
|
outb(i,tmpcip);
|
||||||
} else if ((dev->dev_id == ATP880_DEVID1) ||
|
} else if ((dev->dev_id == ATP880_DEVID1) ||
|
||||||
(dev->dev_id == ATP880_DEVID2) ) {
|
(dev->dev_id == ATP880_DEVID2) ) {
|
||||||
tmport = workport - 0x05;
|
tmport = dev->ioport[c] - 0x05;
|
||||||
if ((workreq->cmnd[0] == 0x08) || (workreq->cmnd[0] == 0x28) || (workreq->cmnd[0] == 0x0a) || (workreq->cmnd[0] == 0x2a)) {
|
if ((workreq->cmnd[0] == 0x08) || (workreq->cmnd[0] == 0x28) || (workreq->cmnd[0] == 0x0a) || (workreq->cmnd[0] == 0x2a)) {
|
||||||
outb((unsigned char) ((inb(tmport) & 0x3f) | 0xc0), tmport);
|
outb((unsigned char) ((inb(tmport) & 0x3f) | 0xc0), tmport);
|
||||||
} else {
|
} else {
|
||||||
outb((unsigned char) (inb(tmport) & 0x3f), tmport);
|
outb((unsigned char) (inb(tmport) & 0x3f), tmport);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
tmport = workport + 0x3a;
|
tmport = dev->ioport[c] + 0x3a;
|
||||||
if ((workreq->cmnd[0] == 0x08) || (workreq->cmnd[0] == 0x28) || (workreq->cmnd[0] == 0x0a) || (workreq->cmnd[0] == 0x2a)) {
|
if ((workreq->cmnd[0] == 0x08) || (workreq->cmnd[0] == 0x28) || (workreq->cmnd[0] == 0x0a) || (workreq->cmnd[0] == 0x2a)) {
|
||||||
outb((unsigned char) ((inb(tmport) & 0xf3) | 0x08), tmport);
|
outb((unsigned char) ((inb(tmport) & 0xf3) | 0x08), tmport);
|
||||||
} else {
|
} else {
|
||||||
outb((unsigned char) (inb(tmport) & 0xf3), tmport);
|
outb((unsigned char) (inb(tmport) & 0xf3), tmport);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
tmport = workport + 0x1b;
|
tmport = dev->ioport[c] + 0x1b;
|
||||||
j = 0;
|
j = 0;
|
||||||
id = 1;
|
id = 1;
|
||||||
id = id << target_id;
|
id = id << target_id;
|
||||||
|
@ -367,7 +366,7 @@ static irqreturn_t atp870u_intr_handle(int irq, void *dev_id)
|
||||||
outb(j,tmport);
|
outb(j,tmport);
|
||||||
}
|
}
|
||||||
if (dev->id[c][target_id].last_len == 0) {
|
if (dev->id[c][target_id].last_len == 0) {
|
||||||
tmport = workport + 0x18;
|
tmport = dev->ioport[c] + 0x18;
|
||||||
outb(0x08, tmport);
|
outb(0x08, tmport);
|
||||||
dev->in_int[c] = 0;
|
dev->in_int[c] = 0;
|
||||||
#ifdef ED_DBGP
|
#ifdef ED_DBGP
|
||||||
|
@ -414,7 +413,7 @@ static irqreturn_t atp870u_intr_handle(int irq, void *dev_id)
|
||||||
outb(0x00, tmpcip);
|
outb(0x00, tmpcip);
|
||||||
tmpcip -= 0x02;
|
tmpcip -= 0x02;
|
||||||
}
|
}
|
||||||
tmport = workport + 0x18;
|
tmport = dev->ioport[c] + 0x18;
|
||||||
/*
|
/*
|
||||||
* Check transfer direction
|
* Check transfer direction
|
||||||
*/
|
*/
|
||||||
|
@ -488,7 +487,7 @@ static irqreturn_t atp870u_intr_handle(int irq, void *dev_id)
|
||||||
* Take it back wide
|
* Take it back wide
|
||||||
*/
|
*/
|
||||||
if (dev->wide_id[c] != 0) {
|
if (dev->wide_id[c] != 0) {
|
||||||
tmport = workport + 0x1b;
|
tmport = dev->ioport[c] + 0x1b;
|
||||||
outb(0x01, tmport);
|
outb(0x01, tmport);
|
||||||
while ((inb(tmport) & 0x01) != 0x01) {
|
while ((inb(tmport) & 0x01) != 0x01) {
|
||||||
outb(0x01, tmport);
|
outb(0x01, tmport);
|
||||||
|
@ -523,7 +522,7 @@ static irqreturn_t atp870u_intr_handle(int irq, void *dev_id)
|
||||||
outb(0x06, tmpcip);
|
outb(0x06, tmpcip);
|
||||||
outb(0x00, tmpcip);
|
outb(0x00, tmpcip);
|
||||||
tmpcip = tmpcip - 2;
|
tmpcip = tmpcip - 2;
|
||||||
tmport = workport + 0x10;
|
tmport = dev->ioport[c] + 0x10;
|
||||||
outb(0x41, tmport);
|
outb(0x41, tmport);
|
||||||
if (dev->dev_id == ATP885_DEVID) {
|
if (dev->dev_id == ATP885_DEVID) {
|
||||||
tmport += 2;
|
tmport += 2;
|
||||||
|
@ -549,7 +548,7 @@ static irqreturn_t atp870u_intr_handle(int irq, void *dev_id)
|
||||||
outb(0x06, tmpcip);
|
outb(0x06, tmpcip);
|
||||||
outb(0x00, tmpcip);
|
outb(0x00, tmpcip);
|
||||||
tmpcip = tmpcip - 2;
|
tmpcip = tmpcip - 2;
|
||||||
tmport = workport + 0x10;
|
tmport = dev->ioport[c] + 0x10;
|
||||||
outb(0x41, tmport);
|
outb(0x41, tmport);
|
||||||
if (dev->dev_id == ATP885_DEVID) {
|
if (dev->dev_id == ATP885_DEVID) {
|
||||||
tmport += 2;
|
tmport += 2;
|
||||||
|
@ -584,7 +583,7 @@ static irqreturn_t atp870u_intr_handle(int irq, void *dev_id)
|
||||||
dev->in_int[c] = 0;
|
dev->in_int[c] = 0;
|
||||||
goto handled;
|
goto handled;
|
||||||
} else {
|
} else {
|
||||||
// tmport = workport + 0x17;
|
// tmport = dev->ioport[c] + 0x17;
|
||||||
// inb(tmport);
|
// inb(tmport);
|
||||||
// dev->working[c] = 0;
|
// dev->working[c] = 0;
|
||||||
dev->in_int[c] = 0;
|
dev->in_int[c] = 0;
|
||||||
|
@ -713,7 +712,6 @@ static void send_s870(struct atp_unit *dev,unsigned char c)
|
||||||
unsigned char *prd;
|
unsigned char *prd;
|
||||||
unsigned short int tmpcip, w;
|
unsigned short int tmpcip, w;
|
||||||
unsigned long l, bttl = 0;
|
unsigned long l, bttl = 0;
|
||||||
unsigned int workport;
|
|
||||||
unsigned long sg_count;
|
unsigned long sg_count;
|
||||||
|
|
||||||
if (dev->in_snd[c] != 0) {
|
if (dev->in_snd[c] != 0) {
|
||||||
|
@ -759,12 +757,11 @@ static void send_s870(struct atp_unit *dev,unsigned char c)
|
||||||
dev->in_snd[c] = 0;
|
dev->in_snd[c] = 0;
|
||||||
return;
|
return;
|
||||||
cmd_subp:
|
cmd_subp:
|
||||||
workport = dev->ioport[c];
|
tmport = dev->ioport[c] + 0x1f;
|
||||||
tmport = workport + 0x1f;
|
|
||||||
if ((inb(tmport) & 0xb0) != 0) {
|
if ((inb(tmport) & 0xb0) != 0) {
|
||||||
goto abortsnd;
|
goto abortsnd;
|
||||||
}
|
}
|
||||||
tmport = workport + 0x1c;
|
tmport = dev->ioport[c] + 0x1c;
|
||||||
if (inb(tmport) == 0) {
|
if (inb(tmport) == 0) {
|
||||||
goto oktosend;
|
goto oktosend;
|
||||||
}
|
}
|
||||||
|
@ -800,7 +797,7 @@ static void send_s870(struct atp_unit *dev,unsigned char c)
|
||||||
l = 0;
|
l = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
tmport = workport + 0x1b;
|
tmport = dev->ioport[c] + 0x1b;
|
||||||
j = 0;
|
j = 0;
|
||||||
target_id = scmd_id(workreq);
|
target_id = scmd_id(workreq);
|
||||||
|
|
||||||
|
@ -823,7 +820,7 @@ static void send_s870(struct atp_unit *dev,unsigned char c)
|
||||||
* Write the command
|
* Write the command
|
||||||
*/
|
*/
|
||||||
|
|
||||||
tmport = workport;
|
tmport = dev->ioport[c];
|
||||||
outb(workreq->cmd_len, tmport++);
|
outb(workreq->cmd_len, tmport++);
|
||||||
outb(0x2c, tmport++);
|
outb(0x2c, tmport++);
|
||||||
if (dev->dev_id == ATP885_DEVID) {
|
if (dev->dev_id == ATP885_DEVID) {
|
||||||
|
@ -834,7 +831,7 @@ static void send_s870(struct atp_unit *dev,unsigned char c)
|
||||||
for (i = 0; i < workreq->cmd_len; i++) {
|
for (i = 0; i < workreq->cmd_len; i++) {
|
||||||
outb(workreq->cmnd[i], tmport++);
|
outb(workreq->cmnd[i], tmport++);
|
||||||
}
|
}
|
||||||
tmport = workport + 0x0f;
|
tmport = dev->ioport[c] + 0x0f;
|
||||||
outb(workreq->device->lun, tmport);
|
outb(workreq->device->lun, tmport);
|
||||||
tmport += 0x02;
|
tmport += 0x02;
|
||||||
/*
|
/*
|
||||||
|
@ -874,11 +871,11 @@ static void send_s870(struct atp_unit *dev,unsigned char c)
|
||||||
}
|
}
|
||||||
outb((unsigned char) (inb(tmport) | 0x80), tmport);
|
outb((unsigned char) (inb(tmport) | 0x80), tmport);
|
||||||
outb(0x80, tmport);
|
outb(0x80, tmport);
|
||||||
tmport = workport + 0x1c;
|
tmport = dev->ioport[c] + 0x1c;
|
||||||
dev->id[c][target_id].dirct = 0;
|
dev->id[c][target_id].dirct = 0;
|
||||||
if (l == 0) {
|
if (l == 0) {
|
||||||
if (inb(tmport) == 0) {
|
if (inb(tmport) == 0) {
|
||||||
tmport = workport + 0x18;
|
tmport = dev->ioport[c] + 0x18;
|
||||||
#ifdef ED_DBGP
|
#ifdef ED_DBGP
|
||||||
printk("change SCSI_CMD_REG 0x08\n");
|
printk("change SCSI_CMD_REG 0x08\n");
|
||||||
#endif
|
#endif
|
||||||
|
@ -947,7 +944,7 @@ static void send_s870(struct atp_unit *dev,unsigned char c)
|
||||||
} else if ((dev->dev_id == ATP880_DEVID1) ||
|
} else if ((dev->dev_id == ATP880_DEVID1) ||
|
||||||
(dev->dev_id == ATP880_DEVID2)) {
|
(dev->dev_id == ATP880_DEVID2)) {
|
||||||
tmpcip =tmpcip -2;
|
tmpcip =tmpcip -2;
|
||||||
tmport = workport - 0x05;
|
tmport = dev->ioport[c] - 0x05;
|
||||||
if ((workreq->cmnd[0] == 0x08) || (workreq->cmnd[0] == 0x28) || (workreq->cmnd[0] == 0x0a) || (workreq->cmnd[0] == 0x2a)) {
|
if ((workreq->cmnd[0] == 0x08) || (workreq->cmnd[0] == 0x28) || (workreq->cmnd[0] == 0x0a) || (workreq->cmnd[0] == 0x2a)) {
|
||||||
outb((unsigned char) ((inb(tmport) & 0x3f) | 0xc0), tmport);
|
outb((unsigned char) ((inb(tmport) & 0x3f) | 0xc0), tmport);
|
||||||
} else {
|
} else {
|
||||||
|
@ -955,19 +952,19 @@ static void send_s870(struct atp_unit *dev,unsigned char c)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
tmpcip =tmpcip -2;
|
tmpcip =tmpcip -2;
|
||||||
tmport = workport + 0x3a;
|
tmport = dev->ioport[c] + 0x3a;
|
||||||
if ((workreq->cmnd[0] == 0x08) || (workreq->cmnd[0] == 0x28) || (workreq->cmnd[0] == 0x0a) || (workreq->cmnd[0] == 0x2a)) {
|
if ((workreq->cmnd[0] == 0x08) || (workreq->cmnd[0] == 0x28) || (workreq->cmnd[0] == 0x0a) || (workreq->cmnd[0] == 0x2a)) {
|
||||||
outb((inb(tmport) & 0xf3) | 0x08, tmport);
|
outb((inb(tmport) & 0xf3) | 0x08, tmport);
|
||||||
} else {
|
} else {
|
||||||
outb(inb(tmport) & 0xf3, tmport);
|
outb(inb(tmport) & 0xf3, tmport);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
tmport = workport + 0x1c;
|
tmport = dev->ioport[c] + 0x1c;
|
||||||
|
|
||||||
if(workreq->sc_data_direction == DMA_TO_DEVICE) {
|
if(workreq->sc_data_direction == DMA_TO_DEVICE) {
|
||||||
dev->id[c][target_id].dirct = 0x20;
|
dev->id[c][target_id].dirct = 0x20;
|
||||||
if (inb(tmport) == 0) {
|
if (inb(tmport) == 0) {
|
||||||
tmport = workport + 0x18;
|
tmport = dev->ioport[c] + 0x18;
|
||||||
outb(0x08, tmport);
|
outb(0x08, tmport);
|
||||||
outb(0x01, tmpcip);
|
outb(0x01, tmpcip);
|
||||||
#ifdef ED_DBGP
|
#ifdef ED_DBGP
|
||||||
|
@ -980,7 +977,7 @@ static void send_s870(struct atp_unit *dev,unsigned char c)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (inb(tmport) == 0) {
|
if (inb(tmport) == 0) {
|
||||||
tmport = workport + 0x18;
|
tmport = dev->ioport[c] + 0x18;
|
||||||
outb(0x08, tmport);
|
outb(0x08, tmport);
|
||||||
outb(0x09, tmpcip);
|
outb(0x09, tmpcip);
|
||||||
#ifdef ED_DBGP
|
#ifdef ED_DBGP
|
||||||
|
|
Loading…
Reference in a new issue