aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/message/fusion/mptsas.c
diff options
context:
space:
mode:
authorGlenn Elliott <gelliott@cs.unc.edu>2012-03-04 19:47:13 -0500
committerGlenn Elliott <gelliott@cs.unc.edu>2012-03-04 19:47:13 -0500
commitc71c03bda1e86c9d5198c5d83f712e695c4f2a1e (patch)
treeecb166cb3e2b7e2adb3b5e292245fefd23381ac8 /drivers/message/fusion/mptsas.c
parentea53c912f8a86a8567697115b6a0d8152beee5c8 (diff)
parent6a00f206debf8a5c8899055726ad127dbeeed098 (diff)
Merge branch 'mpi-master' into wip-k-fmlpwip-k-fmlp
Conflicts: litmus/sched_cedf.c
Diffstat (limited to 'drivers/message/fusion/mptsas.c')
-rw-r--r--drivers/message/fusion/mptsas.c25
1 files changed, 15 insertions, 10 deletions
diff --git a/drivers/message/fusion/mptsas.c b/drivers/message/fusion/mptsas.c
index 83a5115f0251..7596aecd5072 100644
--- a/drivers/message/fusion/mptsas.c
+++ b/drivers/message/fusion/mptsas.c
@@ -307,7 +307,7 @@ mptsas_requeue_fw_event(MPT_ADAPTER *ioc, struct fw_event_work *fw_event,
307 spin_unlock_irqrestore(&ioc->fw_event_lock, flags); 307 spin_unlock_irqrestore(&ioc->fw_event_lock, flags);
308} 308}
309 309
310/* free memory assoicated to a sas firmware event */ 310/* free memory associated to a sas firmware event */
311static void 311static void
312mptsas_free_fw_event(MPT_ADAPTER *ioc, struct fw_event_work *fw_event) 312mptsas_free_fw_event(MPT_ADAPTER *ioc, struct fw_event_work *fw_event)
313{ 313{
@@ -1094,7 +1094,7 @@ mptsas_block_io_starget(struct scsi_target *starget)
1094/** 1094/**
1095 * mptsas_target_reset_queue 1095 * mptsas_target_reset_queue
1096 * 1096 *
1097 * Receive request for TARGET_RESET after recieving an firmware 1097 * Receive request for TARGET_RESET after receiving an firmware
1098 * event NOT_RESPONDING_EVENT, then put command in link list 1098 * event NOT_RESPONDING_EVENT, then put command in link list
1099 * and queue if task_queue already in use. 1099 * and queue if task_queue already in use.
1100 * 1100 *
@@ -1146,7 +1146,7 @@ mptsas_target_reset_queue(MPT_ADAPTER *ioc,
1146 * 1146 *
1147 * This function will delete scheduled target reset from the list and 1147 * This function will delete scheduled target reset from the list and
1148 * try to send next target reset. This will be called from completion 1148 * try to send next target reset. This will be called from completion
1149 * context of any Task managment command. 1149 * context of any Task management command.
1150 */ 1150 */
1151 1151
1152void 1152void
@@ -1403,7 +1403,7 @@ mptsas_sas_enclosure_pg0(MPT_ADAPTER *ioc, struct mptsas_enclosure *enclosure,
1403/** 1403/**
1404 * mptsas_add_end_device - report a new end device to sas transport layer 1404 * mptsas_add_end_device - report a new end device to sas transport layer
1405 * @ioc: Pointer to MPT_ADAPTER structure 1405 * @ioc: Pointer to MPT_ADAPTER structure
1406 * @phy_info: decribes attached device 1406 * @phy_info: describes attached device
1407 * 1407 *
1408 * return (0) success (1) failure 1408 * return (0) success (1) failure
1409 * 1409 *
@@ -1481,7 +1481,7 @@ mptsas_add_end_device(MPT_ADAPTER *ioc, struct mptsas_phyinfo *phy_info)
1481/** 1481/**
1482 * mptsas_del_end_device - report a deleted end device to sas transport layer 1482 * mptsas_del_end_device - report a deleted end device to sas transport layer
1483 * @ioc: Pointer to MPT_ADAPTER structure 1483 * @ioc: Pointer to MPT_ADAPTER structure
1484 * @phy_info: decribes attached device 1484 * @phy_info: describes attached device
1485 * 1485 *
1486 **/ 1486 **/
1487static void 1487static void
@@ -1889,7 +1889,7 @@ mptsas_slave_alloc(struct scsi_device *sdev)
1889} 1889}
1890 1890
1891static int 1891static int
1892mptsas_qcmd(struct scsi_cmnd *SCpnt, void (*done)(struct scsi_cmnd *)) 1892mptsas_qcmd_lck(struct scsi_cmnd *SCpnt, void (*done)(struct scsi_cmnd *))
1893{ 1893{
1894 MPT_SCSI_HOST *hd; 1894 MPT_SCSI_HOST *hd;
1895 MPT_ADAPTER *ioc; 1895 MPT_ADAPTER *ioc;
@@ -1913,6 +1913,8 @@ mptsas_qcmd(struct scsi_cmnd *SCpnt, void (*done)(struct scsi_cmnd *))
1913 return mptscsih_qcmd(SCpnt,done); 1913 return mptscsih_qcmd(SCpnt,done);
1914} 1914}
1915 1915
1916static DEF_SCSI_QCMD(mptsas_qcmd)
1917
1916/** 1918/**
1917 * mptsas_mptsas_eh_timed_out - resets the scsi_cmnd timeout 1919 * mptsas_mptsas_eh_timed_out - resets the scsi_cmnd timeout
1918 * if the device under question is currently in the 1920 * if the device under question is currently in the
@@ -1971,7 +1973,6 @@ static struct scsi_host_template mptsas_driver_template = {
1971 .change_queue_depth = mptscsih_change_queue_depth, 1973 .change_queue_depth = mptscsih_change_queue_depth,
1972 .eh_abort_handler = mptscsih_abort, 1974 .eh_abort_handler = mptscsih_abort,
1973 .eh_device_reset_handler = mptscsih_dev_reset, 1975 .eh_device_reset_handler = mptscsih_dev_reset,
1974 .eh_bus_reset_handler = mptscsih_bus_reset,
1975 .eh_host_reset_handler = mptscsih_host_reset, 1976 .eh_host_reset_handler = mptscsih_host_reset,
1976 .bios_param = mptscsih_bios_param, 1977 .bios_param = mptscsih_bios_param,
1977 .can_queue = MPT_SAS_CAN_QUEUE, 1978 .can_queue = MPT_SAS_CAN_QUEUE,
@@ -3061,6 +3062,9 @@ static int mptsas_probe_one_phy(struct device *dev,
3061 case MPI_SAS_IOUNIT0_RATE_3_0: 3062 case MPI_SAS_IOUNIT0_RATE_3_0:
3062 phy->negotiated_linkrate = SAS_LINK_RATE_3_0_GBPS; 3063 phy->negotiated_linkrate = SAS_LINK_RATE_3_0_GBPS;
3063 break; 3064 break;
3065 case MPI_SAS_IOUNIT0_RATE_6_0:
3066 phy->negotiated_linkrate = SAS_LINK_RATE_6_0_GBPS;
3067 break;
3064 case MPI_SAS_IOUNIT0_RATE_SATA_OOB_COMPLETE: 3068 case MPI_SAS_IOUNIT0_RATE_SATA_OOB_COMPLETE:
3065 case MPI_SAS_IOUNIT0_RATE_UNKNOWN: 3069 case MPI_SAS_IOUNIT0_RATE_UNKNOWN:
3066 default: 3070 default:
@@ -3689,7 +3693,8 @@ mptsas_send_link_status_event(struct fw_event_work *fw_event)
3689 } 3693 }
3690 3694
3691 if (link_rate == MPI_SAS_IOUNIT0_RATE_1_5 || 3695 if (link_rate == MPI_SAS_IOUNIT0_RATE_1_5 ||
3692 link_rate == MPI_SAS_IOUNIT0_RATE_3_0) { 3696 link_rate == MPI_SAS_IOUNIT0_RATE_3_0 ||
3697 link_rate == MPI_SAS_IOUNIT0_RATE_6_0) {
3693 3698
3694 if (!port_info) { 3699 if (!port_info) {
3695 if (ioc->old_sas_discovery_protocal) { 3700 if (ioc->old_sas_discovery_protocal) {
@@ -5007,7 +5012,6 @@ mptsas_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *reply)
5007 (ioc_stat & MPI_IOCSTATUS_FLAG_LOG_INFO_AVAILABLE)) { 5012 (ioc_stat & MPI_IOCSTATUS_FLAG_LOG_INFO_AVAILABLE)) {
5008 VirtTarget *vtarget = NULL; 5013 VirtTarget *vtarget = NULL;
5009 u8 id, channel; 5014 u8 id, channel;
5010 u32 log_info = le32_to_cpu(reply->IOCLogInfo);
5011 5015
5012 id = sas_event_data->TargetID; 5016 id = sas_event_data->TargetID;
5013 channel = sas_event_data->Bus; 5017 channel = sas_event_data->Bus;
@@ -5018,7 +5022,8 @@ mptsas_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *reply)
5018 "LogInfo (0x%x) available for " 5022 "LogInfo (0x%x) available for "
5019 "INTERNAL_DEVICE_RESET" 5023 "INTERNAL_DEVICE_RESET"
5020 "fw_id %d fw_channel %d\n", ioc->name, 5024 "fw_id %d fw_channel %d\n", ioc->name,
5021 log_info, id, channel)); 5025 le32_to_cpu(reply->IOCLogInfo),
5026 id, channel));
5022 if (vtarget->raidVolume) { 5027 if (vtarget->raidVolume) {
5023 devtprintk(ioc, printk(MYIOC_s_DEBUG_FMT 5028 devtprintk(ioc, printk(MYIOC_s_DEBUG_FMT
5024 "Skipping Raid Volume for inDMD\n", 5029 "Skipping Raid Volume for inDMD\n",