aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/aic7xxx/aic79xx_osm.h
diff options
context:
space:
mode:
authorHannes Reinecke <hare@suse.de>2005-07-22 10:42:28 -0400
committerJames Bottomley <jejb@mulgrave.(none)>2005-08-03 12:25:36 -0400
commit60a13213840296b1e32d6781653a0eaa83d04382 (patch)
treef1fe8ccfa5336a820796077c546de61145d29905 /drivers/scsi/aic7xxx/aic79xx_osm.h
parent8d6810d33e5e43b11675190318a81303c601a568 (diff)
[SCSI] aic79xx: Remove busyq
From: Jeff Garzik <jgarzik@pobox.com> This patch removes the busyq in aic79xx and uses the command-queue from the midlayer instead. Additionally some dead code is removed. Signed-off-by: Hannes Reinecke <hare@suse.de> Fixed rejections Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/aic7xxx/aic79xx_osm.h')
-rw-r--r--drivers/scsi/aic7xxx/aic79xx_osm.h26
1 files changed, 1 insertions, 25 deletions
diff --git a/drivers/scsi/aic7xxx/aic79xx_osm.h b/drivers/scsi/aic7xxx/aic79xx_osm.h
index 7823e52e99ab..792e97fef5b8 100644
--- a/drivers/scsi/aic7xxx/aic79xx_osm.h
+++ b/drivers/scsi/aic7xxx/aic79xx_osm.h
@@ -252,11 +252,7 @@ ahd_scb_timer_reset(struct scb *scb, u_int usec)
252/***************************** SMP support ************************************/ 252/***************************** SMP support ************************************/
253#include <linux/spinlock.h> 253#include <linux/spinlock.h>
254 254
255#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0) || defined(SCSI_HAS_HOST_LOCK))
256#define AHD_SCSI_HAS_HOST_LOCK 1 255#define AHD_SCSI_HAS_HOST_LOCK 1
257#else
258#define AHD_SCSI_HAS_HOST_LOCK 0
259#endif
260 256
261#define AIC79XX_DRIVER_VERSION "1.3.11" 257#define AIC79XX_DRIVER_VERSION "1.3.11"
262 258
@@ -297,12 +293,11 @@ struct ahd_cmd {
297 * after a successfully completed inquiry command to the target when 293 * after a successfully completed inquiry command to the target when
298 * that inquiry data indicates a lun is present. 294 * that inquiry data indicates a lun is present.
299 */ 295 */
300TAILQ_HEAD(ahd_busyq, ahd_cmd); 296
301typedef enum { 297typedef enum {
302 AHD_DEV_UNCONFIGURED = 0x01, 298 AHD_DEV_UNCONFIGURED = 0x01,
303 AHD_DEV_FREEZE_TIL_EMPTY = 0x02, /* Freeze queue until active == 0 */ 299 AHD_DEV_FREEZE_TIL_EMPTY = 0x02, /* Freeze queue until active == 0 */
304 AHD_DEV_TIMER_ACTIVE = 0x04, /* Our timer is active */ 300 AHD_DEV_TIMER_ACTIVE = 0x04, /* Our timer is active */
305 AHD_DEV_ON_RUN_LIST = 0x08, /* Queued to be run later */
306 AHD_DEV_Q_BASIC = 0x10, /* Allow basic device queuing */ 301 AHD_DEV_Q_BASIC = 0x10, /* Allow basic device queuing */
307 AHD_DEV_Q_TAGGED = 0x20, /* Allow full SCSI2 command queueing */ 302 AHD_DEV_Q_TAGGED = 0x20, /* Allow full SCSI2 command queueing */
308 AHD_DEV_PERIODIC_OTAG = 0x40, /* Send OTAG to prevent starvation */ 303 AHD_DEV_PERIODIC_OTAG = 0x40, /* Send OTAG to prevent starvation */
@@ -312,7 +307,6 @@ typedef enum {
312struct ahd_linux_target; 307struct ahd_linux_target;
313struct ahd_linux_device { 308struct ahd_linux_device {
314 TAILQ_ENTRY(ahd_linux_device) links; 309 TAILQ_ENTRY(ahd_linux_device) links;
315 struct ahd_busyq busyq;
316 310
317 /* 311 /*
318 * The number of transactions currently 312 * The number of transactions currently
@@ -453,18 +447,7 @@ struct ahd_linux_target {
453 * manner and are allocated below 4GB, the number of S/G segments is 447 * manner and are allocated below 4GB, the number of S/G segments is
454 * unrestricted. 448 * unrestricted.
455 */ 449 */
456#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
457/*
458 * We dynamically adjust the number of segments in pre-2.5 kernels to
459 * avoid fragmentation issues in the SCSI mid-layer's private memory
460 * allocator. See aic79xx_osm.c ahd_linux_size_nseg() for details.
461 */
462extern u_int ahd_linux_nseg;
463#define AHD_NSEG ahd_linux_nseg
464#define AHD_LINUX_MIN_NSEG 64
465#else
466#define AHD_NSEG 128 450#define AHD_NSEG 128
467#endif
468 451
469/* 452/*
470 * Per-SCB OSM storage. 453 * Per-SCB OSM storage.
@@ -502,11 +485,9 @@ struct ahd_platform_data {
502 * Fields accessed from interrupt context. 485 * Fields accessed from interrupt context.
503 */ 486 */
504 struct ahd_linux_target *targets[AHD_NUM_TARGETS]; 487 struct ahd_linux_target *targets[AHD_NUM_TARGETS];
505 TAILQ_HEAD(, ahd_linux_device) device_runq;
506 struct ahd_completeq completeq; 488 struct ahd_completeq completeq;
507 489
508 spinlock_t spin_lock; 490 spinlock_t spin_lock;
509 struct tasklet_struct runq_tasklet;
510 u_int qfrozen; 491 u_int qfrozen;
511 pid_t dv_pid; 492 pid_t dv_pid;
512 struct timer_list completeq_timer; 493 struct timer_list completeq_timer;
@@ -925,12 +906,8 @@ ahd_flush_device_writes(struct ahd_softc *ahd)
925} 906}
926 907
927/**************************** Proc FS Support *********************************/ 908/**************************** Proc FS Support *********************************/
928#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
929int ahd_linux_proc_info(char *, char **, off_t, int, int, int);
930#else
931int ahd_linux_proc_info(struct Scsi_Host *, char *, char **, 909int ahd_linux_proc_info(struct Scsi_Host *, char *, char **,
932 off_t, int, int); 910 off_t, int, int);
933#endif
934 911
935/*************************** Domain Validation ********************************/ 912/*************************** Domain Validation ********************************/
936#define AHD_DV_CMD(cmd) ((cmd)->scsi_done == ahd_linux_dv_complete) 913#define AHD_DV_CMD(cmd) ((cmd)->scsi_done == ahd_linux_dv_complete)
@@ -1117,7 +1094,6 @@ void ahd_done(struct ahd_softc*, struct scb*);
1117void ahd_send_async(struct ahd_softc *, char channel, 1094void ahd_send_async(struct ahd_softc *, char channel,
1118 u_int target, u_int lun, ac_code, void *); 1095 u_int target, u_int lun, ac_code, void *);
1119void ahd_print_path(struct ahd_softc *, struct scb *); 1096void ahd_print_path(struct ahd_softc *, struct scb *);
1120void ahd_platform_dump_card_state(struct ahd_softc *ahd);
1121 1097
1122#ifdef CONFIG_PCI 1098#ifdef CONFIG_PCI
1123#define AHD_PCI_CONFIG 1 1099#define AHD_PCI_CONFIG 1