Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 00f59701 authored by HighPoint Linux Team's avatar HighPoint Linux Team Committed by James Bottomley
Browse files

[SCSI] hptiop: add more adapter models and other fixes



Most code changes were made to support adapters based on Marvell IOP, plus some
other fixes.

- add more PCI device IDs
- support for adapters based on Marvell IOP
- fix a result code translation error on big-endian systems
- fix resource releasing bug when scsi_host_alloc() fail in hptiop_probe()
- update scsi_cmnd.resid when finishing a request
- correct some coding style issues

[akpm@linux-foundation.org: type fixes]
Signed-off-by: default avatarHighPoint Linux Team <linux@highpoint-tech.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarJames Bottomley <James.Bottomley@HansenPartnership.com>
parent a7ed0448
Loading
Loading
Loading
Loading
+21 −9
Original line number Diff line number Diff line
HIGHPOINT ROCKETRAID 3xxx RAID DRIVER (hptiop)
HIGHPOINT ROCKETRAID 3xxx/4xxx ADAPTER DRIVER (hptiop)

Controller Register Map
-------------------------

The controller IOP is accessed via PCI BAR0.
For Intel IOP based adapters, the controller IOP is accessed via PCI BAR0:

     BAR0 offset    Register
            0x10    Inbound Message Register 0
@@ -18,6 +18,24 @@ The controller IOP is accessed via PCI BAR0.
            0x40    Inbound Queue Port
            0x44    Outbound Queue Port

For Marvell IOP based adapters, the IOP is accessed via PCI BAR0 and BAR1:

     BAR0 offset    Register
         0x20400    Inbound Doorbell Register
         0x20404    Inbound Interrupt Mask Register
         0x20408    Outbound Doorbell Register
         0x2040C    Outbound Interrupt Mask Register

     BAR1 offset    Register
             0x0    Inbound Queue Head Pointer
             0x4    Inbound Queue Tail Pointer
             0x8    Outbound Queue Head Pointer
             0xC    Outbound Queue Tail Pointer
            0x10    Inbound Message Register
            0x14    Outbound Message Register
     0x40-0x1040    Inbound Queue
   0x1040-0x2040    Outbound Queue


I/O Request Workflow
----------------------
@@ -73,15 +91,9 @@ The driver exposes following sysfs attributes:
     driver-version        R     driver version string
     firmware-version      R     firmware version string

The driver registers char device "hptiop" to communicate with HighPoint RAID
management software. Its ioctl routine acts as a general binary interface 
between the IOP firmware and HighPoint RAID management software. New management
functions can be implemented in application/firmware without modification
in driver code.


-----------------------------------------------------------------------------
Copyright (C) 2006 HighPoint Technologies, Inc. All Rights Reserved.
Copyright (C) 2006-2007 HighPoint Technologies, Inc. All Rights Reserved.

  This file is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
+2 −2
Original line number Diff line number Diff line
@@ -573,10 +573,10 @@ config SCSI_ARCMSR_AER
source "drivers/scsi/megaraid/Kconfig.megaraid"

config SCSI_HPTIOP
	tristate "HighPoint RocketRAID 3xxx Controller support"
	tristate "HighPoint RocketRAID 3xxx/4xxx Controller support"
	depends on SCSI && PCI
	help
	  This option enables support for HighPoint RocketRAID 3xxx
	  This option enables support for HighPoint RocketRAID 3xxx/4xxx
	  controllers.

	  To compile this driver as a module, choose M here; the module