Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 9 Aug 2009 14:47:51 GMT
From:      Alexander Motin <mav@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 167133 for review
Message-ID:  <200908091447.n79ElpAF021240@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=167133

Change 167133 by mav@mav_mavbook on 2009/08/09 14:47:10

	Remove some more request->dev references. Now only setmode and CHS
	related stuff use it in controller drivers code.

Affected files ...

.. //depot/projects/scottl-camlock/src/sys/dev/ata/ata-all.h#17 edit
.. //depot/projects/scottl-camlock/src/sys/dev/ata/ata-lowlevel.c#12 edit
.. //depot/projects/scottl-camlock/src/sys/dev/ata/ata-queue.c#17 edit
.. //depot/projects/scottl-camlock/src/sys/dev/ata/chipsets/ata-siliconimage.c#7 edit

Differences ...

==== //depot/projects/scottl-camlock/src/sys/dev/ata/ata-all.h#17 (text+ko) ====

@@ -389,6 +389,9 @@
 #define         ATA_R_THREAD            0x00000800
 #define         ATA_R_DIRECT            0x00001000
 
+#define         ATA_R_ATAPI16           0x00010000
+#define         ATA_R_ATAPI_INTR        0x00020000
+
 #define         ATA_R_DEBUG             0x10000000
 #define         ATA_R_DANGER1           0x20000000
 #define         ATA_R_DANGER2           0x40000000
@@ -416,7 +419,7 @@
 #define ATA_DEBUG_RQ(request, string) \
     { \
     if (request->flags & ATA_R_DEBUG) \
-	device_printf(request->dev, "req=%p %s " string "\n", \
+	device_printf(request->parent, "req=%p %s " string "\n", \
 		      request, ata_cmd2str(request)); \
     }
 #else

==== //depot/projects/scottl-camlock/src/sys/dev/ata/ata-lowlevel.c#12 (text+ko) ====

@@ -228,7 +228,6 @@
 ata_end_transaction(struct ata_request *request)
 {
     struct ata_channel *ch = device_get_softc(request->parent);
-    struct ata_device *atadev = device_get_softc(request->dev);
     int length;
 
     ATA_DEBUG_RQ(request, "end transaction");
@@ -351,8 +350,7 @@
 		goto end_finished;
 	    }
 	    ATA_IDX_OUTSW_STRM(ch, ATA_DATA, (int16_t *)request->u.atapi.ccb,
-			       (atadev->param.config &
-				ATA_PROTO_MASK)== ATA_PROTO_ATAPI_12 ? 6 : 8);
+			       (request->flags & ATA_R_ATAPI16) ? 8 : 6);
 	    /* return wait for interrupt */
 	    goto end_continue;
 
@@ -656,7 +654,6 @@
 ata_generic_command(struct ata_request *request)
 {
     struct ata_channel *ch = device_get_softc(request->parent);
-    struct ata_device *atadev = device_get_softc(request->dev);
 
     /* select device */
     ATA_IDX_OUTB(ch, ATA_DRIVE, ATA_D_IBM | ATA_D_LBA | ATA_DEV(request->unit));
@@ -687,7 +684,7 @@
 	ATA_IDX_OUTB(ch, ATA_COMMAND, ATA_PACKET_CMD);
 
 	/* command interrupt device ? just return and wait for interrupt */
-	if ((atadev->param.config & ATA_DRQ_MASK) == ATA_DRQ_INTR)
+	if (request->flags & ATA_R_ATAPI_INTR)
 	    return 0;
 
 	/* wait for ready to write ATAPI command block */
@@ -711,8 +708,7 @@
 		    
 	/* output command block */
 	ATA_IDX_OUTSW_STRM(ch, ATA_DATA, (int16_t *)request->u.atapi.ccb,
-			   (atadev->param.config & ATA_PROTO_MASK) ==
-			   ATA_PROTO_ATAPI_12 ? 6 : 8);
+			   (request->flags & ATA_R_ATAPI16) ? 8 : 6);
     }
     else {
 	ch->hw.tf_write(request);

==== //depot/projects/scottl-camlock/src/sys/dev/ata/ata-queue.c#17 (text+ko) ====

@@ -57,7 +57,12 @@
     /* treat request as virgin (this might be an ATA_R_REQUEUE) */
     request->result = request->status = request->error = 0;
 
+    /* Prepare paramers required by low-level code. */
     request->unit = atadev->unit;
+    if ((atadev->param.config & ATA_PROTO_MASK) == ATA_PROTO_ATAPI_16)
+	request->flags |= ATA_R_ATAPI16;
+    if ((atadev->param.config & ATA_DRQ_MASK) == ATA_DRQ_INTR)
+	request->flags |= ATA_R_ATAPI_INTR;
     /* check that the device is still valid */
     if (!(request->parent = device_get_parent(request->dev))) {
 	request->result = ENXIO;

==== //depot/projects/scottl-camlock/src/sys/dev/ata/chipsets/ata-siliconimage.c#7 (text+ko) ====

@@ -571,13 +571,11 @@
 
     /* setup transfer type */
     if (request->flags & ATA_R_ATAPI) {
-        struct ata_device *atadev = device_get_softc(request->dev);
-
 	bcopy(request->u.atapi.ccb, prb->u.atapi.ccb, 16);
-	if ((atadev->param.config & ATA_PROTO_MASK) == ATA_PROTO_ATAPI_12)
+	if (request->flags & ATA_R_ATAPI16)
+	    ATA_OUTL(ctlr->r_res2, 0x1000 + offset, 0x00000020);
+	else
 	    ATA_OUTL(ctlr->r_res2, 0x1004 + offset, 0x00000020);
-	else
-	    ATA_OUTL(ctlr->r_res2, 0x1000 + offset, 0x00000020);
 	if (request->flags & ATA_R_READ)
 	    prb->control = htole16(0x0010);
 	if (request->flags & ATA_R_WRITE)



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