|
@@ -2,6 +2,7 @@
|
|
|
* pata_it821x.c - IT821x PATA for new ATA layer
|
|
|
* (C) 2005 Red Hat Inc
|
|
|
* Alan Cox <alan@redhat.com>
|
|
|
+ * (C) 2007 Bartlomiej Zolnierkiewicz
|
|
|
*
|
|
|
* based upon
|
|
|
*
|
|
@@ -79,7 +80,7 @@
|
|
|
|
|
|
|
|
|
#define DRV_NAME "pata_it821x"
|
|
|
-#define DRV_VERSION "0.3.6"
|
|
|
+#define DRV_VERSION "0.3.7"
|
|
|
|
|
|
struct it821x_dev
|
|
|
{
|
|
@@ -460,14 +461,8 @@ static unsigned int it821x_passthru_qc_issue_prot(struct ata_queued_cmd *qc)
|
|
|
|
|
|
static int it821x_smart_set_mode(struct ata_port *ap, struct ata_device **unused)
|
|
|
{
|
|
|
- int dma_enabled = 0;
|
|
|
int i;
|
|
|
|
|
|
- /* Bits 5 and 6 indicate if DMA is active on master/slave */
|
|
|
- /* It is possible that BMDMA isn't allocated */
|
|
|
- if (ap->ioaddr.bmdma_addr)
|
|
|
- dma_enabled = ioread8(ap->ioaddr.bmdma_addr + ATA_DMA_CMD);
|
|
|
-
|
|
|
for (i = 0; i < ATA_MAX_DEVICES; i++) {
|
|
|
struct ata_device *dev = &ap->device[i];
|
|
|
if (ata_dev_enabled(dev)) {
|
|
@@ -476,7 +471,7 @@ static int it821x_smart_set_mode(struct ata_port *ap, struct ata_device **unused
|
|
|
dev->dma_mode = XFER_MW_DMA_0;
|
|
|
/* We do need the right mode information for DMA or PIO
|
|
|
and this comes from the current configuration flags */
|
|
|
- if (dma_enabled & (1 << (5 + i))) {
|
|
|
+ if (ata_id_has_dma(dev->id)) {
|
|
|
ata_dev_printk(dev, KERN_INFO, "configured for DMA\n");
|
|
|
dev->xfer_mode = XFER_MW_DMA_0;
|
|
|
dev->xfer_shift = ATA_SHIFT_MWDMA;
|
|
@@ -799,7 +794,7 @@ MODULE_VERSION(DRV_VERSION);
|
|
|
|
|
|
|
|
|
module_param_named(noraid, it8212_noraid, int, S_IRUGO);
|
|
|
-MODULE_PARM_DESC(it8212_noraid, "Force card into bypass mode");
|
|
|
+MODULE_PARM_DESC(noraid, "Force card into bypass mode");
|
|
|
|
|
|
module_init(it821x_init);
|
|
|
module_exit(it821x_exit);
|