History log of /drivers/scsi/hpsa.h
Revision Date Author Comments
f79cfec6b1906ab10ef70dccd601db25c97bae17 19-Jan-2012 Stephen M. Cameron <scameron@beardog.cce.hp.com> [SCSI] hpsa: factor out driver name

Sometimes, for testing purposes (e.g. testing rmmod on a system
that normally boots using hpsa) it's nice to rename the driver
and split it into two drivers and restrict it to certain
controllers. This makes that easier.

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
d66ae08bad182e9a87859e120e61cfd51e402ed8 19-Jan-2012 Stephen M. Cameron <scameron@beardog.cce.hp.com> [SCSI] hpsa: removed unneeded structure member max_sg_entries and fix badly named constant MAXSGENTRIES

We had both h->max_sg_entries and h->maxsgentries in the per controller
structure which is terribly confusing. max_sg_entries was really
just a constant, 32, which defines how big the "block fetch table"
is, which is as large as the max number of SG elements embedded
within a command (excluding SG elements in chain blocks).

MAXSGENTRIES was the constant used to denote the max number of SG
elements embedded within a command, also a poor name.

So renamed MAXSGENTREIS to SG_ENTRIES_IN_CMD, and removed
h->max_sg_entries and replaced it with SG_ENTRIES_IN_CMD.

h->maxsgentries is unchanged, and is the maximum number of sg
elements the controller will support in a command, including
those in chain blocks, minus 1 for the chain block pointer..

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
a0c124137a40fc22730ae87caf17e821f2dce1ed 26-Oct-2011 Stephen M. Cameron <scameron@beardog.cce.hp.com> [SCSI] hpsa: detect controller lockup

When controller lockup condition is detected,
we should fail all outstanding commands and disable
the controller. This will enable multipath solutions
to recover gracefully.

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
b7ec021fe6fe979dbd4e62604a4942f964b12864 26-Oct-2011 Scott Teel <scott.teel@hp.com> [SCSI] hpsa: fix potential array overflow in hpsa_update_scsi_devices

The currentsd[] array in hpsa_update_scsi_devices had room for
256 devices. The code was iterating over however many physical
and logical devices plus an additional number of possible external
MSA2XXX controllers, which together could potentially exceed 256.

We increased the size of the currentsd array to 1024 + 1024 + 32 + 1
elements to reflect a reasonable maximum possible number of devices
which might be encountered. We also don't just walk off the end
of the array if the array controller reports more devices than we
are prepared to handle, we just ignore the excessive devices.

Signed-off-by: Scott Teel <scott.teel@hp.com>
Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
cfe5badcab2e993e71ebebbc07c21c270e5580c0 26-Oct-2011 Scott Teel <scott.teel@hp.com> [SCSI] hpsa: rename HPSA_MAX_SCSI_DEVS_PER_HBA

Rename HPSA_MAX_SCSI_DEVS_PER_HBA to HPSA_MAX_DEVICES

Signed-off-by: Scott Teel <scott.teel@hp.com>
Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
03ab31f4c14f259bfa160543c83dbfd93d6fb3e2 26-Oct-2011 Stephen M. Cameron <scameron@beardog.cce.hp.com> [SCSI] hpsa: remove unused busy_initializing and busy_scanning

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
fec62c368b9c8b05d5124ca6c3b8336b537f26f3 21-Jul-2011 Stephen M. Cameron <scameron@beardog.cce.hp.com> [SCSI] hpsa: do not attempt to read from a write-only register

Most smartarrays tolerate it, but a few new ones don't.
Without this change some newer Smart Arrays will lock up
and i/o will grind to a halt.

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Cc: stable@kernel.org
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
64670ac8702ec37a00ad6e479f3cacbde0fd4efa 03-May-2011 Stephen M. Cameron <scameron@beardog.cce.hp.com> [SCSI] hpsa: do soft reset if hard reset is broken

on driver load, if reset_devices is set, and the hard reset
attempts fail, try to bring up the controller to the point that
a command can be sent, and send it a soft reset command, then
after the reset undo whatever driver initialization was done to get
it to the point to take a command, and re-do it after the reset.

