Re: [PATCH] Re: 2.6.19.1, sata_sil: sata dvd writer doesn't work

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Daniel Beichl wrote:
+static int sil_check_atapi_dma(struct ata_queued_cmd *qc)
+{
+	/* limit atapi commands less than 60bytes to pio as certain sil */
+	/* chips seem to have trouble to perform dma for these commands */
+	if ( (qc->scsicmd != NULL) &&
+	     (qc->scsicmd->sc_data_direction == DMA_TO_DEVICE) &&
+	     (qc->scsicmd->request_bufflen < 60) )
+	{
+ ata_dev_printk( qc->dev, KERN_INFO, "reducing cmd %02x (direction=%d, len=%d) to pio\n", + qc->cdb[0], + qc->scsicmd->sc_data_direction, + qc->scsicmd->request_bufflen );
+		/* do not allow dma */
+		return -1;
+	}
+
+	/* allow dma */
+	return 0;


Comments:

1) Return values are zero or one for this hook

2) There are two data bundling methods in SCSI: single-buffer and scatterlist. Further, SCSI is deprecating single-buffer method in favor of always using a scatterlist. Your patch needs to support scatterlist. Here is an example test found in libata-scsi.c that illustrates how SCSI-aware code tests for and uses this:

        if (cmd->use_sg) {
                qc->__sg = (struct scatterlist *) cmd->request_buffer;

3) You need to always include a signoff line: http://linux.yyz.us/patch-format.html

	Jeff


-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux