Author: mav Date: Tue Mar 3 06:39:38 2009 New Revision: 189295 URL: http://svn.freebsd.org/changeset/base/189295
Log: Set PortMultiplier port only for SATA2 channels, where it is applicable. Doing it on old SATA controllers like Promise PDC20375 SATA150 breaks their operation. Tested by: marcus on PDC20375 Modified: head/sys/dev/ata/chipsets/ata-promise.c Modified: head/sys/dev/ata/chipsets/ata-promise.c ============================================================================== --- head/sys/dev/ata/chipsets/ata-promise.c Tue Mar 3 03:33:25 2009 (r189294) +++ head/sys/dev/ata/chipsets/ata-promise.c Tue Mar 3 06:39:38 2009 (r189295) @@ -690,8 +690,11 @@ ata_promise_mio_command(struct ata_reque ATA_OUTL(ctlr->r_res2, (ch->unit + 1) << 2, 0x00000001); - /* set portmultiplier port */ - ATA_OUTB(ctlr->r_res2, 0x4e8 + (ch->unit << 8), atadev->unit & 0x0f); + if ((ctlr->chip->cfg2 == PR_SATA2) || + ((ctlr->chip->cfg2 == PR_CMBO2) && (ch->unit < 2))) { + /* set portmultiplier port */ + ATA_OUTB(ctlr->r_res2, 0x4e8 + (ch->unit << 8), atadev->unit & 0x0f); + } /* XXX SOS add ATAPI commands support later */ switch (request->u.ata.command) { _______________________________________________ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"