This is to get kdump to work on all the "non-resettable" controllers
(except 64xx controllers which can't be reset due to the potentially
shared cache module.)

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: James Bottomley <jbottomley@parallels.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
2ed7127bceb10a6a7d5a38c30ab65176d4e4bc0f 03-May-2011 Stephen M. Cameron <scameron@beardog.cce.hp.com> [SCSI] hpsa: increase time to wait for board reset

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: James Bottomley <jbottomley@parallels.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
516fda49e8596904a741693059c8746f11ce579c 03-May-2011 Stephen M. Cameron <scameron@beardog.cce.hp.com> [SCSI] hpsa: wait longer for no-op to complete after resetting controller

This is to avoid the usual two or three messages about the command
timing out. We're obviously not waiting long enough.

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: James Bottomley <jbottomley@parallels.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
8cd21da71c952843f9cc215436286cf7f991cc6e 03-May-2011 Stephen M. Cameron <scameron@beardog.cce.hp.com> [SCSI] hpsa: add readl after writel in interrupt mask setting code

This is to ensure the board interrupts are really off when
these functions return.

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: James Bottomley <jbottomley@parallels.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
d0be5ec8693944c2e2fc0de70fda9dbc1b93bd7d 03-May-2011 Stephen M. Cameron <scameron@beardog.cce.hp.com> [SCSI] hpsa: do readl after writel in main i/o path to ensure commands don't get lost.

Apparently we've been doin it rong for a decade, but only lately do we
run into problems.

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: James Bottomley <jbottomley@parallels.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
a9a3a2739a44fc05dcaba0d4d36e52dc444c294f 15-Feb-2011 Stephen M. Cameron <scameron@beardog.cce.hp.com> [SCSI] hpsa: make hpsa.hpsa_simple_mode=1 module parameter actually work

It's not enough to simple avoid putting the board into performant
mode, as we have to set up the interrupts differently, etc. When
I originally tested this module parameter, I tested it incorrectly
without realizing it, and the driver was running in performant mode
the whole time unbeknownst to me.

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
9e0fc764eaec082cd2ffcf82568dfdd086935934 15-Feb-2011 Stephen M. Cameron <scameron@beardog.cce.hp.com> [SCSI] hpsa: do not re-order commands in internal queues

Driver's internal queues should be FIFO, not LIFO.
This is a port of an almost identical patch from cciss by Jens Axboe.

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
fe5389c87f13c16cd77d976801c93422d0c05a49 06-Jan-2011 Stephen M. Cameron <scameron@beardog.cce.hp.com> [SCSI] hpsa: fix board status waiting code

After a reset, we should first wait for the board to become "not ready",
and then wait for it to become "ready", instead of immediately
waiting for it to become "ready", and do this waiting *after*
restoring PCI config space registers. Also, only wait 10 secs
for board to become "not ready" after a reset (it should quickly
become not ready.)

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
a0b89872b305bd0f6f5af1dd26274a3f057a2303 16-Dec-2010 Stephen M. Cameron <scameron@beardog.cce.hp.com> [SCSI] hpsa: do not consider firmware revision when looking for device changes.

The firmware may have been updated, in which case, it's the same device,
and in that case, we do not want to remove and add the device, we want to
let it continue as is.

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
873f339fc53750c1e715f5e1d2dfdb9869b7ea3f 27-May-2010 Stephen M. Cameron <scameron@beardog.cce.hp.com> [SCSI] hpsa: remove unused firm_ver member of the per-hba structure

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
33a2ffce51d9598380d73c515a27fc6cff3bd9c4 25-Feb-2010 Stephen M. Cameron <scameron@beardog.cce.hp.com> [SCSI] hpsa: Increase the number of scatter gather elements supported.

