Commit da81c3b9 authored by Rob Herring's avatar Rob Herring Committed by Grant Likely

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: default avatarRob Herring <rob.herring@calxeda.com>
Signed-off-by: default avatarGrant Likely <grant.likely@secretlab.ca>
parent 236cdc7b
...@@ -2546,7 +2546,7 @@ static int __devinit ipmi_of_probe(struct platform_device *dev, ...@@ -2546,7 +2546,7 @@ static int __devinit ipmi_of_probe(struct platform_device *dev,
{ {
struct smi_info *info; struct smi_info *info;
struct resource resource; struct resource resource;
const int *regsize, *regspacing, *regshift; const __be32 *regsize, *regspacing, *regshift;
struct device_node *np = dev->dev.of_node; struct device_node *np = dev->dev.of_node;
int ret; int ret;
int proplen; int proplen;
...@@ -2599,9 +2599,9 @@ static int __devinit ipmi_of_probe(struct platform_device *dev, ...@@ -2599,9 +2599,9 @@ static int __devinit ipmi_of_probe(struct platform_device *dev,
info->io.addr_data = resource.start; info->io.addr_data = resource.start;
info->io.regsize = regsize ? *regsize : DEFAULT_REGSIZE; info->io.regsize = regsize ? be32_to_cpup(regsize) : DEFAULT_REGSIZE;
info->io.regspacing = regspacing ? *regspacing : DEFAULT_REGSPACING; info->io.regspacing = regspacing ? be32_to_cpup(regspacing) : DEFAULT_REGSPACING;
info->io.regshift = regshift ? *regshift : 0; info->io.regshift = regshift ? be32_to_cpup(regshift) : 0;
info->irq = irq_of_parse_and_map(dev->dev.of_node, 0); info->irq = irq_of_parse_and_map(dev->dev.of_node, 0);
info->dev = &dev->dev; info->dev = &dev->dev;
......
...@@ -122,7 +122,7 @@ static int __devinit sdhci_of_probe(struct platform_device *ofdev, ...@@ -122,7 +122,7 @@ static int __devinit sdhci_of_probe(struct platform_device *ofdev,
struct sdhci_of_data *sdhci_of_data = match->data; struct sdhci_of_data *sdhci_of_data = match->data;
struct sdhci_host *host; struct sdhci_host *host;
struct sdhci_of_host *of_host; struct sdhci_of_host *of_host;
const u32 *clk; const __be32 *clk;
int size; int size;
int ret; int ret;
...@@ -166,7 +166,7 @@ static int __devinit sdhci_of_probe(struct platform_device *ofdev, ...@@ -166,7 +166,7 @@ static int __devinit sdhci_of_probe(struct platform_device *ofdev,
clk = of_get_property(np, "clock-frequency", &size); clk = of_get_property(np, "clock-frequency", &size);
if (clk && size == sizeof(*clk) && *clk) if (clk && size == sizeof(*clk) && *clk)
of_host->clock = *clk; of_host->clock = be32_to_cpup(clk);
ret = sdhci_add_host(host); ret = sdhci_add_host(host);
if (ret) if (ret)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment