static int parse_fb_win_variant(struct device_node *np, char *node_name, struct s3c_fb_win_variant *pvar) { u32 temp; int ret = 0; struct device_node *np_fbwin; np_fbwin = of_find_node_by_name(np, node_name); if (!np_fbwin) { pr_err("%s: could not find fb_win_variant node\n", node_name); return -EINVAL; } DT_READ_U32_OPTIONAL(np_fbwin, "has_osd_c", pvar->has_osd_c); DT_READ_U32_OPTIONAL(np_fbwin, "has_osd_d", pvar->has_osd_d); DT_READ_U32_OPTIONAL(np_fbwin, "has_osd_alpha", pvar->has_osd_alpha); DT_READ_U32_OPTIONAL(np_fbwin, "osd_size_off", pvar->osd_size_off); DT_READ_U32_OPTIONAL(np_fbwin, "palette_size", pvar->palette_sz); DT_READ_U32_SETBITS(np_fbwin, "VALID_BPP_1248", pvar->valid_bpp, VALID_BPP1248); DT_READ_U32_SETBITS(np_fbwin, "VALID_BPP_13", pvar->valid_bpp, VALID_BPP(13)); DT_READ_U32_SETBITS(np_fbwin, "VALID_BPP_15", pvar->valid_bpp, VALID_BPP(15)); DT_READ_U32_SETBITS(np_fbwin, "VALID_BPP_16", pvar->valid_bpp, VALID_BPP(16)); DT_READ_U32_SETBITS(np_fbwin, "VALID_BPP_18", pvar->valid_bpp, VALID_BPP(18)); DT_READ_U32_SETBITS(np_fbwin, "VALID_BPP_19", pvar->valid_bpp, VALID_BPP(19)); DT_READ_U32_SETBITS(np_fbwin, "VALID_BPP_24", pvar->valid_bpp, VALID_BPP(24)); DT_READ_U32_SETBITS(np_fbwin, "VALID_BPP_25", pvar->valid_bpp, VALID_BPP(25)); DT_READ_U32_SETBITS(np_fbwin, "VALID_BPP_32", pvar->valid_bpp, VALID_BPP(32)); return ret; }
/** * s3c_fb_validate_win_bpp - validate the bits-per-pixel for this mode. * @win: The device window. * @bpp: The bit depth. */ static bool s3c_fb_validate_win_bpp(struct s3c_fb_win *win, unsigned int bpp) { return win->variant.valid_bpp & VALID_BPP(bpp); }