Hi Kieran,

Thank you for the patch.

On Thursday, 26 April 2018 19:53:36 EEST Kieran Bingham wrote:
> The R8A77965 (M3-N) SoC provides VGA, HDMI and LVDS output.
> 
> This platform is unusual in that the VGA is connected to DU3 leaving DU2
> unpopulated. This is reflected by the channel_mask accordingly.

I'd write s/VGA/DPAD/g (or s/VGA/RGB/g) as the DPAD output can be used for 
other purposes than VGA.

> Signed-off-by: Kieran Bingham <[email protected]>
> ---
>  drivers/gpu/drm/rcar-du/rcar_du_drv.c | 29 +++++++++++++++++++++++++++
>  1 file changed, 29 insertions(+)
> 
> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> b/drivers/gpu/drm/rcar-du/rcar_du_drv.c index d6ebc628fc22..4d195ff8c569
> 100644
> --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> @@ -246,6 +246,34 @@ static const struct rcar_du_device_info
> rcar_du_r8a7796_info = { .dpll_ch =  BIT(1),
>  };
> 
> +static const struct rcar_du_device_info rcar_du_r8a77965_info = {
> +     .gen = 3,
> +     .features = RCAR_DU_FEATURE_CRTC_IRQ_CLOCK
> +               | RCAR_DU_FEATURE_EXT_CTRL_REGS
> +               | RCAR_DU_FEATURE_VSP1_SOURCE,
> +     .channel_mask = BIT(0) | BIT(1) | BIT(3),

Depending on what you think of my suggestions for patch 05/17, you might want 
to reverse the bit order here.

> +     .routes = {
> +             /*
> +              * R8A77965 has one RGB output, one LVDS output and one HDMI
> +              * output.
> +              */
> +             [RCAR_DU_OUTPUT_DPAD0] = {
> +                     .possible_crtcs = BIT(2),
> +                     .port = 0,
> +             },
> +             [RCAR_DU_OUTPUT_HDMI0] = {
> +                     .possible_crtcs = BIT(1),
> +                     .port = 1,
> +             },
> +             [RCAR_DU_OUTPUT_LVDS0] = {
> +                     .possible_crtcs = BIT(0),

I wonder whether it wouldn't be easier to read if we replaced possible_crtcs 
with possible_channels, as this structure describes the hardware and had its 
num_crtcs field replaced with a channel_mask. This would require converting 
the possible_channels field to a possible_crtcs field in 
rcar_du_modeset_init(), and I think that no change would be needed in 
rcar_du_group_setup_defr8() (but please double check). On the other hand, no 
code would be simplified, and rcar_du_modeset_init() would gain some 
additional complexity, so it might not be worth it.

Either way this patch looks good to me.

Reviewed-by: Laurent Pinchart <[email protected]>

> +                     .port = 2,
> +             },
> +     },
> +     .num_lvds = 1,
> +     .dpll_ch =  BIT(1),
> +};
> +
>  static const struct rcar_du_device_info rcar_du_r8a77970_info = {
>       .gen = 3,
>       .features = RCAR_DU_FEATURE_CRTC_IRQ_CLOCK
> @@ -277,6 +305,7 @@ static const struct of_device_id rcar_du_of_table[] = {
>       { .compatible = "renesas,du-r8a7794", .data = &rcar_du_r8a7794_info },
>       { .compatible = "renesas,du-r8a7795", .data = &rcar_du_r8a7795_info },
>       { .compatible = "renesas,du-r8a7796", .data = &rcar_du_r8a7796_info },
> +     { .compatible = "renesas,du-r8a77965", .data = &rcar_du_r8a77965_info },
>       { .compatible = "renesas,du-r8a77970", .data = &rcar_du_r8a77970_info },
>       { }
>  };

-- 
Regards,

Laurent Pinchart



Reply via email to