aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/mpt2sas/mpt2sas_base.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/mpt2sas/mpt2sas_base.h')
-rw-r--r--drivers/scsi/mpt2sas/mpt2sas_base.h36
1 files changed, 14 insertions, 22 deletions
diff --git a/drivers/scsi/mpt2sas/mpt2sas_base.h b/drivers/scsi/mpt2sas/mpt2sas_base.h
index e18b0544c38f..b4afe431ac1e 100644
--- a/drivers/scsi/mpt2sas/mpt2sas_base.h
+++ b/drivers/scsi/mpt2sas/mpt2sas_base.h
@@ -3,7 +3,7 @@
3 * for access to MPT (Message Passing Technology) firmware. 3 * for access to MPT (Message Passing Technology) firmware.
4 * 4 *
5 * This code is based on drivers/scsi/mpt2sas/mpt2_base.h 5 * This code is based on drivers/scsi/mpt2sas/mpt2_base.h
6 * Copyright (C) 2007-2009 LSI Corporation 6 * Copyright (C) 2007-2010 LSI Corporation
7 * (mailto:DL-MPTFusionLinux@lsi.com) 7 * (mailto:DL-MPTFusionLinux@lsi.com)
8 * 8 *
9 * This program is free software; you can redistribute it and/or 9 * This program is free software; you can redistribute it and/or
@@ -69,11 +69,11 @@
69#define MPT2SAS_DRIVER_NAME "mpt2sas" 69#define MPT2SAS_DRIVER_NAME "mpt2sas"
70#define MPT2SAS_AUTHOR "LSI Corporation <DL-MPTFusionLinux@lsi.com>" 70#define MPT2SAS_AUTHOR "LSI Corporation <DL-MPTFusionLinux@lsi.com>"
71#define MPT2SAS_DESCRIPTION "LSI MPT Fusion SAS 2.0 Device Driver" 71#define MPT2SAS_DESCRIPTION "LSI MPT Fusion SAS 2.0 Device Driver"
72#define MPT2SAS_DRIVER_VERSION "04.100.01.00" 72#define MPT2SAS_DRIVER_VERSION "05.100.00.02"
73#define MPT2SAS_MAJOR_VERSION 04 73#define MPT2SAS_MAJOR_VERSION 05
74#define MPT2SAS_MINOR_VERSION 100 74#define MPT2SAS_MINOR_VERSION 100
75#define MPT2SAS_BUILD_VERSION 01 75#define MPT2SAS_BUILD_VERSION 00
76#define MPT2SAS_RELEASE_VERSION 00 76#define MPT2SAS_RELEASE_VERSION 02
77 77
78/* 78/*
79 * Set MPT2SAS_SG_DEPTH value based on user input. 79 * Set MPT2SAS_SG_DEPTH value based on user input.
@@ -119,7 +119,6 @@
119#define MPT2_IOC_PRE_RESET 1 /* prior to host reset */ 119#define MPT2_IOC_PRE_RESET 1 /* prior to host reset */
120#define MPT2_IOC_AFTER_RESET 2 /* just after host reset */ 120#define MPT2_IOC_AFTER_RESET 2 /* just after host reset */
121#define MPT2_IOC_DONE_RESET 3 /* links re-initialized */ 121#define MPT2_IOC_DONE_RESET 3 /* links re-initialized */
122#define MPT2_IOC_RUNNING 4 /* shost running */
123 122
124/* 123/*
125 * logging format 124 * logging format
@@ -260,16 +259,6 @@ struct _internal_cmd {
260 u16 smid; 259 u16 smid;
261}; 260};
262 261
263/*
264 * SAS Topology Structures
265 */
266
267#define MPTSAS_STATE_TR_SEND 0x0001
268#define MPTSAS_STATE_TR_COMPLETE 0x0002
269#define MPTSAS_STATE_CNTRL_SEND 0x0004
270#define MPTSAS_STATE_CNTRL_COMPLETE 0x0008
271
272#define MPT2SAS_REQ_SAS_CNTRL 0x0010
273 262
274/** 263/**
275 * struct _sas_device - attached device information 264 * struct _sas_device - attached device information
@@ -307,7 +296,6 @@ struct _sas_device {
307 u16 slot; 296 u16 slot;
308 u8 hidden_raid_component; 297 u8 hidden_raid_component;
309 u8 responding; 298 u8 responding;
310 u16 state;
311}; 299};
312 300
313/** 301/**
@@ -378,6 +366,7 @@ struct _sas_port {
378 * @phy_id: unique phy id 366 * @phy_id: unique phy id
379 * @handle: device handle for this phy 367 * @handle: device handle for this phy
380 * @attached_handle: device handle for attached device 368 * @attached_handle: device handle for attached device
369 * @phy_belongs_to_port: port has been created for this phy
381 */ 370 */
382struct _sas_phy { 371struct _sas_phy {
383 struct list_head port_siblings; 372 struct list_head port_siblings;
@@ -387,6 +376,7 @@ struct _sas_phy {
387 u8 phy_id; 376 u8 phy_id;
388 u16 handle; 377 u16 handle;
389 u16 attached_handle; 378 u16 attached_handle;
379 u8 phy_belongs_to_port;
390}; 380};
391 381
392/** 382/**
@@ -603,7 +593,6 @@ struct MPT2SAS_ADAPTER {
603 /* fw event handler */ 593 /* fw event handler */
604 char firmware_event_name[20]; 594 char firmware_event_name[20];
605 struct workqueue_struct *firmware_event_thread; 595 struct workqueue_struct *firmware_event_thread;
606 u8 fw_events_off;
607 spinlock_t fw_event_lock; 596 spinlock_t fw_event_lock;
608 struct list_head fw_event_list; 597 struct list_head fw_event_list;
609 598
@@ -611,6 +600,7 @@ struct MPT2SAS_ADAPTER {
611 int aen_event_read_flag; 600 int aen_event_read_flag;
612 u8 broadcast_aen_busy; 601 u8 broadcast_aen_busy;
613 u8 shost_recovery; 602 u8 shost_recovery;
603 struct completion shost_recovery_done;
614 spinlock_t ioc_reset_in_progress_lock; 604 spinlock_t ioc_reset_in_progress_lock;
615 u8 ioc_link_reset_in_progress; 605 u8 ioc_link_reset_in_progress;
616 u8 ignore_loginfos; 606 u8 ignore_loginfos;
@@ -688,7 +678,8 @@ struct MPT2SAS_ADAPTER {
688 dma_addr_t request_dma; 678 dma_addr_t request_dma;
689 u32 request_dma_sz; 679 u32 request_dma_sz;
690 struct request_tracker *scsi_lookup; 680 struct request_tracker *scsi_lookup;
691 spinlock_t scsi_lookup_lock; 681 ulong scsi_lookup_pages;
682 spinlock_t scsi_lookup_lock;
692 struct list_head free_list; 683 struct list_head free_list;
693 int pending_io_count; 684 int pending_io_count;
694 wait_queue_head_t reset_wq; 685 wait_queue_head_t reset_wq;
@@ -700,7 +691,7 @@ struct MPT2SAS_ADAPTER {
700 u16 max_sges_in_chain_message; 691 u16 max_sges_in_chain_message;
701 u16 chains_needed_per_io; 692 u16 chains_needed_per_io;
702 u16 chain_offset_value_for_main_message; 693 u16 chain_offset_value_for_main_message;
703 u16 chain_depth; 694 u32 chain_depth;
704 695
705 /* hi-priority queue */ 696 /* hi-priority queue */
706 u16 hi_priority_smid; 697 u16 hi_priority_smid;
@@ -814,8 +805,9 @@ void mpt2sas_halt_firmware(struct MPT2SAS_ADAPTER *ioc);
814/* scsih shared API */ 805/* scsih shared API */
815u8 mpt2sas_scsih_event_callback(struct MPT2SAS_ADAPTER *ioc, u8 msix_index, 806u8 mpt2sas_scsih_event_callback(struct MPT2SAS_ADAPTER *ioc, u8 msix_index,
816 u32 reply); 807 u32 reply);
817void mpt2sas_scsih_issue_tm(struct MPT2SAS_ADAPTER *ioc, u16 handle, uint lun, 808int mpt2sas_scsih_issue_tm(struct MPT2SAS_ADAPTER *ioc, u16 handle,
818 u8 type, u16 smid_task, ulong timeout); 809 uint channel, uint id, uint lun, u8 type, u16 smid_task,
810 ulong timeout, struct scsi_cmnd *scmd);
819void mpt2sas_scsih_set_tm_flag(struct MPT2SAS_ADAPTER *ioc, u16 handle); 811void mpt2sas_scsih_set_tm_flag(struct MPT2SAS_ADAPTER *ioc, u16 handle);
820void mpt2sas_scsih_clear_tm_flag(struct MPT2SAS_ADAPTER *ioc, u16 handle); 812void mpt2sas_scsih_clear_tm_flag(struct MPT2SAS_ADAPTER *ioc, u16 handle);
821struct _sas_node *mpt2sas_scsih_expander_find_by_handle(struct MPT2SAS_ADAPTER *ioc, 813struct _sas_node *mpt2sas_scsih_expander_find_by_handle(struct MPT2SAS_ADAPTER *ioc,