Skip to contentSkip to conversation

pm80xx: thermal, sas controller config and error handling update

PATCH Superseded Anand 1 participant 1 message Apr 18, 2013

Subsystems (2)

v4 of 5 Superseded Latest is v5 →

lore
Share & tools
lore

Anand

author
#0 lore raw

PATCH v4 12/12 pm80xx: thermal, sas controller config and error handling update

Quoted 1 line

From ffe82b1efc42510239046909a7ac0aff10bb4162 Mon Sep 17 00:00:00 2001

From: Sakthivel K <[email protected]>
Date: Tue, 19 Mar 2013 18:08:40 +0530
Subject: [PATCH V4 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
index a90c002..d18f421 100644
@@ -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
index 055f7d0..1c71852 100644
@@ -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
index ab30193..72d46ea 100644
@@ -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