Date: Tue, 3 Mar 2009 06:39:38 +0000 (UTC) From: Alexander Motin <mav@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r189295 - head/sys/dev/ata/chipsets Message-ID: <200903030639.n236dcYs000461@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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) {
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200903030639.n236dcYs000461>