diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index 9825a90..e74e972 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -1719,7 +1719,7 @@
 					"%s: %s, %s, max %s\n",
 					revbuf,	modelbuf, fwrevbuf,
 					ata_mode_string(xfer_mask));
-				ata_dev_printk(dev, KERN_INFO, 
+				ata_dev_printk(dev, KERN_INFO,
 					"%Lu sectors, multi %u, CHS %u/%u/%u\n",
 					(unsigned long long)dev->n_sectors,
 					dev->multi_count, dev->cylinders,
diff --git a/drivers/ata/libata-sff.c b/drivers/ata/libata-sff.c
index 7fea094..2ffcca0 100644
--- a/drivers/ata/libata-sff.c
+++ b/drivers/ata/libata-sff.c
@@ -521,7 +521,7 @@
 static int ata_resources_present(struct pci_dev *pdev, int port)
 {
 	int i;
-	
+
 	/* Check the PCI resources for this channel are enabled */
 	port = port * 2;
 	for (i = 0; i < 2; i ++) {
@@ -531,7 +531,7 @@
 	}
 	return 1;
 }
-		
+
 /**
  *	ata_pci_init_native_mode - Initialize native-mode driver
  *	@pdev:  pci device to be initialized
@@ -576,7 +576,7 @@
 
 	probe_ent->irq = pdev->irq;
 	probe_ent->irq_flags = IRQF_SHARED;
-	
+
 	/* Discard disabled ports. Some controllers show their
 	   unused channels this way */
 	if (ata_resources_present(pdev, 0) == 0)
diff --git a/drivers/ata/pata_cs5520.c b/drivers/ata/pata_cs5520.c
index b49d8b7..21dcf39 100644
--- a/drivers/ata/pata_cs5520.c
+++ b/drivers/ata/pata_cs5520.c
@@ -348,7 +348,7 @@
 	pci_save_state(pdev);
 	return 0;
 }
- 
+
 /* For now keep DMA off. We can set it for all but A rev CS5510 once the
    core ATA code can handle it */
 
diff --git a/drivers/ata/pata_scc.c b/drivers/ata/pata_scc.c
index de04042..4586609 100644
--- a/drivers/ata/pata_scc.c
+++ b/drivers/ata/pata_scc.c
@@ -233,7 +233,7 @@
 	void __iomem *tdvhsel_port = ctrl_base + SCC_CTL_TDVHSEL;
 	int offset, idx;
 
-	if (in_be32(cckctrl_port) & CCKCTRL_ATACLKOEN) 
+	if (in_be32(cckctrl_port) & CCKCTRL_ATACLKOEN)
 		offset = 1;	/* 133MHz */
 	else
 		offset = 0;	/* 100MHz */
@@ -720,7 +720,7 @@
 
 	host_stat = in_be32(mmio + SCC_DMA_STATUS);
 
-	/* Workaround for PTERADD: emulate DMA_INTR when 
+	/* Workaround for PTERADD: emulate DMA_INTR when
 	 * - IDE_STATUS[ERR] = 1
 	 * - INT_STATUS[INTRQ] = 1
 	 * - DMA_STATUS[IORACTA] = 1
diff --git a/drivers/ata/pata_sil680.c b/drivers/ata/pata_sil680.c
index 5f10a33..1cb67b2 100644
--- a/drivers/ata/pata_sil680.c
+++ b/drivers/ata/pata_sil680.c
@@ -157,10 +157,10 @@
 
 	pci_read_config_word(pdev, tfaddr-2, &reg);
 	pci_read_config_byte(pdev, addr_mask, &mode);
-	
+
 	reg &= ~0x0200;			/* Clear IORDY */
 	mode &= ~(3 << port_shift);	/* Clear IORDY and DMA bits */
-	
+
 	if (ata_pio_need_iordy(adev)) {
 		reg |= 0x0200;		/* Enable IORDY */
 		mode |= 1 << port_shift;
diff --git a/drivers/ata/pata_via.c b/drivers/ata/pata_via.c
index 220fcd6..20fc2d0 100644
--- a/drivers/ata/pata_via.c
+++ b/drivers/ata/pata_via.c
@@ -170,7 +170,7 @@
 		ap->cbl = ATA_CBL_PATA40;
 	else
 		ap->cbl = ATA_CBL_PATA_UNK;
-		
+
 
 	return ata_std_prereset(ap);
 }
diff --git a/drivers/ata/sata_nv.c b/drivers/ata/sata_nv.c
index 783281e..30eed12 100644
--- a/drivers/ata/sata_nv.c
+++ b/drivers/ata/sata_nv.c
@@ -669,18 +669,18 @@
 			cpb[idx++] = cpu_to_le16((ATA_REG_ERR    << 8) | tf->feature);
 		} else
 			cpb[idx++] = cpu_to_le16((ATA_REG_ERR    << 8) | tf->feature | WNB);
