xref: /linux/Documentation/scsi/ChangeLog.megaraid (revision ed7e8ef7f12f5c3c8bbb85eeb0a1ded91c7c5dbf)
1*ed7e8ef7SJu, SeokmannRelease Date	: Fri Nov 11 12:27:22 EST 2005 - Seokmann Ju <sju@lsil.com>
2*ed7e8ef7SJu, SeokmannCurrent Version : 2.20.4.7 (scsi module), 2.20.2.6 (cmm module)
3*ed7e8ef7SJu, SeokmannOlder Version	: 2.20.4.6 (scsi module), 2.20.2.6 (cmm module)
4*ed7e8ef7SJu, Seokmann
5*ed7e8ef7SJu, Seokmann1.	Sorted out PCI IDs to remove megaraid support overlaps.
6*ed7e8ef7SJu, Seokmann	Based on the patch from Daniel, sorted out PCI IDs along with
7*ed7e8ef7SJu, Seokmann	charactor node name change from 'megadev' to 'megadev_legacy' to avoid
8*ed7e8ef7SJu, Seokmann	conflict.
9*ed7e8ef7SJu, Seokmann	---
10*ed7e8ef7SJu, Seokmann	Hopefully we'll be getting the build restriction zapped much sooner,
11*ed7e8ef7SJu, Seokmann	but we should also be thinking about totally removing the hardware
12*ed7e8ef7SJu, Seokmann	support overlap in the megaraid drivers.
13*ed7e8ef7SJu, Seokmann
14*ed7e8ef7SJu, Seokmann	This patch pencils in a date of Feb 06 for this, and performs some
15*ed7e8ef7SJu, Seokmann	printk abuse in hope that existing legacy users might pick up on what's
16*ed7e8ef7SJu, Seokmann	going on.
17*ed7e8ef7SJu, Seokmann
18*ed7e8ef7SJu, Seokmann	Signed-off-by: Daniel Drake <dsd@gentoo.org>
19*ed7e8ef7SJu, Seokmann	---
20*ed7e8ef7SJu, Seokmann
21*ed7e8ef7SJu, Seokmann2.	Fixed a issue: megaraid always fails to reset handler.
22*ed7e8ef7SJu, Seokmann	---
23*ed7e8ef7SJu, Seokmann	I found that the megaraid driver always fails to reset the
24*ed7e8ef7SJu, Seokmann	adapter with the following message:
25*ed7e8ef7SJu, Seokmann		megaraid: resetting the host...
26*ed7e8ef7SJu, Seokmann		megaraid mbox: reset sequence completed successfully
27*ed7e8ef7SJu, Seokmann		megaraid: fast sync command timed out
28*ed7e8ef7SJu, Seokmann		megaraid: reservation reset failed
29*ed7e8ef7SJu, Seokmann	when the "Cluster mode" of the adapter BIOS is enabled.
30*ed7e8ef7SJu, Seokmann	So, whenever the reset occurs, the adapter goes to
31*ed7e8ef7SJu, Seokmann	offline and just become unavailable.
32*ed7e8ef7SJu, Seokmann
33*ed7e8ef7SJu, Seokmann	Jun'ichi Nomura [mailto:jnomura@mtc.biglobe.ne.jp]
34*ed7e8ef7SJu, Seokmann	---
35*ed7e8ef7SJu, Seokmann
36672b2d38SJu, Seokmann Release Date	: Mon Mar 07 12:27:22 EST 2005 - Seokmann Ju <sju@lsil.com>
37672b2d38SJu, Seokmann Current Version : 2.20.4.6 (scsi module), 2.20.2.6 (cmm module)
38672b2d38SJu, Seokmann Older Version	: 2.20.4.5 (scsi module), 2.20.2.5 (cmm module)
39672b2d38SJu, Seokmann 
40672b2d38SJu, Seokmann 1.	Added IOCTL backward compatibility.
41672b2d38SJu, Seokmann 	Convert megaraid_mm driver to new compat_ioctl entry points.
42672b2d38SJu, Seokmann 	I don't have easy access to hardware, so only compile tested.
43672b2d38SJu, Seokmann 		- Signed-off-by:Andi Kleen <ak@muc.de>
44672b2d38SJu, Seokmann 
45672b2d38SJu, Seokmann 2.	megaraid_mbox fix: wrong order of arguments in memset()
46672b2d38SJu, Seokmann 	That, BTW, shows why cross-builds are useful-the only indication of
47672b2d38SJu, Seokmann 	problem had been a new warning showing up in sparse output on alpha
48672b2d38SJu, Seokmann 	build (number of exceeding 256 got truncated).
49672b2d38SJu, Seokmann 		- Signed-off-by: Al Viro
50672b2d38SJu, Seokmann 		<viro@parcelfarce.linux.theplanet.co.uk>
51672b2d38SJu, Seokmann 
52672b2d38SJu, Seokmann 3.	Convert pci_module_init to pci_register_driver
53672b2d38SJu, Seokmann 	Convert from pci_module_init to pci_register_driver
54672b2d38SJu, Seokmann 	(from:http://kerneljanitors.org/TODO)
55672b2d38SJu, Seokmann 		- Signed-off-by: Domen Puncer <domen@coderock.org>
56672b2d38SJu, Seokmann 
57672b2d38SJu, Seokmann 4.	Use the pre defined DMA mask constants from dma-mapping.h
58672b2d38SJu, Seokmann 	Use the DMA_{64,32}BIT_MASK constants from dma-mapping.h when calling
59672b2d38SJu, Seokmann 	pci_set_dma_mask() or pci_set_consistend_dma_mask(). See
60672b2d38SJu, Seokmann 	http://marc.theaimsgroup.com/?t=108001993000001&r=1&w=2 for more
61672b2d38SJu, Seokmann 	details.
62672b2d38SJu, Seokmann 		Signed-off-by: Tobias Klauser <tklauser@nuerscht.ch>
63672b2d38SJu, Seokmann 		Signed-off-by: Domen Puncer <domen@coderock.org>
64672b2d38SJu, Seokmann 
65672b2d38SJu, Seokmann 5.	Remove SSID checking for Dobson, Lindsay, and Verde based products.
66672b2d38SJu, Seokmann 	Checking the SSVID/SSID for controllers which have Dobson, Lindsay,
67672b2d38SJu, Seokmann 	and Verde is unnecessary because device ID has been assigned by LSI
68672b2d38SJu, Seokmann 	and it is unique value. So, all controllers with these IOPs have to be
69672b2d38SJu, Seokmann 	supported by the driver regardless SSVID/SSID.
70672b2d38SJu, Seokmann 
71672b2d38SJu, Seokmann 6.	Date Thu, 27 Jan 2005 04:31:09 +0100
72672b2d38SJu, Seokmann 	From Herbert Poetzl <>
73672b2d38SJu, Seokmann 	Subject RFC: assert_spin_locked() for 2.6
74672b2d38SJu, Seokmann 
75672b2d38SJu, Seokmann 	Greetings!
76672b2d38SJu, Seokmann 
77672b2d38SJu, Seokmann 	overcautious programming will kill your kernel ;)
78672b2d38SJu, Seokmann 	ever thought about checking a spin_lock or even
79672b2d38SJu, Seokmann 	asserting that it must be held (maybe just for
80672b2d38SJu, Seokmann 	spinlock debugging?) ...
81672b2d38SJu, Seokmann 
82672b2d38SJu, Seokmann 	there are several checks present in the kernel
83672b2d38SJu, Seokmann 	where somebody does a variation on the following:
84672b2d38SJu, Seokmann 
85672b2d38SJu, Seokmann 	  BUG_ON(!spin_is_locked(&some_lock));
86672b2d38SJu, Seokmann 
87672b2d38SJu, Seokmann 	so what's wrong about that? nothing, unless you
88672b2d38SJu, Seokmann 	compile the code with CONFIG_DEBUG_SPINLOCK but
89672b2d38SJu, Seokmann 	without CONFIG_SMP ... in which case the BUG()
90672b2d38SJu, Seokmann 	will kill your kernel ...
91672b2d38SJu, Seokmann 
92672b2d38SJu, Seokmann 	maybe it's not advised to make such assertions,
93672b2d38SJu, Seokmann 	but here is a solution which works for me ...
94672b2d38SJu, Seokmann 	(compile tested for sh, x86_64 and x86, boot/run
95672b2d38SJu, Seokmann 	tested for x86 only)
96672b2d38SJu, Seokmann 
97672b2d38SJu, Seokmann 	best,
98672b2d38SJu, Seokmann 	Herbert
99672b2d38SJu, Seokmann 
100672b2d38SJu, Seokmann 		- Herbert Poetzl <herbert@13thfloor.at>, Thu, 27 Jan 2005
101672b2d38SJu, Seokmann 
1021da177e4SLinus TorvaldsRelease Date	: Thu Feb 03 12:27:22 EST 2005 - Seokmann Ju <sju@lsil.com>
1031da177e4SLinus TorvaldsCurrent Version	: 2.20.4.5 (scsi module), 2.20.2.5 (cmm module)
1041da177e4SLinus TorvaldsOlder Version	: 2.20.4.4 (scsi module), 2.20.2.4 (cmm module)
1051da177e4SLinus Torvalds
1061da177e4SLinus Torvalds1.	Modified name of two attributes in scsi_host_template.
1071da177e4SLinus Torvalds	On Wed, 2005-02-02 at 10:56 -0500, Ju, Seokmann wrote:
1081da177e4SLinus Torvalds	> +	.sdev_attrs			= megaraid_device_attrs,
1091da177e4SLinus Torvalds	> +	.shost_attrs			= megaraid_class_device_attrs,
1101da177e4SLinus Torvalds
1111da177e4SLinus Torvalds	These are, perhaps, slightly confusing names.
1121da177e4SLinus Torvalds	The terms device and class_device have well defined meanings in the
1131da177e4SLinus Torvalds	generic device model, neither of which is what you mean here.
1141da177e4SLinus Torvalds	Why not simply megaraid_sdev_attrs and megaraid_shost_attrs?
1151da177e4SLinus Torvalds
1161da177e4SLinus Torvalds	Other than this, it looks fine to me too.
1171da177e4SLinus Torvalds
1181da177e4SLinus TorvaldsRelease Date	: Thu Jan 27 00:01:03 EST 2005 - Atul Mukker <atulm@lsil.com>
1191da177e4SLinus TorvaldsCurrent Version	: 2.20.4.4 (scsi module), 2.20.2.5 (cmm module)
1201da177e4SLinus TorvaldsOlder Version	: 2.20.4.3 (scsi module), 2.20.2.4 (cmm module)
1211da177e4SLinus Torvalds
1221da177e4SLinus Torvalds1.	Bump up the version of scsi module due to its conflict.
1231da177e4SLinus Torvalds
1241da177e4SLinus TorvaldsRelease Date	: Thu Jan 21 00:01:03 EST 2005 - Atul Mukker <atulm@lsil.com>
1251da177e4SLinus TorvaldsCurrent Version	: 2.20.4.3 (scsi module), 2.20.2.5 (cmm module)
1261da177e4SLinus TorvaldsOlder Version	: 2.20.4.2 (scsi module), 2.20.2.4 (cmm module)
1271da177e4SLinus Torvalds
1281da177e4SLinus Torvalds1.	Remove driver ioctl for logical drive to scsi address translation and
1291da177e4SLinus Torvalds	replace with the sysfs attribute. To remove drives and change
1301da177e4SLinus Torvalds	capacity, application shall now use the device attribute to get the
1311da177e4SLinus Torvalds	logical drive number for a scsi device. For adding newly created
1321da177e4SLinus Torvalds	logical drives, class device attribute would be required to uniquely
1331da177e4SLinus Torvalds	identify each controller.
1341da177e4SLinus Torvalds		- Atul Mukker <atulm@lsil.com>
1351da177e4SLinus Torvalds
1361da177e4SLinus Torvalds	"James, I've been thinking about this a little more, and you may be on
1371da177e4SLinus Torvalds	to something here. Let each driver add files as such:"
1381da177e4SLinus Torvalds
1391da177e4SLinus Torvalds		- Matt Domsch <Matt_Domsch@dell.com>, 12.15.2004
1401da177e4SLinus Torvalds		 linux-scsi mailing list
1411da177e4SLinus Torvalds
1421da177e4SLinus Torvalds
1431da177e4SLinus Torvalds	"Then, if you simply publish your LD number as an extra parameter of
1441da177e4SLinus Torvalds	the device, you can look through /sys to find it."
1451da177e4SLinus Torvalds
1461da177e4SLinus Torvalds		- James Bottomley <James.Bottomley@SteelEye.com>, 01.03.2005
1471da177e4SLinus Torvalds		 linux-scsi mailing list
1481da177e4SLinus Torvalds
1491da177e4SLinus Torvalds
1501da177e4SLinus Torvalds	"I don't see why not ... it's your driver, you can publish whatever
1511da177e4SLinus Torvalds	extra information you need as scsi_device attributes; that was one of
1521da177e4SLinus Torvalds	the designs of the extensible attribute system."
1531da177e4SLinus Torvalds
1541da177e4SLinus Torvalds		- James Bottomley <James.Bottomley@SteelEye.com>, 01.06.2005
1551da177e4SLinus Torvalds		 linux-scsi mailing list
1561da177e4SLinus Torvalds
1571da177e4SLinus Torvalds2.	Add AMI megaraid support - Brian King <brking@charter.net>
1581da177e4SLinus Torvalds		PCI_VENDOR_ID_AMI, PCI_DEVICE_ID_AMI_MEGARAID3,
1591da177e4SLinus Torvalds		PCI_VENDOR_ID_AMI, PCI_SUBSYS_ID_PERC3_DC,
1601da177e4SLinus Torvalds
1611da177e4SLinus Torvalds3.	Make some code static - Adrian Bunk <bunk@stusta.de>
1621da177e4SLinus Torvalds	Date:	Mon, 15 Nov 2004 03:14:57 +0100
1631da177e4SLinus Torvalds
1641da177e4SLinus Torvalds	The patch below makes some needlessly global code static.
1651da177e4SLinus Torvalds	-wait_queue_head_t wait_q;
1661da177e4SLinus Torvalds	+static wait_queue_head_t wait_q;
1671da177e4SLinus Torvalds
1681da177e4SLinus Torvalds	Signed-off-by: Adrian Bunk <bunk@stusta.de>
1691da177e4SLinus Torvalds
1701da177e4SLinus Torvalds4.	Added NEC ROMB support - NEC MegaRAID PCI Express ROMB controller
1711da177e4SLinus Torvalds		PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_MEGARAID_NEC_ROMB_2E,
1721da177e4SLinus Torvalds		PCI_SUBSYS_ID_NEC, PCI_SUBSYS_ID_MEGARAID_NEC_ROMB_2E,
1731da177e4SLinus Torvalds
1741da177e4SLinus Torvalds5.	Fixed Tape drive issue : For any Direct CDB command to physical device
1751da177e4SLinus Torvalds	including tape, timeout value set by driver was 10 minutes. With this
1761da177e4SLinus Torvalds	value, most of command will return within timeout. However, for those
1771da177e4SLinus Torvalds	command like ERASE or FORMAT, it takes more than an hour depends on
1781da177e4SLinus Torvalds	capacity of the device and the command could be terminated before it
1791da177e4SLinus Torvalds	completes.
1801da177e4SLinus Torvalds	To address this issue, the 'timeout' field in the DCDB command will
1811da177e4SLinus Torvalds	have NO TIMEOUT (i.e., 4) value as its timeout on DCDB command.
1821da177e4SLinus Torvalds
1831da177e4SLinus Torvalds
1841da177e4SLinus Torvalds
1851da177e4SLinus TorvaldsRelease Date	: Thu Dec  9 19:10:23 EST 2004
1861da177e4SLinus Torvalds	- Sreenivas Bagalkote <sreenib@lsil.com>
1871da177e4SLinus Torvalds
1881da177e4SLinus TorvaldsCurrent Version	: 2.20.4.2 (scsi module), 2.20.2.4 (cmm module)
1891da177e4SLinus TorvaldsOlder Version	: 2.20.4.1 (scsi module), 2.20.2.3 (cmm module)
1901da177e4SLinus Torvalds
1911da177e4SLinus Torvaldsi.	Introduced driver ioctl that returns scsi address for a given ld.
1921da177e4SLinus Torvalds
1931da177e4SLinus Torvalds	"Why can't the existing sysfs interfaces be used to do this?"
1941da177e4SLinus Torvalds		- Brian King (brking@us.ibm.com)
1951da177e4SLinus Torvalds
1961da177e4SLinus Torvalds	"I've looked into solving this another way, but I cannot see how
1971da177e4SLinus Torvalds	to get this driver-private mapping of logical drive number-> HCTL
1981da177e4SLinus Torvalds	without putting code something like this into the driver."
1991da177e4SLinus Torvalds
2001da177e4SLinus Torvalds	"...and by providing a mapping a function to userspace, the driver
2011da177e4SLinus Torvalds	is free to change its mapping algorithm in the future if necessary .."
2021da177e4SLinus Torvalds		- Matt Domsch (Matt_Domsch@dell.com)
2031da177e4SLinus Torvalds
2041da177e4SLinus TorvaldsRelease Date	: Thu Dec  9 19:02:14 EST 2004 - Sreenivas Bagalkote <sreenib@lsil.com>
2051da177e4SLinus Torvalds
2061da177e4SLinus TorvaldsCurrent Version	: 2.20.4.1 (scsi module), 2.20.2.3 (cmm module)
2071da177e4SLinus TorvaldsOlder Version	: 2.20.4.1 (scsi module), 2.20.2.2 (cmm module)
2081da177e4SLinus Torvalds
2091da177e4SLinus Torvaldsi.	Fix a bug in kioc's dma buffer deallocation
2101da177e4SLinus Torvalds
2111da177e4SLinus TorvaldsRelease Date	: Thu Nov  4 18:24:56 EST 2004 - Sreenivas Bagalkote <sreenib@lsil.com>
2121da177e4SLinus Torvalds
2131da177e4SLinus TorvaldsCurrent Version	: 2.20.4.1 (scsi module), 2.20.2.2 (cmm module)
2141da177e4SLinus TorvaldsOlder Version	: 2.20.4.0 (scsi module), 2.20.2.1 (cmm module)
2151da177e4SLinus Torvalds
2161da177e4SLinus Torvaldsi.	Handle IOCTL cmd timeouts more properly.
2171da177e4SLinus Torvalds
2181da177e4SLinus Torvaldsii.	pci_dma_sync_{sg,single}_for_cpu was introduced into megaraid_mbox
2191da177e4SLinus Torvalds	incorrectly (instead of _for_device). Changed to appropriate
2201da177e4SLinus Torvalds	pci_dma_sync_{sg,single}_for_device.
2211da177e4SLinus Torvalds
2221da177e4SLinus TorvaldsRelease Date	: Wed Oct 06 11:15:29 EDT 2004 - Sreenivas Bagalkote <sreenib@lsil.com>
2231da177e4SLinus TorvaldsCurrent Version	: 2.20.4.0 (scsi module), 2.20.2.1 (cmm module)
2241da177e4SLinus TorvaldsOlder Version	: 2.20.4.0 (scsi module), 2.20.2.0 (cmm module)
2251da177e4SLinus Torvalds
2261da177e4SLinus Torvaldsi.	Remove CONFIG_COMPAT around register_ioctl32_conversion
2271da177e4SLinus Torvalds
2281da177e4SLinus TorvaldsRelease Date	: Mon Sep 27 22:15:07 EDT 2004 - Atul Mukker <atulm@lsil.com>
2291da177e4SLinus TorvaldsCurrent Version	: 2.20.4.0 (scsi module), 2.20.2.0 (cmm module)
2301da177e4SLinus TorvaldsOlder Version	: 2.20.3.1 (scsi module), 2.20.2.0 (cmm module)
2311da177e4SLinus Torvalds
2321da177e4SLinus Torvaldsi.	Fix data corruption. Because of a typo in the driver, the IO packets
2331da177e4SLinus Torvalds	were wrongly shared by the ioctl path. This causes a whole IO command
2341da177e4SLinus Torvalds	to be replaced by an incoming ioctl command.
2351da177e4SLinus Torvalds
2361da177e4SLinus TorvaldsRelease Date	: Tue Aug 24 09:43:35 EDT 2004 - Atul Mukker <atulm@lsil.com>
2371da177e4SLinus TorvaldsCurrent Version	: 2.20.3.1 (scsi module), 2.20.2.0 (cmm module)
2381da177e4SLinus TorvaldsOlder Version	: 2.20.3.0 (scsi module), 2.20.2.0 (cmm module)
2391da177e4SLinus Torvalds
2401da177e4SLinus Torvaldsi.	Function reordering so that inline functions are defined before they
2411da177e4SLinus Torvalds	are actually used. It is now mandatory for GCC 3.4.1 (current stable)
2421da177e4SLinus Torvalds
2431da177e4SLinus Torvalds	Declare some heavy-weight functions to be non-inlined,
2441da177e4SLinus Torvalds	megaraid_mbox_build_cmd, megaraid_mbox_runpendq,
2451da177e4SLinus Torvalds	megaraid_mbox_prepare_pthru, megaraid_mbox_prepare_epthru,
2461da177e4SLinus Torvalds	megaraid_busywait_mbox
2471da177e4SLinus Torvalds
2481da177e4SLinus Torvalds		- Andrew Morton <akpm@osdl.org>, 08.19.2004
2491da177e4SLinus Torvalds		linux-scsi mailing list
2501da177e4SLinus Torvalds
2511da177e4SLinus Torvalds	"Something else to clean up after inclusion: every instance of an
2521da177e4SLinus Torvalds	inline function is actually rendered as a full function call, because
2531da177e4SLinus Torvalds	the function is always used before it is defined.  Atul, please
2541da177e4SLinus Torvalds	re-arrange the code to eliminate the need for most (all) of the
2551da177e4SLinus Torvalds	function prototypes at the top of each file, and define (not just
2561da177e4SLinus Torvalds	declare with a prototype) each inline function before its first use"
2571da177e4SLinus Torvalds
2581da177e4SLinus Torvalds		- Matt Domsch <Matt_Domsch@dell.com>, 07.27.2004
2591da177e4SLinus Torvalds		linux-scsi mailing list
2601da177e4SLinus Torvalds
2611da177e4SLinus Torvalds
2621da177e4SLinus Torvaldsii.	Display elapsed time (countdown) while waiting for FW to boot.
2631da177e4SLinus Torvalds
2641da177e4SLinus Torvaldsiii.	Module compilation reorder in Makefile so that unresolved symbols do
2651da177e4SLinus Torvalds	not occur when driver is compiled non-modular.
2661da177e4SLinus Torvalds
2671da177e4SLinus Torvalds		Patrick J. LoPresti <patl@users.sourceforge.net>, 8.22.2004
2681da177e4SLinus Torvalds		linux-scsi mailing list
2691da177e4SLinus Torvalds
2701da177e4SLinus Torvalds
2711da177e4SLinus TorvaldsRelease Date	: Thu Aug 19 09:58:33 EDT 2004 - Atul Mukker <atulm@lsil.com>
2721da177e4SLinus TorvaldsCurrent Version	: 2.20.3.0 (scsi module), 2.20.2.0 (cmm module)
2731da177e4SLinus TorvaldsOlder Version	: 2.20.2.0 (scsi module), 2.20.1.0 (cmm module)
2741da177e4SLinus Torvalds
2751da177e4SLinus Torvaldsi.	When copying the mailbox packets, copy only first 14 bytes (for 32-bit
2761da177e4SLinus Torvalds	mailboxes) and only first 22 bytes (for 64-bit mailboxes). This is to
2771da177e4SLinus Torvalds	avoid getting the stale values for busy bit. We want to set the busy
2781da177e4SLinus Torvalds	bit just before issuing command to the FW.
2791da177e4SLinus Torvalds
2801da177e4SLinus Torvaldsii.	In the reset handling, if the reseted command is not owned by the
2811da177e4SLinus Torvalds	driver, do not (wrongly) print information for the "attached" driver
2821da177e4SLinus Torvalds	packet.
2831da177e4SLinus Torvalds
2841da177e4SLinus Torvaldsiii.	Have extended wait when issuing command in synchronous mode. This is
2851da177e4SLinus Torvalds	required for the cases where the option ROM is disabled and there is
2861da177e4SLinus Torvalds	no BIOS to start the controller. The FW starts to boot after receiving
2871da177e4SLinus Torvalds	the first command from the driver. The current driver has 1 second
2881da177e4SLinus Torvalds	timeout for the synchronous commands, which is far less than what is
2891da177e4SLinus Torvalds	actually required. We now wait up to MBOX_RESET_TIME (180 seconds) for
2901da177e4SLinus Torvalds	FW boot process.
2911da177e4SLinus Torvalds
2921da177e4SLinus Torvaldsiv.	In megaraid_mbox_product_info, clear the mailbox contents completely
2931da177e4SLinus Torvalds	before preparing the command for inquiry3. This is to ensure that the
2941da177e4SLinus Torvalds	FW does not get junk values in the command.
2951da177e4SLinus Torvalds
2961da177e4SLinus Torvaldsv.	Do away with the redundant LSI_CONFIG_COMPAT redefinition for
2971da177e4SLinus Torvalds	CONFIG_COMPAT. Replace <asm/ioctl32.h> with <linux/ioctl32.h>
2981da177e4SLinus Torvalds
2991da177e4SLinus Torvalds		- James Bottomley <James.Bottomley@SteelEye.com>, 08.17.2004
3001da177e4SLinus Torvalds		 linux-scsi mailing list
3011da177e4SLinus Torvalds
3021da177e4SLinus Torvaldsvi.	Add support for 64-bit applications. Current drivers assume only
3031da177e4SLinus Torvalds	32-bit applications, even on 64-bit platforms. Use the "data" and
3041da177e4SLinus Torvalds	"buffer" fields of the mimd_t structure, instead of embedded 32-bit
3051da177e4SLinus Torvalds	addresses in application mailbox and passthru structures.
3061da177e4SLinus Torvalds
3071da177e4SLinus Torvaldsvii.	Move the function declarations for the management module from
3081da177e4SLinus Torvalds	megaraid_mm.h to megaraid_mm.c
3091da177e4SLinus Torvalds
3101da177e4SLinus Torvalds		- Andrew Morton <akpm@osdl.org>, 08.19.2004
3111da177e4SLinus Torvalds		linux-scsi mailing list
3121da177e4SLinus Torvalds
3131da177e4SLinus Torvaldsviii.	Change default values for MEGARAID_NEWGEN, MEGARAID_MM, and
3141da177e4SLinus Torvalds	MEGARAID_MAILBOX to 'n' in Kconfig.megaraid
3151da177e4SLinus Torvalds
3161da177e4SLinus Torvalds		- Andrew Morton <akpm@osdl.org>, 08.19.2004
3171da177e4SLinus Torvalds		linux-scsi mailing list
3181da177e4SLinus Torvalds
3191da177e4SLinus Torvaldsix.	replace udelay with msleep
3201da177e4SLinus Torvalds
3211da177e4SLinus Torvaldsx.	Typos corrected in comments and whitespace adjustments, explicit
3221da177e4SLinus Torvalds	grouping of expressions.
3231da177e4SLinus Torvalds
3241da177e4SLinus Torvalds
3251da177e4SLinus TorvaldsRelease Date	: Fri Jul 23 15:22:07 EDT 2004 - Atul Mukker <atulm@lsil.com>
3261da177e4SLinus TorvaldsCurrent Version	: 2.20.2.0 (scsi module), 2.20.1.0 (cmm module)
3271da177e4SLinus TorvaldsOlder Version	: 2.20.1.0 (scsi module), 2.20.0.0 (cmm module)
3281da177e4SLinus Torvalds
3291da177e4SLinus Torvaldsi.	Add PCI ids for Acer ROMB 2E solution
3301da177e4SLinus Torvalds
3311da177e4SLinus Torvaldsii.	Add PCI ids for I4
3321da177e4SLinus Torvalds
3331da177e4SLinus Torvaldsiii.	Typo corrected for subsys id for megaraid sata 300-4x
3341da177e4SLinus Torvalds
3351da177e4SLinus Torvaldsiv.	Remove yield() while mailbox handshake in synchronous commands
3361da177e4SLinus Torvalds
3371da177e4SLinus Torvalds
3381da177e4SLinus Torvalds	"My other main gripe is things like this:
3391da177e4SLinus Torvalds
3401da177e4SLinus Torvalds	+	// wait for maximum 1 second for status to post
3411da177e4SLinus Torvalds	+	for (i = 0; i < 40000; i++) {
3421da177e4SLinus Torvalds	+		if (mbox->numstatus != 0xFF) break;
3431da177e4SLinus Torvalds	+		udelay(25); yield();
3441da177e4SLinus Torvalds	+	}
3451da177e4SLinus Torvalds
3461da177e4SLinus Torvalds	which litter the driver.  Use of yield() in drivers is deprecated."
3471da177e4SLinus Torvalds
3481da177e4SLinus Torvalds		- James Bottomley <James.Bottomley@SteelEye.com>, 07.14.2004
3491da177e4SLinus Torvalds		 linux-scsi mailing list
3501da177e4SLinus Torvalds
3511da177e4SLinus Torvaldsv.	Remove redundant __megaraid_busywait_mbox routine
3521da177e4SLinus Torvalds
3531da177e4SLinus Torvaldsvi.	Fix bug in the managment module, which causes a system lockup when the
3541da177e4SLinus Torvalds	IO module is loaded and then unloaded, followed by executing any
3551da177e4SLinus Torvalds	management utility. The current version of management module does not
3561da177e4SLinus Torvalds	handle the adapter unregister properly.
3571da177e4SLinus Torvalds
3581da177e4SLinus Torvalds	Specifically, it still keeps a reference to the unregistered
3591da177e4SLinus Torvalds	controllers. To avoid this, the static array adapters has been
3601da177e4SLinus Torvalds	replaced by a dynamic list, which gets updated every time an adapter
3611da177e4SLinus Torvalds	is added or removed.
3621da177e4SLinus Torvalds
3631da177e4SLinus Torvalds	Also, during unregistration of the IO module, the resources are
3641da177e4SLinus Torvalds	now released in the exact reverse order of the allocation time
3651da177e4SLinus Torvalds	sequence.
3661da177e4SLinus Torvalds
3671da177e4SLinus Torvalds
3681da177e4SLinus TorvaldsRelease Date	: Fri Jun 25 18:58:43 EDT 2004 - Atul Mukker <atulm@lsil.com>
3691da177e4SLinus TorvaldsCurrent Version	: 2.20.1.0
3701da177e4SLinus TorvaldsOlder Version	: megaraid 2.20.0.1
3711da177e4SLinus Torvalds
3721da177e4SLinus Torvaldsi.	Stale list pointer in adapter causes kernel panic when module
3731da177e4SLinus Torvalds	megaraid_mbox is unloaded
3741da177e4SLinus Torvalds
3751da177e4SLinus Torvalds
3761da177e4SLinus TorvaldsRelease Date	: Thu Jun 24 20:37:11 EDT 2004 - Atul Mukker <atulm@lsil.com>
3771da177e4SLinus TorvaldsCurrent Version	: 2.20.0.1
3781da177e4SLinus TorvaldsOlder Version	: megaraid 2.20.0.00
3791da177e4SLinus Torvalds
3801da177e4SLinus Torvaldsi.	Modules are not 'y' by default, but depend on current definition of
3811da177e4SLinus Torvalds	SCSI & PCI.
3821da177e4SLinus Torvalds
3831da177e4SLinus Torvaldsii.	Redundant structure mraid_driver_t removed.
3841da177e4SLinus Torvalds
3851da177e4SLinus Torvaldsiii.	Miscellaneous indentation and goto/label fixes.
3861da177e4SLinus Torvalds		- Christoph Hellwig <hch@infradead.org>, 06.24.2004 linux-scsi
3871da177e4SLinus Torvalds
3881da177e4SLinus Torvaldsiv.	scsi_host_put(), do just before completing HBA shutdown.
3891da177e4SLinus Torvalds
3901da177e4SLinus Torvalds
3911da177e4SLinus Torvalds
3921da177e4SLinus TorvaldsRelease Date	: Mon Jun 21 19:53:54 EDT 2004 - Atul Mukker <atulm@lsil.com>
3931da177e4SLinus TorvaldsCurrent Version	: 2.20.0.0
3941da177e4SLinus TorvaldsOlder Version	: megaraid 2.20.0.rc2 and 2.00.3
3951da177e4SLinus Torvalds
3961da177e4SLinus Torvaldsi.	Independent module to interact with userland applications and
3971da177e4SLinus Torvalds	multiplex command to low level RAID module(s).
3981da177e4SLinus Torvalds
3991da177e4SLinus Torvalds	"Shared code in a third module, a "library module", is an acceptable
4001da177e4SLinus Torvalds	solution. modprobe automatically loads dependent modules, so users
4011da177e4SLinus Torvalds	running "modprobe driver1" or "modprobe driver2" would automatically
4021da177e4SLinus Torvalds	load the shared library module."
4031da177e4SLinus Torvalds
4041da177e4SLinus Torvalds		- Jeff Garzik <jgarzik@pobox.com> 02.25.2004 LKML
4051da177e4SLinus Torvalds
4061da177e4SLinus Torvalds	"As Jeff hinted, if your userspace<->driver API is consistent between
4071da177e4SLinus Torvalds	your new MPT-based RAID controllers and your existing megaraid driver,
4081da177e4SLinus Torvalds	then perhaps you need a single small helper module (lsiioctl or some
4091da177e4SLinus Torvalds	better name), loaded by both mptraid and megaraid automatically, which
4101da177e4SLinus Torvalds	handles registering the /dev/megaraid node dynamically. In this case,
4111da177e4SLinus Torvalds	both mptraid and megaraid would register with lsiioctl for each
4121da177e4SLinus Torvalds	adapter discovered, and lsiioctl would essentially be a switch,
4131da177e4SLinus Torvalds	redirecting userspace tool ioctls to the appropriate driver."
4141da177e4SLinus Torvalds
4151da177e4SLinus Torvalds		- Matt Domsch <Matt_Domsch@dell.com> 02.25.2004 LKML
4161da177e4SLinus Torvalds
4171da177e4SLinus Torvaldsii.	Remove C99 initializations from pci_device id.
4181da177e4SLinus Torvalds
4191da177e4SLinus Torvalds	"pci_id_table_g would be much more readable when not using C99
4201da177e4SLinus Torvalds	initializers.
4211da177e4SLinus Torvalds	PCI table doesn't change, there's lots of users that prefer the more
4221da177e4SLinus Torvalds	readable variant.  And it's really far less and much easier to grok
4231da177e4SLinus Torvalds	lines without C99 initializers."
4241da177e4SLinus Torvalds
4251da177e4SLinus Torvalds		- Christoph Hellwig <hch@infradead.org>, 05.28.2004 linux-scsi
4261da177e4SLinus Torvalds
4271da177e4SLinus Torvaldsiii.	Many fixes as suggested by Christoph Hellwig <hch@infradead.org> on
4281da177e4SLinus Torvalds	linux-scsi, 05.28.2004
4291da177e4SLinus Torvalds
4301da177e4SLinus Torvaldsiv.	We now support up to 32 parallel ioctl commands instead of current 1.
4311da177e4SLinus Torvalds	There is a conscious effort to let memory allocation not fail for ioctl
4321da177e4SLinus Torvalds	commands.
4331da177e4SLinus Torvalds
4341da177e4SLinus Torvaldsv.	Do away with internal memory management. Use pci_pool_(create|alloc)
4351da177e4SLinus Torvalds	instead.
4361da177e4SLinus Torvalds
4371da177e4SLinus Torvaldsvi.	Kill tasklet when unloading the driver.
4381da177e4SLinus Torvalds
4391da177e4SLinus Torvaldsvii.	Do not use "host_lock', driver has fine-grain locks now to protect all
4401da177e4SLinus Torvalds	data structures.
4411da177e4SLinus Torvalds
4421da177e4SLinus Torvaldsviii.	Optimize the build scatter-gather list routine. The callers already
4431da177e4SLinus Torvalds	know the data transfer address and length.
4441da177e4SLinus Torvalds
4451da177e4SLinus Torvaldsix.	Better implementation of error handling and recovery. Driver now
4461da177e4SLinus Torvalds	performs extended errors recovery for instances like scsi cable pull.
4471da177e4SLinus Torvalds
4481da177e4SLinus Torvaldsx.	Disassociate the management commands with an overlaid scsi command.
4491da177e4SLinus Torvalds	Driver now treats the management packets as special packets and has a
4501da177e4SLinus Torvalds	dedicated callback routine.
451