]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/powerpc/sysdev/axonram.c
Merge branch 'linus' into timers/nohz
[linux-2.6-omap-h63xx.git] / arch / powerpc / sysdev / axonram.c
index ab037a3a40db196b0e01f9a15ddf878c354be3d6..7f59188cd9a111fdb89cd36a9ae0dfafb3d8cff6 100644 (file)
@@ -42,8 +42,9 @@
 #include <linux/slab.h>
 #include <linux/string.h>
 #include <linux/types.h>
-#include <asm/of_device.h>
-#include <asm/of_platform.h>
+#include <linux/of_device.h>
+#include <linux/of_platform.h>
+
 #include <asm/page.h>
 #include <asm/prom.h>
 
@@ -117,7 +118,7 @@ axon_ram_make_request(struct request_queue *queue, struct bio *bio)
        transfered = 0;
        bio_for_each_segment(vec, bio, idx) {
                if (unlikely(phys_mem + vec->bv_len > phys_end)) {
-                       bio_io_error(bio, bio->bi_size);
+                       bio_io_error(bio);
                        rc = -ERANGE;
                        break;
                }
@@ -131,7 +132,7 @@ axon_ram_make_request(struct request_queue *queue, struct bio *bio)
                phys_mem += vec->bv_len;
                transfered += vec->bv_len;
        }
-       bio_endio(bio, transfered, 0);
+       bio_endio(bio, 0);
 
        return rc;
 }
@@ -142,7 +143,7 @@ axon_ram_make_request(struct request_queue *queue, struct bio *bio)
  */
 static int
 axon_ram_direct_access(struct block_device *device, sector_t sector,
-                      unsigned long *data)
+                      void **kaddr, unsigned long *pfn)
 {
        struct axon_ram_bank *bank = device->bd_disk->private_data;
        loff_t offset;
@@ -153,7 +154,8 @@ axon_ram_direct_access(struct block_device *device, sector_t sector,
                return -ERANGE;
        }
 
-       *data = bank->ph_addr + offset;
+       *kaddr = (void *)(bank->ph_addr + offset);
+       *pfn = virt_to_phys(kaddr) >> PAGE_SHIFT;
 
        return 0;
 }
@@ -324,11 +326,13 @@ static struct of_device_id axon_ram_device_id[] = {
 };
 
 static struct of_platform_driver axon_ram_driver = {
-       .owner          = THIS_MODULE,
-       .name           = AXON_RAM_MODULE_NAME,
        .match_table    = axon_ram_device_id,
        .probe          = axon_ram_probe,
-       .remove         = axon_ram_remove
+       .remove         = axon_ram_remove,
+       .driver         = {
+               .owner  = THIS_MODULE,
+               .name   = AXON_RAM_MODULE_NAME,
+       },
 };
 
 /**