Lines Matching refs:ranges
856 unsigned int *lc_ranges, *ranges, *prev, size;
863 /* First we try to merge ranges to fix a problem with some pmacs
864 * that can have more than 3 ranges, fortunately using contiguous
867 dt_ranges = of_get_property(dev, "ranges", &rlen);
872 printk(KERN_WARNING "OF ranges property too large !\n");
879 /* Let's work on a copy of the "ranges" property instead of damaging
882 ranges = lc_ranges;
886 if (prev[0] == ranges[0] && prev[1] == ranges[1] &&
887 (prev[2] + prev[na+4]) == ranges[2] &&
888 (prev[na+2] + prev[na+4]) == ranges[na+2]) {
889 prev[na+4] += ranges[na+4];
890 ranges[0] = 0;
891 ranges += np;
895 prev = ranges;
896 ranges += np;
900 * The ranges property is laid out as an array of elements,
907 ranges = lc_ranges;
909 while (ranges && (rlen -= np * sizeof(unsigned int)) >= 0) {
911 size = ranges[na+4];
912 switch ((ranges[0] >> 24) & 0x3) {
914 if (ranges[2] != 0)
916 hose->io_base_phys = ranges[na+2];
920 hose->io_base_virt = ioremap(ranges[na+2], size);
925 res->start = ranges[2];
931 if (ranges[1] == 0 && ranges[2] == 0
932 && ranges[na+4] <= (16 << 20)) {
935 isa_mem_base = ranges[na+2];
941 hose->pci_mem_offset = ranges[na+2] - ranges[2];
945 if(ranges[0] & 0x40000000)
947 res->start = ranges[na+2];
960 ranges += np;