From 392e8802486cb573b916e746010e141a75f507e6 Mon Sep 17 00:00:00 2001 From: Kevin Date: Sat, 15 Nov 2014 09:58:27 +0800 Subject: init android origin source code --- ANDROID_3.4.5/arch/microblaze/kernel/prom_parse.c | 35 +++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 ANDROID_3.4.5/arch/microblaze/kernel/prom_parse.c (limited to 'ANDROID_3.4.5/arch/microblaze/kernel/prom_parse.c') diff --git a/ANDROID_3.4.5/arch/microblaze/kernel/prom_parse.c b/ANDROID_3.4.5/arch/microblaze/kernel/prom_parse.c new file mode 100644 index 00000000..47187cc2 --- /dev/null +++ b/ANDROID_3.4.5/arch/microblaze/kernel/prom_parse.c @@ -0,0 +1,35 @@ +#undef DEBUG + +#include +#include +#include +#include +#include +#include +#include + +void of_parse_dma_window(struct device_node *dn, const void *dma_window_prop, + unsigned long *busno, unsigned long *phys, unsigned long *size) +{ + const u32 *dma_window; + u32 cells; + const unsigned char *prop; + + dma_window = dma_window_prop; + + /* busno is always one cell */ + *busno = *(dma_window++); + + prop = of_get_property(dn, "ibm,#dma-address-cells", NULL); + if (!prop) + prop = of_get_property(dn, "#address-cells", NULL); + + cells = prop ? *(u32 *)prop : of_n_addr_cells(dn); + *phys = of_read_number(dma_window, cells); + + dma_window += cells; + + prop = of_get_property(dn, "ibm,#dma-size-cells", NULL); + cells = prop ? *(u32 *)prop : of_n_size_cells(dn); + *size = of_read_number(dma_window, cells); +} -- cgit