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

Commit d4366414 authored by Jens Axboe's avatar Jens Axboe
Browse files

cpqarray: remove it from the kernel



We disabled the ability to enable this driver back in October of 2013,
we should be able to safely remove it at this point. The initial goal
was to remove it in 3.15, so now is the time.

Signed-off-by: default avatarJens Axboe <axboe@fb.com>
parent 516fdcea
Loading
Loading
Loading
Loading
+0 −93
Original line number Diff line number Diff line
This driver is for Compaq's SMART2 Intelligent Disk Array Controllers.

Supported Cards:
----------------

This driver is known to work with the following cards:

	* SMART (EISA)
	* SMART-2/E (EISA)
	* SMART-2/P
	* SMART-2DH
	* SMART-2SL
	* SMART-221
	* SMART-3100ES
	* SMART-3200
	* Integrated Smart Array Controller
	* SA 4200
	* SA 4250ES
	* SA 431
	* RAID LC2 Controller

It should also work with some really old Disk array adapters, but I am
unable to test against these cards:

	* IDA
	* IDA-2
	* IAES


EISA Controllers:
-----------------

If you want to use an EISA controller you'll have to supply some
modprobe/lilo parameters.  If the driver is compiled into the kernel, must
give it the controller's IO port address at boot time (it is not
necessary to specify the IRQ).  For example, if you had two SMART-2/E
controllers, in EISA slots 1 and 2 you'd give it a boot argument like
this:

	smart2=0x1000,0x2000

If you were loading the driver as a module, you'd give load it like this:

	modprobe cpqarray eisa=0x1000,0x2000

You can use EISA and PCI adapters at the same time.


Device Naming:
--------------

You need some entries in /dev for the ida device.  MAKEDEV in the /dev
directory can make device nodes for you automatically.  The device setup is
as follows:

Major numbers:
	72	ida0
	73	ida1
	74	ida2
	75	ida3
	76	ida4
	77	ida5
	78	ida6
	79	ida7

Minor numbers:
        b7 b6 b5 b4 b3 b2 b1 b0
        |----+----| |----+----|
             |           |
             |           +-------- Partition ID (0=wholedev, 1-15 partition)
             |
             +-------------------- Logical Volume number

The device naming scheme is:
/dev/ida/c0d0		Controller 0, disk 0, whole device
/dev/ida/c0d0p1		Controller 0, disk 0, partition 1
/dev/ida/c0d0p2		Controller 0, disk 0, partition 2
/dev/ida/c0d0p3		Controller 0, disk 0, partition 3

/dev/ida/c1d1		Controller 1, disk 1, whole device
/dev/ida/c1d1p1		Controller 1, disk 1, partition 1
/dev/ida/c1d1p2		Controller 1, disk 1, partition 2
/dev/ida/c1d1p3		Controller 1, disk 1, partition 3


Changelog:
==========

10-28-2004 :	General cleanup, syntax fixes for in-kernel driver version.
		James Nelson <james4765@gmail.com>


1999 :		Original Document
+0 −6
Original line number Diff line number Diff line
@@ -4988,12 +4988,6 @@ T: git git://linuxtv.org/anttip/media_tree.git
S:	Maintained
F:	drivers/media/dvb-frontends/hd29l2*

HEWLETT-PACKARD SMART2 RAID DRIVER
L:	iss_storagedev@hp.com
S:	Orphan
F:	Documentation/blockdev/cpqarray.txt
F:	drivers/block/cpqarray.*

HEWLETT-PACKARD SMART ARRAY RAID DRIVER (hpsa)
M:	Don Brace <don.brace@pmcs.com>
L:	iss_storagedev@hp.com
+0 −10
Original line number Diff line number Diff line
@@ -110,16 +110,6 @@ source "drivers/block/mtip32xx/Kconfig"

source "drivers/block/zram/Kconfig"

config BLK_CPQ_DA
	tristate "Compaq SMART2 support"
	depends on PCI && VIRT_TO_BUS && 0
	help
	  This is the driver for Compaq Smart Array controllers.  Everyone
	  using these boards should say Y here.  See the file
	  <file:Documentation/blockdev/cpqarray.txt> for the current list of
	  boards supported by this driver, and for further information on the
	  use of this driver.

