pm80xx: thermal, sas controller config and error handling update
Subsystems (2)
PATCH v5 12/12 pm80xx: thermal, sas controller config and error handling update
Quoted 1 line
From
ffe82b1efc42510239046909a7ac0aff10bb4162Mon Sep 17 00:00:00 2001
From: Sakthivel K <[email protected]>
Date: Tue, 19 Mar 2013 18:08:40 +0530
Subject: [PATCH V5 12/12] pm80xx: thermal, sas controller config and error handling update
Modified thermal configuration to happen after interrupt registration Added SAS controller configuration during initialization Added error handling logic to handle I_T_Nexus errors and variants
--- drivers/scsi/pm8001/pm8001_hwi.c | 2 +- drivers/scsi/pm8001/pm8001_init.c | 2 + drivers/scsi/pm8001/pm8001_sas.c | 66 ++++++++++++++++ drivers/scsi/pm8001/pm8001_sas.h | 2 + drivers/scsi/pm8001/pm80xx_hwi.c | 150 +++++++++++++++++++++++++++++++++---- drivers/scsi/pm8001/pm80xx_hwi.h | 44 +++++++++++- 6 files changed, 249 insertions(+), 17 deletions(-)
drivers/scsi/pm8001/pm8001_hwi.c +1 -1
@@ -1670,7 +1670,7 @@ void pm8001_work_fn(struct work_struct *work) }break ;case IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS : dev = pm8001_dev->sas_device; -pm8001_I_T_nexus_reset (dev); +pm8001_I_T_nexus_event_handler (dev);break ;case IO_OPEN_CNX_ERROR_STP_RESOURCES_BUSY : dev = pm8001_dev->sas_device;
drivers/scsi/pm8001/pm8001_init.c +2 -0
@@ -838,6 +838,8 @@ static int pm8001_pci_probe(struct pci_dev *pdev,if (pm8001_ha->chip_id != chip_8001) {for (i =1 ; i < pm8001_ha->number_of_intr; i++)PM8001_CHIP_DISP ->interrupt_enable (pm8001_ha, i); +/* setup thermal configuration. */ +pm80xx_set_thermal_config (pm8001_ha); }pm8001_init_sas_add (pm8001_ha);
drivers/scsi/pm8001/pm8001_sas.c +66 -0
72 lines not on this page · raw message
drivers/scsi/pm8001/pm8001_sas.h +2 -0
@@ -563,6 +563,7 @@ int pm8001_dev_found(struct domain_device *dev);void pm8001_dev_gone (struct domain_device *dev);int pm8001_lu_reset (struct domain_device *dev,u8 *lun);int pm8001_I_T_nexus_reset (struct domain_device *dev); +int pm8001_I_T_nexus_event_handler (struct domain_device *dev);int pm8001_query_task (struct sas_task *task); void pm8001_open_reject_retry( struct pm8001_hba_info *pm8001_ha,
@@ -625,6 +626,7 @@ void pm8001_free_task(struct sas_task *task);void pm8001_tag_free (struct pm8001_hba_info *pm8001_ha,u32 tag);struct pm8001_device *pm8001_find_dev (struct pm8001_hba_info *pm8001_ha,u32 device_id); +int pm80xx_set_thermal_config (struct pm8001_hba_info *pm8001_ha);int pm8001_bar4_shift (struct pm8001_hba_info *pm8001_ha,u32 shiftValue);
drivers/scsi/pm8001/pm80xx_hwi.c +135 -15
228 lines not on this page · raw message
drivers/scsi/pm8001/pm80xx_hwi.h +43 -1
62 lines not on this page · raw message
Signature · 1 line
1.7.1
James Bottomley
maintainerQuoted 4 lines · Anand
drivers/scsi/pm8001/pm80xx_hwi.h +0
-0
[...]
Quoted 8 lines
drivers/scsi/pm8001/pm80xx_hwi.h +4
-0@@ -996,6 +1020,23 @@ struct ssp_coalesced_comp_resp {/* new outbound structure for spcv - ends */ +/* brief data structure for SAS protocol timer configuration page. +* +*/ +struct SASProtocolTimerConfig {
drivers/scsi/pm8001/pm80xx_hwi.h struct ssp_coalesced_comp_resp { · line 1036
Quoted 10 lines
drivers/scsi/pm8001/pm80xx_hwi.h +10
-0+__le32 pageCode;/* 0 */ +__le32 MST_MSI ;/* 1 */ +__le32 STP_SSP_MCT_TMO ;/* 2 */ +__le32 STP_FRM_TMO ;/* 3 */ +__le32 STP_IDLE_TMO ;/* 4 */ +__le32 OPNRJT_RTRY_INTVL ;/* 5 */ +__le32 Data_Cmd_OPNRJT_RTRY_TMO;/* 6 */ +__le32 Data_Cmd_OPNRJT_RTRY_THR;/* 7 */ +__le32 MAX_AIP ;/* 8 */ +} __attribute__((packed, aligned(4)));
This is wrongly aligned using spaces instead of tabs ... since the rest of the file is OK, you cut and pasted this from somewhere. checkpatch.pl warns about this stuff, please use it.
James