diff options
| author | Rob Herring <rob.herring@calxeda.com> | 2010-11-16 15:33:50 -0500 |
|---|---|---|
| committer | Grant Likely <grant.likely@secretlab.ca> | 2011-01-03 16:08:18 -0500 |
| commit | da81c3b9825c826bfb06a4dcc0524c671985eb68 (patch) | |
| tree | 32729b9cb74cdaa0a39d2847675af02ff024fa89 | |
| parent | 236cdc7bc718566a7e7cb9f763b51a8dcad88cbe (diff) | |
of: Fixes for OF probing on little endian systems
Fixes for sdhci-of and ipmi drivers.
Auditing all drivers using of_get_property did not find other
occurrences likely to be used on LE platforms.
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
| -rw-r--r-- | drivers/char/ipmi/ipmi_si_intf.c | 8 | ||||
| -rw-r--r-- | drivers/mmc/host/sdhci-of-core.c | 4 |
2 files changed, 6 insertions, 6 deletions
diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c index 035da9e64a17..8cc4607cc86c 100644 --- a/drivers/char/ipmi/ipmi_si_intf.c +++ b/drivers/char/ipmi/ipmi_si_intf.c | |||
| @@ -2546,7 +2546,7 @@ static int __devinit ipmi_of_probe(struct platform_device *dev, | |||
| 2546 | { | 2546 | { |
| 2547 | struct smi_info *info; | 2547 | struct smi_info *info; |
| 2548 | struct resource resource; | 2548 | struct resource resource; |
| 2549 | const int *regsize, *regspacing, *regshift; | 2549 | const __be32 *regsize, *regspacing, *regshift; |
| 2550 | struct device_node *np = dev->dev.of_node; | 2550 | struct device_node *np = dev->dev.of_node; |
| 2551 | int ret; | 2551 | int ret; |
| 2552 | int proplen; | 2552 | int proplen; |
| @@ -2599,9 +2599,9 @@ static int __devinit ipmi_of_probe(struct platform_device *dev, | |||
| 2599 | 2599 | ||
| 2600 | info->io.addr_data = resource.start; | 2600 | info->io.addr_data = resource.start; |
| 2601 | 2601 | ||
| 2602 | info->io.regsize = regsize ? *regsize : DEFAULT_REGSIZE; | 2602 | info->io.regsize = regsize ? be32_to_cpup(regsize) : DEFAULT_REGSIZE; |
| 2603 | info->io.regspacing = regspacing ? *regspacing : DEFAULT_REGSPACING; | 2603 | info->io.regspacing = regspacing ? be32_to_cpup(regspacing) : DEFAULT_REGSPACING; |
| 2604 | info->io.regshift = regshift ? *regshift : 0; | 2604 | info->io.regshift = regshift ? be32_to_cpup(regshift) : 0; |
| 2605 | 2605 | ||
| 2606 | info->irq = irq_of_parse_and_map(dev->dev.of_node, 0); | 2606 | info->irq = irq_of_parse_and_map(dev->dev.of_node, 0); |
| 2607 | info->dev = &dev->dev; | 2607 | info->dev = &dev->dev; |
diff --git a/drivers/mmc/host/sdhci-of-core.c b/drivers/mmc/host/sdhci-of-core.c index c51b71174c1d..fa19d849a920 100644 --- a/drivers/mmc/host/sdhci-of-core.c +++ b/drivers/mmc/host/sdhci-of-core.c | |||
| @@ -122,7 +122,7 @@ static int __devinit sdhci_of_probe(struct platform_device *ofdev, | |||
| 122 | struct sdhci_of_data *sdhci_of_data = match->data; | 122 | struct sdhci_of_data *sdhci_of_data = match->data; |
| 123 | struct sdhci_host *host; | 123 | struct sdhci_host *host; |
| 124 | struct sdhci_of_host *of_host; | 124 | struct sdhci_of_host *of_host; |
| 125 | const u32 *clk; | 125 | const __be32 *clk; |
| 126 | int size; | 126 | int size; |
| 127 | int ret; | 127 | int ret; |
| 128 | 128 | ||
| @@ -166,7 +166,7 @@ static int __devinit sdhci_of_probe(struct platform_device *ofdev, | |||
| 166 | 166 | ||
| 167 | clk = of_get_property(np, "clock-frequency", &size); | 167 | clk = of_get_property(np, "clock-frequency", &size); |
| 168 | if (clk && size == sizeof(*clk) && *clk) | 168 | if (clk && size == sizeof(*clk) && *clk) |
| 169 | of_host->clock = *clk; | 169 | of_host->clock = be32_to_cpup(clk); |
| 170 | 170 | ||
| 171 | ret = sdhci_add_host(host); | 171 | ret = sdhci_add_host(host); |
| 172 | if (ret) | 172 | if (ret) |
