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

Commit 672b2d38 authored by Ju, Seokmann 's avatar Ju, Seokmann Committed by James Bottomley
Browse files

[SCSI] megaraid version 2.20.4.6



Signed-off by: Seokmann Ju <sju@lsil.com>
Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
parent 7e8a2261
Loading
Loading
Loading
Loading
+66 −0
Original line number Diff line number Diff line
Release Date	: Mon Mar 07 12:27:22 EST 2005 - Seokmann Ju <sju@lsil.com>
Current Version : 2.20.4.6 (scsi module), 2.20.2.6 (cmm module)
Older Version	: 2.20.4.5 (scsi module), 2.20.2.5 (cmm module)

1.	Added IOCTL backward compatibility.
	Convert megaraid_mm driver to new compat_ioctl entry points.
	I don't have easy access to hardware, so only compile tested.
		- Signed-off-by:Andi Kleen <ak@muc.de>

2.	megaraid_mbox fix: wrong order of arguments in memset()
	That, BTW, shows why cross-builds are useful-the only indication of
	problem had been a new warning showing up in sparse output on alpha
	build (number of exceeding 256 got truncated).
		- Signed-off-by: Al Viro
		<viro@parcelfarce.linux.theplanet.co.uk>

3.	Convert pci_module_init to pci_register_driver
	Convert from pci_module_init to pci_register_driver
	(from:http://kerneljanitors.org/TODO)
		- Signed-off-by: Domen Puncer <domen@coderock.org>

4.	Use the pre defined DMA mask constants from dma-mapping.h
	Use the DMA_{64,32}BIT_MASK constants from dma-mapping.h when calling
	pci_set_dma_mask() or pci_set_consistend_dma_mask(). See
	http://marc.theaimsgroup.com/?t=108001993000001&r=1&w=2 for more
	details.
		Signed-off-by: Tobias Klauser <tklauser@nuerscht.ch>
		Signed-off-by: Domen Puncer <domen@coderock.org>

5.	Remove SSID checking for Dobson, Lindsay, and Verde based products.
	Checking the SSVID/SSID for controllers which have Dobson, Lindsay,
	and Verde is unnecessary because device ID has been assigned by LSI
	and it is unique value. So, all controllers with these IOPs have to be
	supported by the driver regardless SSVID/SSID.

6.	Date Thu, 27 Jan 2005 04:31:09 +0100 
	From Herbert Poetzl <> 
	Subject RFC: assert_spin_locked() for 2.6 

	Greetings!

	overcautious programming will kill your kernel ;)
	ever thought about checking a spin_lock or even
	asserting that it must be held (maybe just for
	spinlock debugging?) ...

	there are several checks present in the kernel
	where somebody does a variation on the following:

	  BUG_ON(!spin_is_locked(&some_lock));

	so what's wrong about that? nothing, unless you
	compile the code with CONFIG_DEBUG_SPINLOCK but 
	without CONFIG_SMP ... in which case the BUG()
	will kill your kernel ...

	maybe it's not advised to make such assertions, 
	but here is a solution which works for me ...
	(compile tested for sh, x86_64 and x86, boot/run
	tested for x86 only)

	best,
	Herbert

		- Herbert Poetzl <herbert@13thfloor.at>, Thu, 27 Jan 2005

Release Date	: Thu Feb 03 12:27:22 EST 2005 - Seokmann Ju <sju@lsil.com>
Current Version	: 2.20.4.5 (scsi module), 2.20.2.5 (cmm module)
Older Version	: 2.20.4.4 (scsi module), 2.20.2.4 (cmm module)
+1 −0
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@
#include <linux/list.h>
#include <linux/version.h>
#include <linux/moduleparam.h>
#include <linux/dma-mapping.h>
#include <asm/semaphore.h>
#include <scsi/scsi.h>
#include <scsi/scsi_cmnd.h>
+15 −110
Original line number Diff line number Diff line
@@ -10,7 +10,7 @@
 *	   2 of the License, or (at your option) any later version.
 *
 * FILE		: megaraid_mbox.c
 * Version	: v2.20.4.5 (Feb 03 2005)
 * Version	: v2.20.4.6 (Mar 07 2005)
 *
 * Authors:
 * 	Atul Mukker		<Atul.Mukker@lsil.com>
