static int __devinit radeon_probe_OF_head(struct radeonfb_info *rinfo, int head_no, u8 **out_EDID) { struct device_node *dp; RTRACE("radeon_probe_OF_head\n"); dp = rinfo->of_node; while (dp == NULL) return MT_NONE; if (rinfo->has_CRTC2) { char *pname; int len, second = 0; dp = dp->child; do { if (!dp) return MT_NONE; pname = (char *)get_property(dp, "name", NULL); if (!pname) return MT_NONE; len = strlen(pname); RTRACE("head: %s (letter: %c, head_no: %d)\n", pname, pname[len-1], head_no); if (pname[len-1] == 'A' && head_no == 0) { int mt = radeon_parse_montype_prop(dp, out_EDID, 0); /* Maybe check for LVDS_GEN_CNTL here ? I need to check out * what OF does when booting with lid closed */ if (mt == MT_DFP && rinfo->is_mobility) mt = MT_LCD; return mt; } else if (pname[len-1] == 'B' && head_no == 1) return radeon_parse_montype_prop(dp, out_EDID, 1); second = 1; dp = dp->sibling; } while(!second); } else { if (head_no > 0) return MT_NONE; return radeon_parse_montype_prop(dp, out_EDID, -1); } return MT_NONE; }
static int __devinit radeon_probe_OF_head(struct radeonfb_info *rinfo, int head_no, u8 **out_EDID) { struct device_node *dp; pr_debug("radeon_probe_OF_head\n"); dp = rinfo->of_node; while (dp == NULL) return MT_NONE; if (rinfo->has_CRTC2) { const char *pname; int len, second = 0; dp = dp->child; do { if (!dp) return MT_NONE; pname = of_get_property(dp, "name", NULL); if (!pname) return MT_NONE; len = strlen(pname); pr_debug("head: %s (letter: %c, head_no: %d)\n", pname, pname[len-1], head_no); if (pname[len-1] == 'A' && head_no == 0) { int mt = radeon_parse_montype_prop(dp, out_EDID, 0); if (mt == MT_DFP && rinfo->is_mobility) mt = MT_LCD; return mt; } else if (pname[len-1] == 'B' && head_no == 1) return radeon_parse_montype_prop(dp, out_EDID, 1); second = 1; dp = dp->sibling; } while(!second); } else { if (head_no > 0) return MT_NONE; return radeon_parse_montype_prop(dp, out_EDID, -1); } return MT_NONE; }