Skip to content

Commit

Permalink
[SCSI] aic79xx: set precompensation
Browse files Browse the repository at this point in the history
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.

Signed-off-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
  • Loading branch information
Hannes Reinecke authored and James Bottomley committed Oct 25, 2006
1 parent 8883c1f commit 843822a
Showing 1 changed file with 15 additions and 1 deletion.
16 changes: 15 additions & 1 deletion drivers/scsi/aic7xxx/aic79xx_osm.c
Original file line number Diff line number Diff line change
Expand Up @@ -2636,8 +2636,22 @@ static void ahd_linux_set_pcomp_en(struct scsi_target *starget, int pcomp)
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);
Expand Down

0 comments on commit 843822a

Please sign in to comment.