@@ -202,7 +202,7 @@ MODULE_PARM_DESC(debug_level, "Debug level for driver (default=0)");
 * ### global data ###
 */
static uint8_t megaraid_mbox_version[8] =
	{ 0x02, 0x20, 0x04, 0x05, 2, 3, 20, 5 };
	{ 0x02, 0x20, 0x04, 0x06, 3, 7, 20, 5 };


/*
@@ -229,9 +229,9 @@ static struct pci_device_id pci_id_table_g[] = {
	},
	{
		PCI_VENDOR_ID_LSI_LOGIC,
		PCI_DEVICE_ID_PERC4_QC,
		PCI_VENDOR_ID_DELL,
		PCI_SUBSYS_ID_PERC4_QC,
		PCI_DEVICE_ID_VERDE,
		PCI_ANY_ID,
		PCI_ANY_ID,
	},
	{
		PCI_VENDOR_ID_DELL,
@@ -271,15 +271,9 @@ static struct pci_device_id pci_id_table_g[] = {
	},
	{
		PCI_VENDOR_ID_LSI_LOGIC,
		PCI_DEVICE_ID_PERC4E_DC_320_2E,
		PCI_VENDOR_ID_DELL,
		PCI_SUBSYS_ID_PERC4E_DC_320_2E,
	},
	{
		PCI_VENDOR_ID_LSI_LOGIC,
		PCI_DEVICE_ID_PERC4E_SC_320_1E,
		PCI_VENDOR_ID_DELL,
		PCI_SUBSYS_ID_PERC4E_SC_320_1E,
		PCI_DEVICE_ID_DOBSON,
		PCI_ANY_ID,
		PCI_ANY_ID,
	},
	{
		PCI_VENDOR_ID_AMI,
@@ -329,36 +323,6 @@ static struct pci_device_id pci_id_table_g[] = {
		PCI_VENDOR_ID_LSI_LOGIC,
		PCI_SUBSYS_ID_MEGARAID_SCSI_320_2,
	},
	{
		PCI_VENDOR_ID_LSI_LOGIC,
		PCI_DEVICE_ID_MEGARAID_SCSI_320_0x,
		PCI_VENDOR_ID_LSI_LOGIC,
		PCI_SUBSYS_ID_MEGARAID_SCSI_320_0x,
	},
	{
		PCI_VENDOR_ID_LSI_LOGIC,
		PCI_DEVICE_ID_MEGARAID_SCSI_320_2x,
		PCI_VENDOR_ID_LSI_LOGIC,
		PCI_SUBSYS_ID_MEGARAID_SCSI_320_2x,
	},
	{
		PCI_VENDOR_ID_LSI_LOGIC,
		PCI_DEVICE_ID_MEGARAID_SCSI_320_4x,
		PCI_VENDOR_ID_LSI_LOGIC,
		PCI_SUBSYS_ID_MEGARAID_SCSI_320_4x,
	},
	{
		PCI_VENDOR_ID_LSI_LOGIC,
		PCI_DEVICE_ID_MEGARAID_SCSI_320_1E,
		PCI_VENDOR_ID_LSI_LOGIC,
		PCI_SUBSYS_ID_MEGARAID_SCSI_320_1E,
	},
	{
		PCI_VENDOR_ID_LSI_LOGIC,
		PCI_DEVICE_ID_MEGARAID_SCSI_320_2E,
		PCI_VENDOR_ID_LSI_LOGIC,
		PCI_SUBSYS_ID_MEGARAID_SCSI_320_2E,
	},
	{
		PCI_VENDOR_ID_LSI_LOGIC,
		PCI_DEVICE_ID_MEGARAID_I4_133_RAID,
@@ -379,21 +343,9 @@ static struct pci_device_id pci_id_table_g[] = {
	},
	{
		PCI_VENDOR_ID_LSI_LOGIC,
		PCI_DEVICE_ID_MEGARAID_SATA_300_4x,
		PCI_VENDOR_ID_LSI_LOGIC,
		PCI_SUBSYS_ID_MEGARAID_SATA_300_4x,
	},
	{
		PCI_VENDOR_ID_LSI_LOGIC,
		PCI_DEVICE_ID_MEGARAID_SATA_300_8x,
		PCI_VENDOR_ID_LSI_LOGIC,
		PCI_SUBSYS_ID_MEGARAID_SATA_300_8x,
	},
	{
		PCI_VENDOR_ID_LSI_LOGIC,
		PCI_DEVICE_ID_INTEL_RAID_SRCU42X,
		PCI_VENDOR_ID_INTEL,
		PCI_SUBSYS_ID_INTEL_RAID_SRCU42X,
		PCI_DEVICE_ID_LINDSAY,
		PCI_ANY_ID,
		PCI_ANY_ID,
	},
	{
		PCI_VENDOR_ID_LSI_LOGIC,
@@ -401,60 +353,12 @@ static struct pci_device_id pci_id_table_g[] = {
		PCI_VENDOR_ID_INTEL,
		PCI_SUBSYS_ID_INTEL_RAID_SRCS16,
	},
	{
		PCI_VENDOR_ID_LSI_LOGIC,
		PCI_DEVICE_ID_INTEL_RAID_SRCU42E,
		PCI_VENDOR_ID_INTEL,
		PCI_SUBSYS_ID_INTEL_RAID_SRCU42E,
	},
	{
		PCI_VENDOR_ID_LSI_LOGIC,
		PCI_DEVICE_ID_INTEL_RAID_SRCZCRX,
		PCI_VENDOR_ID_INTEL,
		PCI_SUBSYS_ID_INTEL_RAID_SRCZCRX,
	},
	{
		PCI_VENDOR_ID_LSI_LOGIC,
		PCI_DEVICE_ID_INTEL_RAID_SRCS28X,
		PCI_VENDOR_ID_INTEL,
		PCI_SUBSYS_ID_INTEL_RAID_SRCS28X,
	},
	{
		PCI_VENDOR_ID_LSI_LOGIC,
		PCI_DEVICE_ID_INTEL_RAID_SROMBU42E_ALIEF,
		PCI_VENDOR_ID_INTEL,
		PCI_SUBSYS_ID_INTEL_RAID_SROMBU42E_ALIEF,
	},
	{
		PCI_VENDOR_ID_LSI_LOGIC,
		PCI_DEVICE_ID_INTEL_RAID_SROMBU42E_HARWICH,
		PCI_VENDOR_ID_INTEL,
		PCI_SUBSYS_ID_INTEL_RAID_SROMBU42E_HARWICH,
	},
	{
		PCI_VENDOR_ID_LSI_LOGIC,
		PCI_DEVICE_ID_INTEL_RAID_SRCU41L_LAKE_SHETEK,
		PCI_VENDOR_ID_INTEL,
		PCI_SUBSYS_ID_INTEL_RAID_SRCU41L_LAKE_SHETEK,
	},
	{
		PCI_VENDOR_ID_LSI_LOGIC,
		PCI_DEVICE_ID_FSC_MEGARAID_PCI_EXPRESS_ROMB,
		PCI_SUBSYS_ID_FSC,
		PCI_SUBSYS_ID_FSC_MEGARAID_PCI_EXPRESS_ROMB,
	},
	{
		PCI_VENDOR_ID_LSI_LOGIC,
		PCI_DEVICE_ID_MEGARAID_ACER_ROMB_2E,
		PCI_VENDOR_ID_AI,
		PCI_SUBSYS_ID_MEGARAID_ACER_ROMB_2E,
	},
	{
		PCI_VENDOR_ID_LSI_LOGIC,
		PCI_DEVICE_ID_MEGARAID_NEC_ROMB_2E,
		PCI_VENDOR_ID_NEC,
		PCI_SUBSYS_ID_MEGARAID_NEC_ROMB_2E,
	},
	{0}	/* Terminating entry */
};
MODULE_DEVICE_TABLE(pci, pci_id_table_g);
@@ -539,7 +443,8 @@ megaraid_init(void)


	// register as a PCI hot-plug driver module
	if ((rval = pci_module_init(&megaraid_pci_driver_g))) {
	rval = pci_register_driver(&megaraid_pci_driver_g);
	if (rval < 0) {
		con_log(CL_ANN, (KERN_WARNING
			"megaraid: could not register hotplug support.\n"));
	}
@@ -619,7 +524,7 @@ megaraid_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)

	// Setup the default DMA mask. This would be changed later on
	// depending on hardware capabilities
	if (pci_set_dma_mask(adapter->pdev, 0xFFFFFFFF) != 0) {
	if (pci_set_dma_mask(adapter->pdev, DMA_32BIT_MASK) != 0) {

		con_log(CL_ANN, (KERN_WARNING
			"megaraid: pci_set_dma_mask failed:%d\n", __LINE__));
@@ -1031,7 +936,7 @@ megaraid_init_mbox(adapter_t *adapter)

	// Set the DMA mask to 64-bit. All supported controllers as capable of
	// DMA in this range
	if (pci_set_dma_mask(adapter->pdev, 0xFFFFFFFFFFFFFFFFULL) != 0) {
	if (pci_set_dma_mask(adapter->pdev, DMA_64BIT_MASK) != 0) {

		con_log(CL_ANN, (KERN_WARNING
			"megaraid: could not set DMA mask for 64-bit.\n"));
+5 −59
Original line number Diff line number Diff line
@@ -21,8 +21,8 @@
#include "megaraid_ioctl.h"


#define MEGARAID_VERSION	"2.20.4.5"
#define MEGARAID_EXT_VERSION	"(Release Date: Thu Feb 03 12:27:22 EST 2005)"
#define MEGARAID_VERSION	"2.20.4.6"
#define MEGARAID_EXT_VERSION	"(Release Date: Mon Mar 07 12:27:22 EST 2005)"


/*
@@ -37,8 +37,7 @@
#define PCI_DEVICE_ID_PERC4_DC				0x1960
#define PCI_SUBSYS_ID_PERC4_DC				0x0518

#define PCI_DEVICE_ID_PERC4_QC				0x0407
#define PCI_SUBSYS_ID_PERC4_QC				0x0531
#define PCI_DEVICE_ID_VERDE				0x0407

#define PCI_DEVICE_ID_PERC4_DI_EVERGLADES		0x000F
#define PCI_SUBSYS_ID_PERC4_DI_EVERGLADES		0x014A
@@ -58,11 +57,7 @@
#define PCI_DEVICE_ID_PERC4E_DI_GUADALUPE		0x0013
#define PCI_SUBSYS_ID_PERC4E_DI_GUADALUPE		0x0170

#define PCI_DEVICE_ID_PERC4E_DC_320_2E			0x0408
#define PCI_SUBSYS_ID_PERC4E_DC_320_2E			0x0002

#define PCI_DEVICE_ID_PERC4E_SC_320_1E			0x0408
#define PCI_SUBSYS_ID_PERC4E_SC_320_1E			0x0001
#define PCI_DEVICE_ID_DOBSON				0x0408

#define PCI_DEVICE_ID_MEGARAID_SCSI_320_0		0x1960
#define PCI_SUBSYS_ID_MEGARAID_SCSI_320_0		0xA520
@@ -73,21 +68,6 @@
#define PCI_DEVICE_ID_MEGARAID_SCSI_320_2		0x1960
#define PCI_SUBSYS_ID_MEGARAID_SCSI_320_2		0x0518

#define PCI_DEVICE_ID_MEGARAID_SCSI_320_0x		0x0407
#define PCI_SUBSYS_ID_MEGARAID_SCSI_320_0x		0x0530

#define PCI_DEVICE_ID_MEGARAID_SCSI_320_2x		0x0407
#define PCI_SUBSYS_ID_MEGARAID_SCSI_320_2x		0x0532

#define PCI_DEVICE_ID_MEGARAID_SCSI_320_4x		0x0407
#define PCI_SUBSYS_ID_MEGARAID_SCSI_320_4x		0x0531

#define PCI_DEVICE_ID_MEGARAID_SCSI_320_1E		0x0408
#define PCI_SUBSYS_ID_MEGARAID_SCSI_320_1E		0x0001

#define PCI_DEVICE_ID_MEGARAID_SCSI_320_2E		0x0408
#define PCI_SUBSYS_ID_MEGARAID_SCSI_320_2E		0x0002

#define PCI_DEVICE_ID_MEGARAID_I4_133_RAID		0x1960
#define PCI_SUBSYS_ID_MEGARAID_I4_133_RAID		0x0522

@@ -97,52 +77,18 @@
#define PCI_DEVICE_ID_MEGARAID_SATA_150_6		0x1960
#define PCI_SUBSYS_ID_MEGARAID_SATA_150_6		0x0523

#define PCI_DEVICE_ID_MEGARAID_SATA_300_4x		0x0409
#define PCI_SUBSYS_ID_MEGARAID_SATA_300_4x		0x3004

#define PCI_DEVICE_ID_MEGARAID_SATA_300_8x		0x0409
#define PCI_SUBSYS_ID_MEGARAID_SATA_300_8x		0x3008

#define PCI_DEVICE_ID_INTEL_RAID_SRCU42X		0x0407
#define PCI_SUBSYS_ID_INTEL_RAID_SRCU42X		0x0532
#define PCI_DEVICE_ID_LINDSAY				0x0409

#define PCI_DEVICE_ID_INTEL_RAID_SRCS16			0x1960
#define PCI_SUBSYS_ID_INTEL_RAID_SRCS16			0x0523

#define PCI_DEVICE_ID_INTEL_RAID_SRCU42E		0x0408
#define PCI_SUBSYS_ID_INTEL_RAID_SRCU42E		0x0002

#define PCI_DEVICE_ID_INTEL_RAID_SRCZCRX		0x0407
#define PCI_SUBSYS_ID_INTEL_RAID_SRCZCRX		0x0530

#define PCI_DEVICE_ID_INTEL_RAID_SRCS28X		0x0409
#define PCI_SUBSYS_ID_INTEL_RAID_SRCS28X		0x3008

#define PCI_DEVICE_ID_INTEL_RAID_SROMBU42E_ALIEF	0x0408
#define PCI_SUBSYS_ID_INTEL_RAID_SROMBU42E_ALIEF	0x3431

#define PCI_DEVICE_ID_INTEL_RAID_SROMBU42E_HARWICH	0x0408
#define PCI_SUBSYS_ID_INTEL_RAID_SROMBU42E_HARWICH	0x3499

#define PCI_DEVICE_ID_INTEL_RAID_SRCU41L_LAKE_SHETEK	0x1960
#define PCI_SUBSYS_ID_INTEL_RAID_SRCU41L_LAKE_SHETEK	0x0520

#define PCI_DEVICE_ID_FSC_MEGARAID_PCI_EXPRESS_ROMB	0x0408
#define PCI_SUBSYS_ID_FSC_MEGARAID_PCI_EXPRESS_ROMB	0x1065

#define PCI_DEVICE_ID_MEGARAID_ACER_ROMB_2E		0x0408
#define PCI_SUBSYS_ID_MEGARAID_ACER_ROMB_2E		0x004D

#define PCI_SUBSYS_ID_PERC3_QC				0x0471
#define PCI_SUBSYS_ID_PERC3_DC				0x0493
#define PCI_SUBSYS_ID_PERC3_SC				0x0475

#define PCI_DEVICE_ID_MEGARAID_NEC_ROMB_2E		0x0408
#define PCI_SUBSYS_ID_MEGARAID_NEC_ROMB_2E		0x8287

#ifndef PCI_SUBSYS_ID_FSC
#define PCI_SUBSYS_ID_FSC				0x1734
#endif

#define MBOX_MAX_SCSI_CMDS	128	// number of cmds reserved for kernel
#define MBOX_MAX_USER_CMDS	32	// number of cmds for applications
+4 −5
Original line number Diff line number Diff line
@@ -10,13 +10,12 @@
 *	   2 of the License, or (at your option) any later version.
 *
 * FILE		: megaraid_mm.c
 * Version	: v2.20.2.5 (Jan 21 2005)
 * Version	: v2.20.2.6 (Mar 7 2005)
 *
 * Common management module
 */

#include "megaraid_mm.h"
#include <linux/smp_lock.h>


// Entry points for char node driver
@@ -61,7 +60,7 @@ EXPORT_SYMBOL(mraid_mm_unregister_adp);
EXPORT_SYMBOL(mraid_mm_adapter_app_handle);

static int majorno;
static uint32_t drvr_ver	= 0x02200201;
static uint32_t drvr_ver	= 0x02200206;

static int adapters_count_g;
static struct list_head adapters_list_g;
@@ -1231,9 +1230,9 @@ mraid_mm_compat_ioctl(struct file *filep, unsigned int cmd,
		      unsigned long arg)
{
	int err;
	lock_kernel();

	err = mraid_mm_ioctl(NULL, filep, cmd, arg);
	unlock_kernel();

	return err;
}
#endif
Loading