linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Neil Armstrong <narmstrong@baylibre.com>
To: Jose Abreu <Jose.Abreu@synopsys.com>,
	dri-devel@lists.freedesktop.org,
	laurent.pinchart+renesas@ideasonboard.com
Cc: kieran.bingham@ideasonboard.com,
	linux-amlogic@lists.infradead.org, linux-kernel@vger.kernel.org
Subject: Re: [RFC/RFT PATCH 4/4] drm/bridge: dw-hdmi: Take input format from plat_data
Date: Wed, 18 Jan 2017 12:24:22 +0100	[thread overview]
Message-ID: <66fc9acc-5db9-d124-fbe5-31893a5bd5df@baylibre.com> (raw)
In-Reply-To: <e19f5c56-08d9-1e9a-a093-25c57fcc7138@synopsys.com>

Hi Jose,

On 01/18/2017 11:28 AM, Jose Abreu wrote:
> Hi Neil,
> 
> 
> On 17-01-2017 12:31, Neil Armstrong wrote:
>> Some display pipelines can only provide non-RBG input pixels to the HDMI TX
>> Controller, this patch takes the pixel format from the plat_data if provided.
>>
>> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
>> ---
>>  drivers/gpu/drm/bridge/dw-hdmi.c | 7 +++++--
>>  include/drm/bridge/dw_hdmi.h     | 9 +++++++++
>>  2 files changed, 14 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/bridge/dw-hdmi.c b/drivers/gpu/drm/bridge/dw-hdmi.c
>> index 8a6a183..fa4147c 100644
>> --- a/drivers/gpu/drm/bridge/dw-hdmi.c
>> +++ b/drivers/gpu/drm/bridge/dw-hdmi.c
>> @@ -1420,8 +1420,11 @@ static int dw_hdmi_setup(struct dw_hdmi *hdmi, struct drm_display_mode *mode)
>>  	hdmi->hdmi_data.video_mode.mpixelrepetitionoutput = 0;
>>  	hdmi->hdmi_data.video_mode.mpixelrepetitioninput = 0;
>>  
>> -	/* TODO: Get input format from IPU (via FB driver interface) */
>> -	hdmi->hdmi_data.enc_in_format = RGB;
>> +	/* Get input format from plat data or fallback to RGB */
>> +	if (hdmi->plat_data->input_fmt >= 0)
>> +		hdmi->hdmi_data.enc_in_format = hdmi->plat_data->input_fmt;
> 
> Also not a big fan of this approach, but its better than it was.
> BTW see relevant discussion about colorspace (this is more in the
> output path) here [1].
> 
> [1] https://patchwork.kernel.org/patch/9495153/
> 
>> +	else
>> +		hdmi->hdmi_data.enc_in_format = RGB;
>>  
>>  	hdmi->hdmi_data.enc_out_format = RGB;
>>  
>> diff --git a/include/drm/bridge/dw_hdmi.h b/include/drm/bridge/dw_hdmi.h
>> index d6a0ab3..4f426c3 100644
>> --- a/include/drm/bridge/dw_hdmi.h
>> +++ b/include/drm/bridge/dw_hdmi.h
>> @@ -21,6 +21,14 @@ enum {
>>  	DW_HDMI_RES_MAX,
>>  };
>>  
>> +enum {
>> +	DW_HDMI_INPUT_FMT_RGB = 0,
>> +	DW_HDMI_INPUT_FMT_YCBCR444,
>> +	DW_HDMI_INPUT_FMT_YCBCR422_16BITS,
>> +	DW_HDMI_INPUT_FMT_YCBCR422_8BITS,
> 
> Hmm, did you test these two? I'm not sure if deep color can be
> converted using CSC.

I simply copied the dw-hdmi internal values.
Proper handling of input formats capabilities and
output format pixel clock handling should be added sometime.
In the meantime, it's worth adding which input is supported.

This approach is very limited, should I add a bitmask with all
support input formats and select between RGB, YUV444 or YUV422
in dw_hdmi_setup ?

> 
> Best regards,
> Jose Miguel Abreu
> 
>> +	DW_HDMI_INPUT_FMT_XVYCC444,
>> +};
>> +
>>  enum dw_hdmi_phy_type {
>>  	DW_HDMI_PHY_DWC_HDMI_TX_PHY = 0x00,
>>  	DW_HDMI_PHY_DWC_MHL_PHY_HEAC = 0xb2,
>> @@ -68,6 +76,7 @@ struct dw_hdmi_plat_data {
>>  				 const struct dw_hdmi_plat_data *data);
>>  	bool (*hdmi_read_hpd)(struct dw_hdmi *hdmi,
>>  			      const struct dw_hdmi_plat_data *data);
>> +	int input_fmt;
>>  };
>>  
>>  int dw_hdmi_probe(struct platform_device *pdev,
> 

Thanks,
Neil

  reply	other threads:[~2017-01-18 11:24 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-17 12:31 [RFC/RFT PATCH 0/4] drm/bridge: dw-hdmi: Add support for Custom PHYs Neil Armstrong
2017-01-17 12:31 ` [RFC/RFT PATCH 1/4] drm/bridge: dw-hdmi: Switch to regmap for register access Neil Armstrong
2017-01-17 14:39   ` Laurent Pinchart
2017-01-20 15:12     ` Neil Armstrong
2017-01-17 12:31 ` [RFC/RFT PATCH 2/4] drm/bridge: dw-hdmi: Add support for custom PHY handling Neil Armstrong
2017-01-17 14:54   ` Laurent Pinchart
2017-01-18 10:40   ` Jose Abreu
2017-01-18 11:20     ` Neil Armstrong
2017-01-19 14:20       ` Jose Abreu
2017-01-17 12:31 ` [RFC/RFT PATCH 3/4] drm/bridge: dw-hdmi: Enable CSC even for DVI Neil Armstrong
2017-01-17 14:40   ` Laurent Pinchart
2017-01-18 10:22   ` Jose Abreu
2017-01-18 11:15     ` Neil Armstrong
2017-01-17 12:31 ` [RFC/RFT PATCH 4/4] drm/bridge: dw-hdmi: Take input format from plat_data Neil Armstrong
2017-01-17 14:48   ` Laurent Pinchart
2017-01-18 10:28   ` Jose Abreu
2017-01-18 11:24     ` Neil Armstrong [this message]
2017-01-18 20:49       ` Laurent Pinchart
2017-01-19 15:21         ` Jose Abreu
2017-01-19 15:30           ` Hans Verkuil
2017-01-19 16:45             ` Laurent Pinchart

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=66fc9acc-5db9-d124-fbe5-31893a5bd5df@baylibre.com \
    --to=narmstrong@baylibre.com \
    --cc=Jose.Abreu@synopsys.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=kieran.bingham@ideasonboard.com \
    --cc=laurent.pinchart+renesas@ideasonboard.com \
    --cc=linux-amlogic@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).