powerpc/axonram: Enable partitioning of the Axons DDR2 DIMMs
authorMaxim Shchetynin <maxim@de.ibm.com>
Tue, 15 Jul 2008 19:51:42 +0000 (05:51 +1000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Tue, 22 Jul 2008 00:39:31 +0000 (10:39 +1000)
DDR2 memory DIMMs on the Axon could be accessed only as one partition
when using file system drivers which are using the direct_access() method.
This patch enables for such file system drivers to access Axon's DDR2 memory
even if it is splitted in several partitions.

Signed-off-by: Maxim Shchetynin <maxim@de.ibm.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/sysdev/axonram.c

index 9b639ede06daee6a79fcd089d6da27f8484da7ff..9e105cbc5e5f4c3fb3f10654485d009cb37bb111 100644 (file)
@@ -150,7 +150,10 @@ axon_ram_direct_access(struct block_device *device, sector_t sector,
        struct axon_ram_bank *bank = device->bd_disk->private_data;
        loff_t offset;
 
-       offset = sector << AXON_RAM_SECTOR_SHIFT;
+       offset = sector;
+       if (device->bd_part != NULL)
+               offset += device->bd_part->start_sect;
+       offset <<= AXON_RAM_SECTOR_SHIFT;
        if (offset >= bank->size) {
                dev_err(&bank->device->dev, "Access outside of address space\n");
                return -ERANGE;