-			
+
 		cpb[idx++] = cpu_to_le16((ATA_REG_NSECT  << 8) | tf->nsect);
 		cpb[idx++] = cpu_to_le16((ATA_REG_LBAL   << 8) | tf->lbal);
 		cpb[idx++] = cpu_to_le16((ATA_REG_LBAM   << 8) | tf->lbam);
 		cpb[idx++] = cpu_to_le16((ATA_REG_LBAH   << 8) | tf->lbah);
 	}
-	
+
 	if(tf->flags & ATA_TFLAG_DEVICE)
 		cpb[idx++] = cpu_to_le16((ATA_REG_DEVICE << 8) | tf->device);
 
 	cpb[idx++] = cpu_to_le16((ATA_REG_CMD    << 8) | tf->command | CMDEND);
-	
+
 	while(idx < 12)
 		cpb[idx++] = cpu_to_le16(IGN);
 
@@ -1402,7 +1402,7 @@
 		void __iomem *mmio = pp->ctl_block;
 		int i;
 		u16 tmp;
-		
+
 		if(ata_tag_valid(ap->active_tag) || ap->sactive) {
 			u32 notifier = readl(mmio + NV_ADMA_NOTIFIER);
 			u32 notifier_error = readl(mmio + NV_ADMA_NOTIFIER_ERROR);
diff --git a/drivers/ata/sata_sis.c b/drivers/ata/sata_sis.c
index fd694b6..1879e0c 100644
--- a/drivers/ata/sata_sis.c
+++ b/drivers/ata/sata_sis.c
@@ -309,7 +309,7 @@
 		case 0x10:
 			ppi[1] = &sis_info133;
 			break;
-			
+
 		case 0x30:
 			ppi[0] = &sis_info133;
 			break;
diff --git a/drivers/ata/sata_via.c b/drivers/ata/sata_via.c
index fe9101a..becba95 100644
--- a/drivers/ata/sata_via.c
+++ b/drivers/ata/sata_via.c
@@ -60,7 +60,7 @@
 	SATA_PATA_SHARING	= 0x49, /* PATA/SATA sharing func ctrl */
 	PATA_UDMA_TIMING	= 0xB3, /* PATA timing for DMA/ cable detect */
 	PATA_PIO_TIMING		= 0xAB, /* PATA timing register */
-	
+
 	PORT0			= (1 << 1),
 	PORT1			= (1 << 0),
 	ALL_PORTS		= PORT0 | PORT1,
@@ -151,7 +151,7 @@
 
 static const struct ata_port_operations vt6421_pata_ops = {
 	.port_disable		= ata_port_disable,
-	
+
 	.set_piomode		= vt6421_set_pio_mode,
 	.set_dmamode		= vt6421_set_dma_mode,
 
@@ -185,7 +185,7 @@
 
 static const struct ata_port_operations vt6421_sata_ops = {
 	.port_disable		= ata_port_disable,
-	
+
 	.tf_load		= ata_tf_load,
 	.tf_read		= ata_tf_read,
 	.check_status		= ata_check_status,