This uses the scatter-gather chaining feature of Smart Array
controllers. 32 scatter-gather elements are embedded in the
"command list", and the last element in the list may be marked
as a "chain pointer", and point to an additional block of
scatter gather elements. The precise number of scatter gather
elements supported is dependent on the particular kind of
Smart Array, and is determined at runtime by querying the
hardware.

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
31468401ccf64322ca99fe05fbe64f1551240f57 25-Feb-2010 Mike Miller <mikem@beardog.cce.hp.com> [SCSI] hpsa: remove scan thread

The intent of the scan thread was to allow a UNIT ATTENTION/LUN
DATA CHANGED condition encountered in the interrupt handler
to trigger a rescan of devices, which can't be done in interrupt
context. However, we weren't able to get this to work, due to
multiple such UNIT ATTENTION conditions arriving during the rescan,
during updating of the SCSI mid layer, etc. There's no way to tell
the devices, "stand still while I scan you!" Since it doesn't work,
there's no point in having the thread, as the rescan triggered via
ioctl or sysfs can be done without such a thread.

Signed-off-by: Mike Miller <mikem@beardog.cce.hp.com>
Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
a08a8471b7aed3d50df8e9c852dc2baa08ec8b01 04-Feb-2010 Stephen M. Cameron <scameron@beardog.cce.hp.com> [SCSI] hpsa: use scan_start and scan_finished entry points for scanning

use scan_start and scan_finished entry points for scanning and route
the CCISS_REGNEWD ioctl and sysfs triggering of same functionality
through hpsa_scan_start.

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
339b2b14c634da58626eb742370d915591c2fb6d 04-Feb-2010 Stephen M. Cameron <scameron@beardog.cce.hp.com> [SCSI] hpsa: Fix p1210m LUN assignment.

The p1210m responsds to SCSI report LUNs, unlike traditional Smart
Array controllers. This means that the bus, target, and lun
assignments done by the driver cannot be arbitrary, but must match
what SCSI REPORT LUNS returns.

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
303932fd4ff63e8650d5d5da6cc286a8b5f8318d 04-Feb-2010 Don Brace <brace@beardog.cce.hp.com> [SCSI] hpsa: Allow multiple command completions per interrupt.

This is done by adding support for the so-called "performant mode"
(that's really what they called it). Smart Array controllers
have a mode which enables multiple command completions to be
delivered with a single interrupt, "performant" mode. We want to use
that mode, as some newer controllers will be requiring this mode.

Signed-off-by: Don Brace <brace@beardog.cce.hp.com>
Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: Mike Miller <mikem@beardog.cce.hp.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
900c54404a9456b3ff10745e5e8f64b12c3a6ef7 04-Feb-2010 Stephen M. Cameron <scameron@beardog.cce.hp.com> [SCSI] hpsa: interrupt pending function should return bool not unsigned long

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
84ca0be2a2cd9730683310b831db9d2fa60b3b0b 04-Feb-2010 Stephen M. Cameron <scameron@beardog.cce.hp.com> [SCSI] hpsa: fix some debug printks to use dev_dbg instead

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
a104c99f386191706a11d39be81b8f03cd4f2719 04-Feb-2010 Stephen M. Cameron <scameron@beardog.cce.hp.com> [SCSI] hpsa: make tag macros into functions

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
01a02ffcd55b74e3459bb7358140970e126d4731 04-Feb-2010 Stephen M. Cameron <scameron@beardog.cce.hp.com> [SCSI] hpsa: Use kernel integer types, not userland ones

That is, use u64, u32, u16 and u8 rather than __u64, __u32, __u16 and __u8.

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
edd163687ea59f01d6b43c9e1fdaa0126fa30191 08-Dec-2009 Stephen M. Cameron <scameron@beardog.cce.hp.com> [SCSI] hpsa: add driver for HP Smart Array controllers.

This driver supports a subset of HP Smart Array Controllers.
It is a SCSI alternative to the cciss driver.

[akpm@linux-foundation.org: avoid helpful cleanup patches]
[achiang@hp.com: make device attrs static]
[akpm@linux-foundation.org: msleep() does set_current_state() itself]
Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: Mike Miller <mikem@beardog.cce.hp.com>
Signed-off-by: Alex Chiang <achiang@hp.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>