diff options
author | Pawel Moll <pawel.moll@arm.com> | 2011-09-07 08:36:26 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@redhat.com> | 2011-10-08 00:07:16 -0400 |
commit | 37210fbe1ddcd91b0331877fae81645978b5c3b1 (patch) | |
tree | bc8aa82fe246f253b256602182ce587aa6349801 /drivers | |
parent | edc7d12ede4333a1fd7b59cebae970b4953ec9d0 (diff) |
ata: Make pata_of_platform.c compile again and work on non-PPC platforms
This patch adds missing #includes, makes the driver selectable on
non-PPC OF-enabled platforms and fixes property value accesses to
be correct in Little Endian system.
Cc: Anton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: Pawel Moll <pawel.moll@arm.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/ata/Kconfig | 2 | ||||
-rw-r--r-- | drivers/ata/pata_of_platform.c | 6 |
2 files changed, 5 insertions, 3 deletions
diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig index 5987e0ba8c2..c6ef9d0cf37 100644 --- a/drivers/ata/Kconfig +++ b/drivers/ata/Kconfig | |||
@@ -820,7 +820,7 @@ config PATA_PLATFORM | |||
820 | 820 | ||
821 | config PATA_OF_PLATFORM | 821 | config PATA_OF_PLATFORM |
822 | tristate "OpenFirmware platform device PATA support" | 822 | tristate "OpenFirmware platform device PATA support" |
823 | depends on PATA_PLATFORM && PPC_OF | 823 | depends on PATA_PLATFORM && OF |
824 | help | 824 | help |
825 | This option enables support for generic directly connected ATA | 825 | This option enables support for generic directly connected ATA |
826 | devices commonly found on embedded systems with OpenFirmware | 826 | devices commonly found on embedded systems with OpenFirmware |
diff --git a/drivers/ata/pata_of_platform.c b/drivers/ata/pata_of_platform.c index f3054009bd2..a72ab0dde4e 100644 --- a/drivers/ata/pata_of_platform.c +++ b/drivers/ata/pata_of_platform.c | |||
@@ -11,6 +11,8 @@ | |||
11 | 11 | ||
12 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
13 | #include <linux/module.h> | 13 | #include <linux/module.h> |
14 | #include <linux/of_address.h> | ||
15 | #include <linux/of_irq.h> | ||
14 | #include <linux/of_platform.h> | 16 | #include <linux/of_platform.h> |
15 | #include <linux/ata_platform.h> | 17 | #include <linux/ata_platform.h> |
16 | 18 | ||
@@ -57,11 +59,11 @@ static int __devinit pata_of_platform_probe(struct platform_device *ofdev) | |||
57 | 59 | ||
58 | prop = of_get_property(dn, "reg-shift", NULL); | 60 | prop = of_get_property(dn, "reg-shift", NULL); |
59 | if (prop) | 61 | if (prop) |
60 | reg_shift = *prop; | 62 | reg_shift = be32_to_cpup(prop); |
61 | 63 | ||
62 | prop = of_get_property(dn, "pio-mode", NULL); | 64 | prop = of_get_property(dn, "pio-mode", NULL); |
63 | if (prop) { | 65 | if (prop) { |
64 | pio_mode = *prop; | 66 | pio_mode = be32_to_cpup(prop); |
65 | if (pio_mode > 6) { | 67 | if (pio_mode > 6) { |
66 | dev_err(&ofdev->dev, "invalid pio-mode\n"); | 68 | dev_err(&ofdev->dev, "invalid pio-mode\n"); |
67 | return -EINVAL; | 69 | return -EINVAL; |