svn commit: r189295 - head/sys/dev/ata/chipsets
Alexander Motin
mav at FreeBSD.org
Mon Mar 2 22:39:39 PST 2009
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) {
More information about the svn-src-all
mailing list