Re: [PATCH 07/17] drm: rcar-du: Add R8A77965 support
From: Kieran Bingham
Date: Fri Apr 27 2018 - 06:14:45 EST
On 26/04/18 21:43, Laurent Pinchart wrote:
> 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 <kieran.bingham+renesas@xxxxxxxxxxxxxxxx>
>> ---
>> 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.
Done.
>
>> + .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.
I think we can leave this for now and consider it later if worth while.
>
> Either way this patch looks good to me.
>
> Reviewed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>
Thanks, collected.
--
Kieran
>
>> + .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 },
>> { }
>> };
>