|
@@ -32,19 +32,12 @@
|
|
|
#include <linux/kernel.h>
|
|
|
#include <linux/delay.h>
|
|
|
#include <linux/platform_device.h>
|
|
|
-
|
|
|
#include <linux/init.h>
|
|
|
#include <linux/ide.h>
|
|
|
-#include <linux/sysdev.h>
|
|
|
-
|
|
|
-#include <linux/dma-mapping.h>
|
|
|
-
|
|
|
-#include "ide-timing.h"
|
|
|
+#include <linux/scatterlist.h>
|
|
|
|
|
|
-#include <asm/io.h>
|
|
|
#include <asm/mach-au1x00/au1xxx.h>
|
|
|
#include <asm/mach-au1x00/au1xxx_dbdma.h>
|
|
|
-
|
|
|
#include <asm/mach-au1x00/au1xxx_ide.h>
|
|
|
|
|
|
#define DRV_NAME "au1200-ide"
|
|
@@ -56,6 +49,8 @@
|
|
|
static _auide_hwif auide_hwif;
|
|
|
static int dbdma_init_done;
|
|
|
|
|
|
+static int auide_ddma_init(_auide_hwif *auide);
|
|
|
+
|
|
|
#if defined(CONFIG_BLK_DEV_IDE_AU1XXX_PIO_DBDMA)
|
|
|
|
|
|
void auide_insw(unsigned long port, void *addr, u32 count)
|
|
@@ -591,13 +586,14 @@ static int au_ide_probe(struct device *dev)
|
|
|
goto out;
|
|
|
}
|
|
|
|
|
|
- if (!request_mem_region (res->start, res->end-res->start, pdev->name)) {
|
|
|
+ if (!request_mem_region(res->start, res->end - res->start + 1,
|
|
|
+ pdev->name)) {
|
|
|
pr_debug("%s: request_mem_region failed\n", DRV_NAME);
|
|
|
ret = -EBUSY;
|
|
|
goto out;
|
|
|
}
|
|
|
|
|
|
- ahwif->regbase = (u32)ioremap(res->start, res->end-res->start);
|
|
|
+ ahwif->regbase = (u32)ioremap(res->start, res->end - res->start + 1);
|
|
|
if (ahwif->regbase == 0) {
|
|
|
ret = -ENOMEM;
|
|
|
goto out;
|
|
@@ -682,7 +678,7 @@ static int au_ide_remove(struct device *dev)
|
|
|
iounmap((void *)ahwif->regbase);
|
|
|
|
|
|
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
|
|
- release_mem_region(res->start, res->end - res->start);
|
|
|
+ release_mem_region(res->start, res->end - res->start + 1);
|
|
|
|
|
|
return 0;
|
|
|
}
|