falconide: fix resources reservation (take 2)
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Sat, 26 Apr 2008 15:36:38 +0000 (17:36 +0200)
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Sat, 26 Apr 2008 15:36:38 +0000 (17:36 +0200)
* Tell IDE layer to not manage resources by setting
  hwif->mmio flag and request resources in falconide_init().

* Use request_mem_region() for resources reservation.

* Use driver name for resources reservation.

v2:
* Fix missing printk() parameter. (Noticed by Geert Uytterhoeven)

Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Michael Schmitz <schmitz@debian.org>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
drivers/ide/legacy/falconide.c

index b88a3c192d84cff128bb60eb34b8be06f2340c2d..8c9c9f7f54ca5121f4f7a9b02dedf34bad10ff70 100644 (file)
@@ -22,6 +22,7 @@
 #include <asm/atariints.h>
 #include <asm/atari_stdma.h>
 
+#define DRV_NAME "falconide"
 
     /*
      *  Base of the IDE interface
@@ -74,6 +75,11 @@ static int __init falconide_init(void)
 
        printk(KERN_INFO "ide: Falcon IDE controller\n");
 
+       if (!request_mem_region(ATA_HD_BASE, 0x40, DRV_NAME)) {
+               printk(KERN_ERR "%s: resources busy\n", DRV_NAME);
+               return -EBUSY;
+       }
+
        falconide_setup_ports(&hw);
 
        hwif = ide_find_port();
@@ -83,6 +89,7 @@ static int __init falconide_init(void)
 
                ide_init_port_data(hwif, index);
                ide_init_port_hw(hwif, &hw);
+               hwif->mmio = 1;
 
                ide_get_lock(NULL, NULL);
                ide_device_add(idx, NULL);