From: Ondrej Zary <linux@rainbow-software.org>
To: linux-scsi@vger.kernel.org
Subject: [PATCH 08/34] atp870u: Untangle tmport #6
Date: Sun, 3 May 2015 19:31:24 +0200 [thread overview]
Message-ID: <1430674310-11576-9-git-send-email-linux@rainbow-software.org> (raw)
In-Reply-To: <1430674310-11576-1-git-send-email-linux@rainbow-software.org>
Untangle the tmport crap so it becomes obvious what ports are accessed.
Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
---
drivers/scsi/atp870u.c | 136 +++++++++++++++++-------------------------------
1 file changed, 49 insertions(+), 87 deletions(-)
diff --git a/drivers/scsi/atp870u.c b/drivers/scsi/atp870u.c
index bf40ea7..eace0ac 100644
--- a/drivers/scsi/atp870u.c
+++ b/drivers/scsi/atp870u.c
@@ -2264,7 +2264,7 @@ static int atp870u_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
{
unsigned char k, m, c;
unsigned long flags;
- unsigned int base_io, tmport, error,n;
+ unsigned int base_io, error,n;
unsigned char host_id;
struct Scsi_Host *shpnt = NULL;
struct atp_unit *atpdev, *p;
@@ -2322,12 +2322,9 @@ static int atp870u_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
atpdev->dev_id = ent->device;
atpdev->host_id[0] = host_id;
- tmport = base_io + 0x22;
- atpdev->scam_on = inb(tmport);
- tmport += 0x13;
- atpdev->global_map[0] = inb(tmport);
- tmport += 0x07;
- atpdev->ultra_map[0] = inw(tmport);
+ atpdev->scam_on = inb(base_io + 0x22);
+ atpdev->global_map[0] = inb(base_io + 0x35);
+ atpdev->ultra_map[0] = inw(base_io + 0x3c);
n = 0x3f09;
next_fblk_880:
@@ -2402,37 +2399,26 @@ flash_ok_880:
}
spin_lock_irqsave(shpnt->host_lock, flags);
- tmport = base_io + 0x38;
- k = inb(tmport) & 0x80;
- outb(k, tmport);
- tmport += 0x03;
- outb(0x20, tmport);
+ k = inb(base_io + 0x38) & 0x80;
+ outb(k, base_io + 0x38);
+ outb(0x20, base_io + 0x3b);
mdelay(32);
- outb(0, tmport);
+ outb(0, base_io + 0x3b);
mdelay(32);
- tmport = base_io + 0x5b;
- inb(tmport);
- tmport -= 0x04;
- inb(tmport);
- tmport = base_io + 0x40;
- outb((host_id | 0x08), tmport);
- tmport += 0x18;
- outb(0, tmport);
- tmport += 0x07;
- while ((inb(tmport) & 0x80) == 0)
+ inb(base_io + 0x5b);
+ inb(base_io + 0x57);
+ outb((host_id | 0x08), base_io + 0x40);
+ outb(0, base_io + 0x58);
+ while ((inb(base_io + 0x5f) & 0x80) == 0)
mdelay(1);
- tmport -= 0x08;
- inb(tmport);
- tmport = base_io + 0x41;
- outb(8, tmport++);
- outb(0x7f, tmport);
- tmport = base_io + 0x51;
- outb(0x20, tmport);
+ inb(base_io + 0x57);
+ outb(8, base_io + 0x41);
+ outb(0x7f, base_io + 0x42);
+ outb(0x20, base_io + 0x51);
tscam(shpnt);
is880(p, base_io);
- tmport = base_io + 0x38;
- outb(0xb0, tmport);
+ outb(0xb0, base_io + 0x38);
shpnt->max_id = 16;
shpnt->this_id = host_id;
shpnt->unique_id = base_io;
@@ -2546,47 +2532,35 @@ flash_ok_885:
inb(base_io + 0x97);
inb(base_io + 0xdb);
inb(base_io + 0xd7);
- tmport = base_io + 0x80;
k=p->host_id[0];
if (k > 7)
k = (k & 0x07) | 0x40;
k |= 0x08;
- outb(k, tmport);
- tmport += 0x18;
- outb(0, tmport);
- tmport += 0x07;
+ outb(k, base_io + 0x80);
+ outb(0, base_io + 0x98);
- while ((inb(tmport) & 0x80) == 0)
+ while ((inb(base_io + 0x9f) & 0x80) == 0)
cpu_relax();
- tmport -= 0x08;
- inb(tmport);
- tmport = base_io + 0x81;
- outb(8, tmport++);
- outb(0x7f, tmport);
- tmport = base_io + 0x91;
- outb(0x20, tmport);
+ inb(base_io + 0x97);
+ outb(8, base_io + 0x81);
+ outb(0x7f, base_io + 0x82);
+ outb(0x20, base_io + 0x91);
- tmport = base_io + 0xc0;
k=p->host_id[1];
if (k > 7)
k = (k & 0x07) | 0x40;
k |= 0x08;
- outb(k, tmport);
- tmport += 0x18;
- outb(0, tmport);
- tmport += 0x07;
+ outb(k, base_io + 0xc0);
+ outb(0, base_io + 0xd8);
- while ((inb(tmport) & 0x80) == 0)
+ while ((inb(base_io + 0xdf) & 0x80) == 0)
cpu_relax();
- tmport -= 0x08;
- inb(tmport);
- tmport = base_io + 0xc1;
- outb(8, tmport++);
- outb(0x7f, tmport);
- tmport = base_io + 0xd1;
- outb(0x20, tmport);
+ inb(base_io + 0xd7);
+ outb(8, base_io + 0xc1);
+ outb(0x7f, base_io + 0xc2);
+ outb(0x20, base_io + 0xd1);
tscam_885();
printk(KERN_INFO " Scanning Channel A SCSI Device ...\n");
@@ -2624,11 +2598,9 @@ flash_ok_885:
atpdev->dev_id = ent->device;
host_id &= 0x07;
atpdev->host_id[0] = host_id;
- tmport = base_io + 0x22;
- atpdev->scam_on = inb(tmport);
- tmport += 0x0b;
- atpdev->global_map[0] = inb(tmport++);
- atpdev->ultra_map[0] = inw(tmport);
+ atpdev->scam_on = inb(base_io + 0x22);
+ atpdev->global_map[0] = inb(base_io + 0x2d);
+ atpdev->ultra_map[0] = inw(base_io + 0x2e);
if (atpdev->ultra_map[0] == 0) {
atpdev->scam_on = 0x00;
@@ -2656,39 +2628,29 @@ flash_ok_885:
spin_lock_irqsave(shpnt->host_lock, flags);
if (atpdev->chip_ver > 0x07) { /* check if atp876 chip then enable terminator */
- tmport = base_io + 0x3e;
- outb(0x00, tmport);
+ outb(0x00, base_io + 0x3e);
}
- tmport = base_io + 0x3a;
- k = (inb(tmport) & 0xf3) | 0x10;
- outb(k, tmport);
- outb((k & 0xdf), tmport);
+ k = (inb(base_io + 0x3a) & 0xf3) | 0x10;
+ outb(k, base_io + 0x3a);
+ outb((k & 0xdf), base_io + 0x3a);
mdelay(32);
- outb(k, tmport);
+ outb(k, base_io + 0x3a);
mdelay(32);
- tmport = base_io;
- outb((host_id | 0x08), tmport);
- tmport += 0x18;
- outb(0, tmport);
- tmport += 0x07;
- while ((inb(tmport) & 0x80) == 0)
+ outb((host_id | 0x08), base_io + 0);
+ outb(0, base_io + 0x18);
+ while ((inb(base_io + 0x1f) & 0x80) == 0)
mdelay(1);
- tmport -= 0x08;
- inb(tmport);
- tmport = base_io + 1;
- outb(8, tmport++);
- outb(0x7f, tmport);
- tmport = base_io + 0x11;
- outb(0x20, tmport);
+ inb(base_io + 0x17);
+ outb(8, base_io + 1);
+ outb(0x7f, base_io + 2);
+ outb(0x20, base_io + 0x11);
tscam(shpnt);
is870(p, base_io);
- tmport = base_io + 0x3a;
- outb((inb(tmport) & 0xef), tmport);
- tmport++;
- outb((inb(tmport) | 0x20), tmport);
+ outb((inb(base_io + 0x3a) & 0xef), base_io + 0x3a);
+ outb((inb(base_io + 0x3b) | 0x20), base_io + 0x3b);
if (atpdev->chip_ver == 4)
shpnt->max_id = 16;
else
--
Ondrej Zary
next prev parent reply other threads:[~2015-05-03 17:32 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-03 17:31 [RFC PATCH 00/34] atp870u: Remove the first level of crap Ondrej Zary
2015-05-03 17:31 ` [PATCH 01/34] atp870u: Remove workport Ondrej Zary
2015-05-03 17:31 ` [PATCH 02/34] atp870u: Remove tmport1 Ondrej Zary
2015-05-03 17:31 ` [PATCH 03/34] atp870u: Untangle tmport Ondrej Zary
2015-05-03 17:31 ` [PATCH 04/34] atp870u: Untangle tmport #2 Ondrej Zary
2015-05-03 17:31 ` [PATCH 05/34] atp870u: Untangle tmport #3 Ondrej Zary
2015-05-03 17:31 ` [PATCH 06/34] atp870u: Untangle tmport #4 Ondrej Zary
2015-05-03 17:31 ` [PATCH 07/34] atp870u: Untangle tmport #5 Ondrej Zary
2015-05-03 17:31 ` Ondrej Zary [this message]
2015-05-03 17:31 ` [PATCH 09/34] atp870u: Untangle tmport #7 Ondrej Zary
2015-05-03 17:31 ` [PATCH 10/34] atp870u: Untangle tmport #8 Ondrej Zary
2015-05-03 17:31 ` [PATCH 11/34] atp870u: Untangle tmpcip Ondrej Zary
2015-05-03 17:31 ` [PATCH 12/34] atp870u: Untangle tmpcip #2 Ondrej Zary
2015-05-03 17:31 ` [PATCH 13/34] atp870u: Remove ugly gotos Ondrej Zary
2015-05-03 17:31 ` [PATCH 14/34] atp870u: Remove ugly gotos #2 Ondrej Zary
2015-05-03 17:31 ` [PATCH 15/34] atp870u: Remove ugly gotos #3 Ondrej Zary
2015-05-03 17:31 ` [PATCH 16/34] atp870u: Remove ugly gotos #4 Ondrej Zary
2015-05-03 17:31 ` [PATCH 17/34] atp870u: Remove ugly gotos #5 Ondrej Zary
2015-05-03 17:31 ` [PATCH 18/34] atp870u: Introduce HW access wrappers Ondrej Zary
2015-05-03 17:31 ` [PATCH 19/34] atp870u: Convert is870() to use wrappers Ondrej Zary
2015-05-03 17:31 ` [PATCH 20/34] atp870u: Convert is880() " Ondrej Zary
2015-05-03 17:31 ` [PATCH 21/34] atp870u: Convert is885() " Ondrej Zary
2015-05-03 17:31 ` [PATCH 22/34] atp870u: Unify code format in is870(), is880() and is885() Ondrej Zary
2015-05-03 17:31 ` [PATCH 23/34] atp870u: Add channel parameter to is870() and is880() Ondrej Zary
2015-05-03 17:31 ` [PATCH 24/34] atp870u: Move chip-specific lines out of is880() and is885() Ondrej Zary
2015-05-03 17:31 ` [PATCH 25/34] atp870u: Remove is880() Ondrej Zary
2015-05-03 17:31 ` [PATCH 26/34] atp870u: Add wide_chip parameter to is870() and is885() Ondrej Zary
2015-05-03 17:31 ` [PATCH 27/34] atp870u: Add remaining 870 support to is885() Ondrej Zary
2015-05-03 17:31 ` [PATCH 28/34] atp870u: Move 870-specific code out of is870() Ondrej Zary
2015-05-03 17:31 ` [PATCH 29/34] atp870u: Remove is870() Ondrej Zary
2015-05-03 17:31 ` [PATCH 30/34] atp870u: Rename is885() to atp_is() Ondrej Zary
2015-05-03 17:31 ` [PATCH 31/34] atp870u: Convert remaining in[bwl] and out[bwl] to wrappers Ondrej Zary
2015-05-03 17:31 ` [PATCH 32/34] atp870u: Replace port 0x80 delay by udelay Ondrej Zary
2015-05-03 17:31 ` [PATCH 33/34] atp870u: Fix incorrect writeb_io access to register 0x3a Ondrej Zary
2015-05-03 17:31 ` [PATCH 34/34] atp870u: Introduce atp_set_host_id Ondrej Zary
2015-05-11 9:06 ` [RFC PATCH 00/34] atp870u: Remove the first level of crap Christoph Hellwig
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1430674310-11576-9-git-send-email-linux@rainbow-software.org \
--to=linux@rainbow-software.org \
--cc=linux-scsi@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).