From: Liu Ying Date: Tue, 25 Jul 2017 03:40:22 +0000 (+0800) Subject: MLK-16075-12 gpu: imx: dpu: common: Add helpers dpu_vproc_has/get_fetcheco_cap() X-Git-Tag: C0P2-H0.0--20200415~2026 X-Git-Url: https://git.somdevices.com/?a=commitdiff_plain;h=8334782ff64c20443ec43c78fc6ce2a4bd7dbc9c;p=linux.git MLK-16075-12 gpu: imx: dpu: common: Add helpers dpu_vproc_has/get_fetcheco_cap() This patch adds helpers dpu_vproc_has/get_fetcheco_cap() support so that the users may check if a video processing mask has fetcheco capability or get the fetcheco capability from the mask. We currently only support fetcheco0 and fetcheco1. Signed-off-by: Liu Ying --- diff --git a/drivers/gpu/imx/dpu/dpu-common.c b/drivers/gpu/imx/dpu/dpu-common.c index 477c25608e42..5ab02e2cc393 100644 --- a/drivers/gpu/imx/dpu/dpu-common.c +++ b/drivers/gpu/imx/dpu/dpu-common.c @@ -549,6 +549,12 @@ static const struct of_device_id dpu_dt_ids[] = { }; MODULE_DEVICE_TABLE(of, dpu_dt_ids); +bool dpu_vproc_has_fetcheco_cap(u32 cap_mask) +{ + return !!(cap_mask & DPU_VPROC_CAP_FETCHECO); +} +EXPORT_SYMBOL_GPL(dpu_vproc_has_fetcheco_cap); + bool dpu_vproc_has_hscale_cap(u32 cap_mask) { return !!(cap_mask & DPU_VPROC_CAP_HSCALE); @@ -561,6 +567,12 @@ bool dpu_vproc_has_vscale_cap(u32 cap_mask) } EXPORT_SYMBOL_GPL(dpu_vproc_has_vscale_cap); +u32 dpu_vproc_get_fetcheco_cap(u32 cap_mask) +{ + return cap_mask & DPU_VPROC_CAP_FETCHECO; +} +EXPORT_SYMBOL_GPL(dpu_vproc_get_fetcheco_cap); + u32 dpu_vproc_get_hscale_cap(u32 cap_mask) { return cap_mask & DPU_VPROC_CAP_HSCALE; diff --git a/drivers/gpu/imx/dpu/dpu-prv.h b/drivers/gpu/imx/dpu/dpu-prv.h index e6ea9100ad54..5f22cfbf28cc 100644 --- a/drivers/gpu/imx/dpu/dpu-prv.h +++ b/drivers/gpu/imx/dpu/dpu-prv.h @@ -139,11 +139,15 @@ enum { #define DPU_VPROC_CAP_VSCALER4 BIT(1) #define DPU_VPROC_CAP_HSCALER5 BIT(2) #define DPU_VPROC_CAP_VSCALER5 BIT(3) +#define DPU_VPROC_CAP_FETCHECO0 BIT(4) +#define DPU_VPROC_CAP_FETCHECO1 BIT(5) #define DPU_VPROC_CAP_HSCALE (DPU_VPROC_CAP_HSCALER4 | \ DPU_VPROC_CAP_HSCALER5) #define DPU_VPROC_CAP_VSCALE (DPU_VPROC_CAP_VSCALER4 | \ DPU_VPROC_CAP_VSCALER5) +#define DPU_VPROC_CAP_FETCHECO (DPU_VPROC_CAP_FETCHECO0 | \ + DPU_VPROC_CAP_FETCHECO1) struct dpu_unit { char *name; diff --git a/include/video/dpu.h b/include/video/dpu.h index 1ac4a07bdf6b..a576bd149660 100644 --- a/include/video/dpu.h +++ b/include/video/dpu.h @@ -631,9 +631,11 @@ void dpu_vs_put(struct dpu_vscaler *vs); struct dpu_hscaler *fetchdecode_get_hscaler(struct dpu_fetchdecode *fd); struct dpu_vscaler *fetchdecode_get_vscaler(struct dpu_fetchdecode *fd); +bool dpu_vproc_has_fetcheco_cap(u32 cap_mask); bool dpu_vproc_has_hscale_cap(u32 cap_mask); bool dpu_vproc_has_vscale_cap(u32 cap_mask); +u32 dpu_vproc_get_fetcheco_cap(u32 cap_mask); u32 dpu_vproc_get_hscale_cap(u32 cap_mask); u32 dpu_vproc_get_vscale_cap(u32 cap_mask);