Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 8 Sep 2003 11:38:06 +0200 (CEST)
From:      Soren Schmidt <sos@spider.deepcore.dk>
To:        Soren Schmidt <sos@spider.deepcore.dk>
Cc:        freebsd-current <freebsd-current@FreeBSD.ORG>
Subject:   Re: ATAng and CF cards
Message-ID:  <200309080938.h889c7UZ043165@spider.deepcore.dk>
In-Reply-To: <200309080725.h887Ppd1042030@spider.deepcore.dk>

next in thread | previous in thread | raw e-mail | index | archive | help
It seems Soren Schmidt wrote:
> It seems YazzY wrote:
> > Hi.
> > 
> > It can be mounted when I boot the laptop and do not take the card out of 
> > the slot.
> > If I eject it and then put it back in, I cannot mount it or dd files to 
> > it anymore...
> > Anyway, this bit of dmesg does not look healthy to me. And as I said, 
> > everything worked fine before the ATAng code got changed.
> 
> Please try this simple patch:

Forget that, wrong patch, here goes the right one:

Index: ata-lowlevel.c
===================================================================
RCS file: /home/ncvs/src/sys/dev/ata/ata-lowlevel.c,v
retrieving revision 1.10
diff -u -r1.10 ata-lowlevel.c
--- ata-lowlevel.c	8 Sep 2003 08:36:46 -0000	1.10
+++ ata-lowlevel.c	8 Sep 2003 09:36:53 -0000
@@ -772,7 +772,10 @@
     struct ata_channel *ch = request->device->channel;
     int resid;
 
-    if (ch->flags & ATA_USE_16BIT || (size % sizeof(int32_t)))
+    if ((!(request->flags & ATA_R_ATAPI) && 
+	 (request->u.ata.command = ATA_ATA_IDENTIFY ||
+	  request->u.ata.command = ATA_ATAPI_IDENTIFY)) ||
+	ch->flags & ATA_USE_16BIT || (size % sizeof(int32_t)))
 	ATA_IDX_INSW_STRM(ch, ATA_DATA,
 			  (void*)((uintptr_t)request->data+request->donecount),
 			  size / sizeof(int16_t));

-Søren



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200309080938.h889c7UZ043165>