26 Nov, 2015
40 commits
-
Use pci_request_regions and do it before accessing the I/O ports.
Also add missing pci_disable_device() call to atp870u_remove().Signed-off-by: Ondrej Zary
Reviewed-by: Hannes Reinicke
Acked-by: Christoph Hellwig
Signed-off-by: Martin K. Petersen -
Introduce chip type inline functions to simplify code, allowing to delete
dev_id from struct atp_unit.Signed-off-by: Ondrej Zary
Reviewed-by: Hannes Reinicke
Acked-by: Christoph Hellwig
Signed-off-by: Martin K. Petersen -
Move shpnt common code to the top, remove base_io, use pci_resource_len.
Signed-off-by: Ondrej Zary
Reviewed-by: Hannes Reinicke
Acked-by: Christoph Hellwig
Signed-off-by: Martin K. Petersen -
chip_ver is used for wide chip detection only. Remove it and use a local
variable instead (for 870; 880 and 885 are always wide).Signed-off-by: Ondrej Zary
Reviewed-by: Hannes Reinicke
Acked-by: Christoph Hellwig
Signed-off-by: Martin K. Petersen -
Signed-off-by: Ondrej Zary
Reviewed-by: Hannes Reinicke
Acked-by: Christoph Hellwig
Signed-off-by: Martin K. Petersen -
Move scsi_host_alloc() to the top of _probe() to remove code duplication,
*p and unneeded atpdev (de)allocation and copying. While at it, fix the
error paths to return real error codes and also add missing
pci_disble_device() call.Signed-off-by: Ondrej Zary
Reviewed-by: Hannes Reinicke
Acked-by: Christoph Hellwig
Signed-off-by: Martin K. Petersen -
Signed-off-by: Ondrej Zary
Reviewed-by: Hannes Reinicke
Acked-by: Christoph Hellwig
Signed-off-by: Martin K. Petersen -
Signed-off-by: Ondrej Zary
Reviewed-by: Hannes Reinicke
Acked-by: Christoph Hellwig
Signed-off-by: Martin K. Petersen -
Signed-off-by: Ondrej Zary
Reviewed-by: Hannes Reinicke
Acked-by: Christoph Hellwig
Signed-off-by: Martin K. Petersen -
Signed-off-by: Ondrej Zary
Reviewed-by: Hannes Reinicke
Acked-by: Christoph Hellwig
Signed-off-by: Martin K. Petersen -
tscam_885() is empty (except a delay) so remove it.
Signed-off-by: Ondrej Zary
Reviewed-by: Hannes Reinicke
Acked-by: Christoph Hellwig
Signed-off-by: Martin K. Petersen -
Signed-off-by: Ondrej Zary
Reviewed-by: Hannes Reinicke
Acked-by: Christoph Hellwig
Signed-off-by: Martin K. Petersen -
The code for setting host adapter ID is the same for all chips.
Move it to a common function.Signed-off-by: Ondrej Zary
Reviewed-by: Hannes Reinicke
Acked-by: Christoph Hellwig
Signed-off-by: Martin K. Petersen -
The ioport region is 0x20 bytes long so accessing 0x3a register using
writeb_io is incorrect. Use writeb_base instead.
There's no change in behavior as 870 chips have ioport = baseport.Signed-off-by: Ondrej Zary
Reviewed-by: Hannes Reinicke
Acked-by: Christoph Hellwig
Signed-off-by: Martin K. Petersen -
tscam() is using port 0x80 access for delays but that's x86-only.
Use udelay(2) instead.Signed-off-by: Ondrej Zary
Reviewed-by: Hannes Reinicke
Acked-by: Christoph Hellwig
Signed-off-by: Martin K. Petersen -
Signed-off-by: Ondrej Zary
Reviewed-by: Hannes Reinicke
Acked-by: Christoph Hellwig
Signed-off-by: Martin K. Petersen -
Now that all the is* functions except is885() are gone, rename is885() to
atp_is() to avoid confusion. Don't know what "is" means, though...Signed-off-by: Ondrej Zary
Reviewed-by: Hannes Reinicke
Acked-by: Christoph Hellwig
Signed-off-by: Martin K. Petersen -
Now that is885() supports everything from is870() and the rest of the code
is almost identical, remove is870() and use is885() instead.Signed-off-by: Ondrej Zary
Reviewed-by: Hannes Reinicke
Acked-by: Christoph Hellwig
Signed-off-by: Martin K. Petersen -
Move few remaining 870-specific code lines out of is870()
Signed-off-by: Ondrej Zary
Reviewed-by: Hannes Reinicke
Acked-by: Christoph Hellwig
Signed-off-by: Martin K. Petersen -
Add remaining 870 support to is885():
- different synw, no synuw
- synu[4] = 0x0c
- atp_writeb_io(dev, c, 0x04, 0x00); instead of
atp_writeb_io(dev, c, 0x14, 0x00); (isn't that a bug?)
- atp_writeb_io(dev, c, 0x14, 0xff); instead of
atp_writeb_io(dev, c, 0x14, 0x06);
- different mbuf[3] and mbuf[4] checksSigned-off-by: Ondrej Zary
Reviewed-by: Hannes Reinicke
Acked-by: Christoph Hellwig
Signed-off-by: Martin K. Petersen -
Don't check chip_ver in is870() but add wide_chip parameter for that.
Then add the non-wide support to is885().Signed-off-by: Ondrej Zary
Reviewed-by: Hannes Reinicke
Acked-by: Christoph Hellwig
Signed-off-by: Martin K. Petersen -
Now that is880() and is885() are almost identical (except for some cpu_relax()
calls and debug printks), remove is880() and use is885() instead.Signed-off-by: Ondrej Zary
Reviewed-by: Hannes Reinicke
Acked-by: Christoph Hellwig
Signed-off-by: Martin K. Petersen -
Move few chip-specifis lines out of is880() and is885() so they become
almost identical.Signed-off-by: Ondrej Zary
Reviewed-by: Hannes Reinicke
Acked-by: Christoph Hellwig
Signed-off-by: Martin K. Petersen -
Add channel parameter to is870() and is880() functions to simplify comparing
them with is885().Signed-off-by: Ondrej Zary
Reviewed-by: Hannes Reinicke
Acked-by: Christoph Hellwig
Signed-off-by: Martin K. Petersen -
Unify code formatting in is870(), is880() and is885() functions to simplify
comparing them.Signed-off-by: Ondrej Zary
Reviewed-by: Hannes Reinicke
Acked-by: Christoph Hellwig
Signed-off-by: Martin K. Petersen -
Signed-off-by: Ondrej Zary
Reviewed-by: Hannes Reinicke
Acked-by: Christoph Hellwig
Signed-off-by: Martin K. Petersen -
Subtract 0x40 to use _io access wrappers. Now it's obvious that is870()
and is880() are very similar.Signed-off-by: Ondrej Zary
Reviewed-by: Hannes Reinicke
Acked-by: Christoph Hellwig
Signed-off-by: Martin K. Petersen -
Signed-off-by: Ondrej Zary
Reviewed-by: Hannes Reinicke
Acked-by: Christoph Hellwig
Signed-off-by: Martin K. Petersen -
Introduce *_read? and *_write? wrappers to improve code readability.
Also make sure that baseport is always initialized, not only for ATP880.Signed-off-by: Ondrej Zary
Reviewed-by: Hannes Reinicke
Acked-by: Christoph Hellwig
Signed-off-by: Martin K. Petersen -
Signed-off-by: Ondrej Zary
Reviewed-by: Hannes Reinicke
Acked-by: Christoph Hellwig
Signed-off-by: Martin K. Petersen -
Signed-off-by: Ondrej Zary
Reviewed-by: Hannes Reinicke
Acked-by: Christoph Hellwig
Signed-off-by: Martin K. Petersen -
Signed-off-by: Ondrej Zary
Reviewed-by: Hannes Reinicke
Acked-by: Christoph Hellwig
Signed-off-by: Martin K. Petersen -
Signed-off-by: Ondrej Zary
Reviewed-by: Hannes Reinicke
Acked-by: Christoph Hellwig
Signed-off-by: Martin K. Petersen -
Signed-off-by: Ondrej Zary
Reviewed-by: Hannes Reinicke
Acked-by: Christoph Hellwig
Signed-off-by: Martin K. Petersen -
Untangle the tmpcip crap so it becomes obvious what ports are accessed.
Signed-off-by: Ondrej Zary
Reviewed-by: Hannes Reinicke
Acked-by: Christoph Hellwig
Signed-off-by: Martin K. Petersen -
Untangle the tmpcip crap so it becomes obvious what ports are accessed.
Signed-off-by: Ondrej Zary
Reviewed-by: Hannes Reinicke
Acked-by: Christoph Hellwig
Signed-off-by: Martin K. Petersen -
Untangle the tmport crap so it becomes obvious what ports are accessed.
Signed-off-by: Ondrej Zary
Reviewed-by: Hannes Reinicke
Acked-by: Christoph Hellwig
Signed-off-by: Martin K. Petersen -
Untangle the tmport crap so it becomes obvious what ports are accessed.
Signed-off-by: Ondrej Zary
Reviewed-by: Hannes Reinicke
Acked-by: Christoph Hellwig
Signed-off-by: Martin K. Petersen -
Untangle the tmport crap so it becomes obvious what ports are accessed.
Signed-off-by: Ondrej Zary
Reviewed-by: Hannes Reinicke
Acked-by: Christoph Hellwig
Signed-off-by: Martin K. Petersen -
Untangle the tmport crap so it becomes obvious what ports are accessed.
Signed-off-by: Ondrej Zary
Reviewed-by: Hannes Reinicke
Acked-by: Christoph Hellwig
Signed-off-by: Martin K. Petersen