u32 b2r2_get_img_pitch(struct b2r2_blt_img *img) { if (img->pitch != 0) return img->pitch; else return b2r2_calc_pitch_from_width(img->width, img->fmt); }
static bool is_valid_pitch_for_fmt(struct device *dev, u32 pitch, s32 width, enum b2r2_blt_fmt fmt) { s32 complete_width; u32 pitch_derived_from_width; complete_width = width_2_complete_width(width, fmt); pitch_derived_from_width = b2r2_calc_pitch_from_width(dev, complete_width, fmt); if (pitch < pitch_derived_from_width) return false; switch (fmt) { case B2R2_BLT_FMT_16_BIT_ARGB4444: case B2R2_BLT_FMT_16_BIT_ABGR4444: case B2R2_BLT_FMT_16_BIT_ARGB1555: case B2R2_BLT_FMT_16_BIT_RGB565: if (!b2r2_is_aligned(pitch, 2)) return false; break; case B2R2_BLT_FMT_CB_Y_CR_Y: case B2R2_BLT_FMT_24_BIT_RGB888: case B2R2_BLT_FMT_24_BIT_ARGB8565: case B2R2_BLT_FMT_24_BIT_YUV888: case B2R2_BLT_FMT_24_BIT_VUY888: case B2R2_BLT_FMT_32_BIT_ARGB8888: case B2R2_BLT_FMT_32_BIT_ABGR8888: case B2R2_BLT_FMT_32_BIT_AYUV8888: case B2R2_BLT_FMT_32_BIT_VUYA8888: if (!b2r2_is_aligned(pitch, 4)) return false; break; default: break; } return true; }