aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/aic7xxx/aic7xxx_osm.h
diff options
context:
space:
mode:
authorJames Bottomley <James.Bottomley@steeleye.com>2005-05-24 18:15:43 -0400
committerJames Bottomley <jejb@mulgrave.(none)>2005-05-26 14:28:31 -0400
commitb1abb4d67f2a706f52a95064001e0c55d9be2d26 (patch)
tree4095e216afd32cc1681718fa41ad8ca4e37b77fb /drivers/scsi/aic7xxx/aic7xxx_osm.h
parent153b1e1fd957861e2c185473dd3c3d93561066e4 (diff)
[SCSI] aic7xxx: remove separate target and device allocations
Since the aic driver is now taught to speak in terms of the generic linux devices, we can now also dispense with the transport class get routines (since we update the parameters when the driver sees they change) and also plumb it into the spi transport transfer agreement reporting infrastructure. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/aic7xxx/aic7xxx_osm.h')
-rw-r--r--drivers/scsi/aic7xxx/aic7xxx_osm.h15
1 files changed, 4 insertions, 11 deletions
diff --git a/drivers/scsi/aic7xxx/aic7xxx_osm.h b/drivers/scsi/aic7xxx/aic7xxx_osm.h
index 30c200d5bcd5..b135c8c787bb 100644
--- a/drivers/scsi/aic7xxx/aic7xxx_osm.h
+++ b/drivers/scsi/aic7xxx/aic7xxx_osm.h
@@ -79,6 +79,8 @@
79#include <scsi/scsi_device.h> 79#include <scsi/scsi_device.h>
80#include <scsi/scsi_host.h> 80#include <scsi/scsi_host.h>
81#include <scsi/scsi_tcq.h> 81#include <scsi/scsi_tcq.h>
82#include <scsi/scsi_transport.h>
83#include <scsi/scsi_transport_spi.h>
82 84
83/* Core SCSI definitions */ 85/* Core SCSI definitions */
84#define AIC_LIB_PREFIX ahc 86#define AIC_LIB_PREFIX ahc
@@ -330,8 +332,6 @@ typedef enum {
330 332
331struct ahc_linux_target; 333struct ahc_linux_target;
332struct ahc_linux_device { 334struct ahc_linux_device {
333 TAILQ_ENTRY(ahc_linux_device) links;
334
335 /* 335 /*
336 * The number of transactions currently 336 * The number of transactions currently
337 * queued to the device. 337 * queued to the device.
@@ -401,17 +401,10 @@ struct ahc_linux_device {
401 */ 401 */
402 u_int commands_since_idle_or_otag; 402 u_int commands_since_idle_or_otag;
403#define AHC_OTAG_THRESH 500 403#define AHC_OTAG_THRESH 500
404
405 int lun;
406 struct scsi_device *scsi_device;
407 struct ahc_linux_target *target;
408}; 404};
409 405
410struct ahc_linux_target { 406struct ahc_linux_target {
411 struct ahc_linux_device *devices[AHC_NUM_LUNS]; 407 struct scsi_device *sdev[AHC_NUM_LUNS];
412 int channel;
413 int target;
414 int refcount;
415 struct ahc_transinfo last_tinfo; 408 struct ahc_transinfo last_tinfo;
416 struct ahc_softc *ahc; 409 struct ahc_softc *ahc;
417}; 410};
@@ -445,7 +438,7 @@ struct ahc_platform_data {
445 /* 438 /*
446 * Fields accessed from interrupt context. 439 * Fields accessed from interrupt context.
447 */ 440 */
448 struct ahc_linux_target *targets[AHC_NUM_TARGETS]; 441 struct scsi_target *starget[AHC_NUM_TARGETS];
449 442
450 spinlock_t spin_lock; 443 spinlock_t spin_lock;
451 u_int qfrozen; 444 u_int qfrozen;