[PATCH v15 16/16] drm/mediatek: dpi: Add dp_intf support
CK Hu
ck.hu at mediatek.com
Mon Jul 4 22:29:39 PDT 2022
Hi, Bo-Chen:
On Fri, 2022-07-01 at 11:58 +0800, Bo-Chen Chen wrote:
> From: Guillaume Ranquet <granquet at baylibre.com>
>
> Dpintf is the displayport interface hardware unit. This unit is
> similar
> to dpi and can reuse most of the code.
>
> This patch adds support for mt8195-dpintf to this dpi driver. Main
> differences are:
> - 4 pixels for one iteration for dp_intf while dpi is 1 pixel for
> one
> iteration. Therefore, we add a new config "pixels_per_iter" to
> control
> quantity of transferred pixels per iteration.
> - Input of dp_intf is two pixels per iteration, so we add a new
> config
> "input_2pixel" to control this.
> - Some register contents differ slightly between the two components.
> To
> work around this I added register bits/masks with a DPINTF_ prefix
> and use them where different.
>
> Based on a separate driver for dpintf created by
> Jitao shi <jitao.shi at mediatek.com>.
>
> Signed-off-by: Markus Schneider-Pargmann <msp at baylibre.com>
> Signed-off-by: Guillaume Ranquet <granquet at baylibre.com>
> Signed-off-by: Bo-Chen Chen <rex-bc.chen at mediatek.com>
> Reviewed-by: AngeloGioacchino Del Regno <
> angelogioacchino.delregno at collabora.com>
> ---
> drivers/gpu/drm/mediatek/mtk_dpi.c | 65
> ++++++++++++++++++++-
> drivers/gpu/drm/mediatek/mtk_dpi_regs.h | 12 ++++
> drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c | 4 ++
> drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h | 1 +
> drivers/gpu/drm/mediatek/mtk_drm_drv.c | 3 +
> 5 files changed, 82 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/mediatek/mtk_dpi.c
> b/drivers/gpu/drm/mediatek/mtk_dpi.c
> index be039474cf26..1072e94d2f2f 100644
> --- a/drivers/gpu/drm/mediatek/mtk_dpi.c
> +++ b/drivers/gpu/drm/mediatek/mtk_dpi.c
> @@ -125,12 +125,15 @@ struct mtk_dpi_yc_limit {
> * @swap_input_support: Support input swap function.
> * @color_fmt_trans_support: Enable color format transfer.
> * @support_direct_pin: IP supports direct connection to dpi panels.
> + * @input_2pixel: Input pixel of dp_intf is 2 pixel per round, so
> enable this
> + * config to enable this feature.
> * @dimension_mask: Mask used for HWIDTH, HPORCH, VSYNC_WIDTH and
> VSYNC_PORCH
> * (no shift).
> * @hvsize_mask: Mask of HSIZE and VSIZE mask (no shift).
> * @channel_swap_shift: Shift value of channel swap.
> * @yuv422_en_bit: Enable bit of yuv422.
> * @csc_enable_bit: Enable bit of CSC.
> + * @pixels_per_iter: Quantity of transferred pixels per iteration.
> */
> struct mtk_dpi_conf {
> unsigned int (*cal_factor)(int clock);
> @@ -143,11 +146,13 @@ struct mtk_dpi_conf {
> bool swap_input_support;
> bool color_fmt_trans_support;
> bool support_direct_pin;
> + bool input_2pixel;
Separate input_2pixel to an independent patch.
> u32 dimension_mask;
> u32 hvsize_mask;
> u32 channel_swap_shift;
> u32 yuv422_en_bit;
> u32 csc_enable_bit;
> + u32 pixels_per_iter;
Separate pixels_per_iter to an independent patch.
Regards,
CK
> };
>
>
More information about the Linux-mediatek
mailing list