Skip to content

Commit

Permalink
of/address: Merge all of the bus translation code
Browse files Browse the repository at this point in the history
Microblaze and PowerPC share a large chunk of code for translating
OF device tree data into usable addresses.  Differences between the two
consist of cosmetic differences, and the addition of dma-ranges support
code to powerpc but not microblaze.  This patch moves the powerpc
version into common code and applies many of the cosmetic (non-functional)
changes from the microblaze version.

Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
CC: Michal Simek <monstr@monstr.eu>
CC: Wolfram Sang <w.sang@pengutronix.de>
CC: Stephen Rothwell <sfr@canb.auug.org.au>
Grant Likely committed Jul 5, 2010
1 parent 1f5bef3 commit dbbdee9
Showing 6 changed files with 515 additions and 1,018 deletions.
4 changes: 0 additions & 4 deletions arch/microblaze/include/asm/prom.h
Original file line number Diff line number Diff line change
@@ -52,10 +52,6 @@ extern void pci_create_OF_bus_map(void);
* OF address retreival & translation
*/

/* Translate an OF address block into a CPU physical address
*/
extern u64 of_translate_address(struct device_node *np, const u32 *addr);

/* Extract an address from a device, returns the region size and
* the address space flags too. The PCI version uses a BAR number
* instead of an absolute index
489 changes: 0 additions & 489 deletions arch/microblaze/kernel/prom_parse.c

Large diffs are not rendered by default.

4 changes: 0 additions & 4 deletions arch/powerpc/include/asm/prom.h
Original file line number Diff line number Diff line change
@@ -45,10 +45,6 @@ extern void pci_create_OF_bus_map(void);
* OF address retreival & translation
*/

/* Translate an OF address block into a CPU physical address
*/
extern u64 of_translate_address(struct device_node *np, const u32 *addr);

/* Translate a DMA address from device space to CPU space */
extern u64 of_translate_dma_address(struct device_node *dev,
const u32 *in_addr);
515 changes: 0 additions & 515 deletions arch/powerpc/kernel/prom_parse.c

Large diffs are not rendered by default.

517 changes: 514 additions & 3 deletions drivers/of/address.c

Large diffs are not rendered by default.

4 changes: 1 addition & 3 deletions include/linux/of_address.h
Original file line number Diff line number Diff line change
@@ -3,9 +3,7 @@
#include <linux/ioport.h>
#include <linux/of.h>

extern int __of_address_to_resource(struct device_node *dev, const u32 *addrp,
u64 size, unsigned int flags,
struct resource *r);
extern u64 of_translate_address(struct device_node *np, const u32 *addr);
extern int of_address_to_resource(struct device_node *dev, int index,
struct resource *r);
extern void __iomem *of_iomap(struct device_node *device, int index);

0 comments on commit dbbdee9

Please sign in to comment.