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>
This commit is contained in:
committed by
Grant Likely
parent
236cdc7bc7
commit
da81c3b982
@@ -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,
|
|||||||
|
|
||||||
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,
|
|||||||
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,
|
|||||||
|
|
||||||
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)
|
||||||
|
Reference in New Issue
Block a user