Skip to contentSkip to conversation

aic79xx: set precompensation

PATCH In review Hannes Reinecke 1 participant 1 message Oct 23, 2006

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 2/4 aic79xx: set precompensation

Hi all,

we really should update the IOCELL chip whenever we change the precompensation.

Cheers,

Hannes

Signature · 4 lines
Dr. Hannes Reinecke			[email protected]
SuSE Linux Products GmbH		S390 & zSeries
Maxfeldstraße 5				+49 911 74053 688
90409 Nürnberg				http://www.suse.de

From: Hannes Reinecke <[email protected]>
Date: Mon Oct 23 11:02:57 2006 +0200
Subject: aic79xx: Set precompensation correctly

aic79xx has a special 'iocell' chip which handles the precompensation. If it's set via DV we should make sure to set the chip correctly, too.

---

 drivers/scsi/aic7xxx/aic79xx_osm.c |   16 +++++++++++++++-
 1 files changed, 15 insertions(+), 1 deletions(-)

2f3de401cc38fa20f861470c035a7d088bc23ede

drivers/scsi/aic7xxx/aic79xx_osm.c +15 -1
index f8e6048..d5375db 100644
@@ -2634,8 +2634,22 @@ #ifdef AHD_DEBUG
 		       pcomp ? "Enable" : "Disable");
 #endif
 
-	if (pcomp)
+	if (pcomp) {
+		uint8_t precomp;
+
+		if (ahd->unit < ARRAY_SIZE(aic79xx_iocell_info)) {
+			struct ahd_linux_iocell_opts *iocell_opts;
+
+			iocell_opts = &aic79xx_iocell_info[ahd->unit];
+			precomp = iocell_opts->precomp;
+		} else {
+			precomp = AIC79XX_DEFAULT_PRECOMP;
+		}
 		ppr_options |= MSG_EXT_PPR_PCOMP_EN;
+		AHD_SET_PRECOMP(ahd, precomp);
+	} else {
+		AHD_SET_PRECOMP(ahd, 0);
+	}
 
 	ahd_compile_devinfo(&devinfo, shost->this_id, starget->id, 0,
 			    starget->channel + 'A', ROLE_INITIATOR);
Signature · 1 line
1.3.1