config BLK_CPQ_CISS_DA
	tristate "Compaq Smart Array 5xxx support"
	depends on PCI

drivers/block/cpqarray.c

deleted100644 → 0
+0 −1820

File deleted.

Preview size limit exceeded, changes collapsed.

drivers/block/cpqarray.h

deleted100644 → 0
+0 −126
Original line number Diff line number Diff line
/*
 *    Disk Array driver for Compaq SMART2 Controllers
 *    Copyright 1998 Compaq Computer Corporation
 *
 *    This program is free software; you can redistribute it and/or modify
 *    it under the terms of the GNU General Public License as published by
 *    the Free Software Foundation; either version 2 of the License, or
 *    (at your option) any later version.
 *
 *    This program is distributed in the hope that it will be useful,
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
 *    MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
 *    NON INFRINGEMENT.  See the GNU General Public License for more details.
 *
 *    You should have received a copy of the GNU General Public License
 *    along with this program; if not, write to the Free Software
 *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 *
 *    Questions/Comments/Bugfixes to iss_storagedev@hp.com
 *
 *    If you want to make changes, improve or add functionality to this
 *    driver, you'll probably need the Compaq Array Controller Interface
 *    Specificiation (Document number ECG086/1198)
 */
#ifndef CPQARRAY_H
#define CPQARRAY_H

#ifdef __KERNEL__
#include <linux/blkdev.h>
#include <linux/slab.h>
#include <linux/proc_fs.h>
#include <linux/timer.h>
#endif

#include "ida_cmd.h"

#define IO_OK		0
#define IO_ERROR	1
#define NWD		16
#define NWD_SHIFT	4

#define IDA_TIMER	(5*HZ)
#define IDA_TIMEOUT	(10*HZ)

#define MISC_NONFATAL_WARN	0x01

typedef struct {
	unsigned blk_size;
	unsigned nr_blks;
	unsigned cylinders;
	unsigned heads;
	unsigned sectors;
	int usage_count;
} drv_info_t;

#ifdef __KERNEL__

struct ctlr_info;
typedef struct ctlr_info ctlr_info_t;

struct access_method {
	void (*submit_command)(ctlr_info_t *h, cmdlist_t *c);
	void (*set_intr_mask)(ctlr_info_t *h, unsigned long val);
	unsigned long (*fifo_full)(ctlr_info_t *h);
	unsigned long (*intr_pending)(ctlr_info_t *h);
	unsigned long (*command_completed)(ctlr_info_t *h);
};

struct board_type {
	__u32	board_id;
	char	*product_name;
	struct access_method *access;
};

struct ctlr_info {
	int	ctlr;
	char	devname[8];
	__u32	log_drv_map;
	__u32	drv_assign_map;
	__u32	drv_spare_map;
	__u32	mp_failed_drv_map;

	char	firm_rev[4];
	int	ctlr_sig;

	int	log_drives;
	int	phys_drives;

	struct pci_dev *pci_dev;    /* NULL if EISA */
	__u32	board_id;
	char	*product_name;	

	void __iomem *vaddr;
	unsigned long paddr;
	unsigned long io_mem_addr;
	unsigned long io_mem_length;
	int	intr;
	int	usage_count;
	drv_info_t	drv[NWD];
	struct proc_dir_entry *proc;

	struct access_method access;

	cmdlist_t *reqQ;
	cmdlist_t *cmpQ;
	cmdlist_t *cmd_pool;
	dma_addr_t cmd_pool_dhandle;
	unsigned long *cmd_pool_bits;
	struct request_queue *queue;
	spinlock_t lock;

	unsigned int Qdepth;
	unsigned int maxQsinceinit;

	unsigned int nr_requests;
	unsigned int nr_allocs;
	unsigned int nr_frees;
	struct timer_list timer;
	unsigned int misc_tflags;
};

#define IDA_LOCK(i)	(&hba[i]->lock)

#endif

#endif /* CPQARRAY_H */
Loading