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
This commit is contained in:
mav 2009-03-03 06:39:38 +00:00
parent aa26df08af
commit ac2078c0ef

View File

@ -690,8 +690,11 @@ ata_promise_mio_command(struct ata_request *request)
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) {