Received: by 2002:a05:7412:419a:b0:f3:1519:9f41 with SMTP id i26csp2957743rdh; Mon, 27 Nov 2023 03:26:28 -0800 (PST) X-Google-Smtp-Source: AGHT+IG34TFhEGp5XlNdHi2IABgfMFKA38UukYJrGxxefmQT+WE00uQHk2Kjax9LzGL8g76pE9Jk X-Received: by 2002:a05:6a00:1248:b0:6cb:52ce:e25b with SMTP id u8-20020a056a00124800b006cb52cee25bmr13768793pfi.34.1701084387674; Mon, 27 Nov 2023 03:26:27 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701084387; cv=none; d=google.com; s=arc-20160816; b=Wg72uc60AjrpWQvrWYdKFnnQQMxb2A4juFHwvRY798n8wpruVd1WMSXygACz2j7wRs oIu3TbTFJkmEoogv+UQAw0zoWJsk6femqEfsd/VpQ2qqCmvhHNBRW7Rk/4y4Q3hN3364 jxeXlrtnS5nJhziZXZhntYNQvhvJgS2osDv+D5uZDBqzcKfzpSdvoGaVvY6mYQlLs2/C +tcKNXId/Ar9Ljr5fk4j3T6FlsTn1B8XKhagyowJNGy3cYbhrRTMOJTKGonSODCPhX/b rUhTUG9gj2vG23sXX7abcqSqC6ZUen9A93JypaGWkpwf0LTYfM0OBMmSh04rlHDh0z5v mKGg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=b/67NoDcPxvAAIA5WIrjqY+l7CqIqlHVZ4pedQ3WAvM=; fh=EjTlq08CY5Byiz+DbZQZF1emheIMB+LjxxSEMkKDaLs=; b=h6B9GzeqzX/o3oaucN+pNMd5YwSo1o5eYJ6utsh1n7b9431Ho7FWkvNUJCcTi+jRHC owZImTlQACFxcfY2mc4Eu2WFSCk80r/Q2w1cxo/Cw97fixN62Nxqqe6fcBXEFDSyIw3p EhFZxCyKfsjh1gvpElGSop/z7C4z30gsdfekuZD3ufiqIFtH7wvEyP/jMfnv9ohwxaLg 1DjcmO7jjnZTgtOGqVNHSZbXKPEh0xvPXJUUr9lOxXoaNS26D2n8EASMmCEOGvefU0U/ QQM3PNiMfMgBYI/bapoeEc2hvPPBVg7OrNreA15f1o/qrMpqUhkqchRWSguY8aLLQ04E NY9Q== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=sntech.de Return-Path: Received: from snail.vger.email (snail.vger.email. [23.128.96.37]) by mx.google.com with ESMTPS id j19-20020a63fc13000000b00565f0e9cfbbsi9901445pgi.382.2023.11.27.03.26.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Nov 2023 03:26:27 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) client-ip=23.128.96.37; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=sntech.de Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id ED01C8097895; Mon, 27 Nov 2023 03:26:16 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233153AbjK0L0D (ORCPT + 99 others); Mon, 27 Nov 2023 06:26:03 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54510 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231461AbjK0L0C (ORCPT ); Mon, 27 Nov 2023 06:26:02 -0500 Received: from gloria.sntech.de (gloria.sntech.de [185.11.138.130]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8E94C101 for ; Mon, 27 Nov 2023 03:26:05 -0800 (PST) Received: from i53875bf8.versanet.de ([83.135.91.248] helo=diego.localnet) by gloria.sntech.de with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1r7ZkO-000139-1p; Mon, 27 Nov 2023 12:25:52 +0100 From: Heiko =?ISO-8859-1?Q?St=FCbner?= To: hjc@rock-chips.com, Johan Jonker Cc: airlied@gmail.com, daniel@ffwll.ch, dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v1 3/4] drm/rockchip: rk3066_hdmi: Remove useless output format Date: Mon, 27 Nov 2023 12:25:51 +0100 Message-ID: <8082175.UjTJXf6HLC@diego> In-Reply-To: References: <4308014.ejJDZkT8p0@phil> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Spam-Status: No, score=-1.2 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_BLOCKED,SPF_PASS,T_SCC_BODY_TEXT_LINE, T_SPF_HELO_TEMPERROR,URI_DOTEDU autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Mon, 27 Nov 2023 03:26:17 -0800 (PST) Hi Johan, Am Donnerstag, 23. November 2023, 13:54:28 CET schrieb Johan Jonker: > > On 11/20/23 18:06, Heiko Stuebner wrote: > > Hi Johan, > > > > Am Donnerstag, 2. November 2023, 14:42:19 CET schrieb Johan Jonker: > >> The Rk3066 hdmi output format is hard coded to RGB. Remove > >> all useless code related to colorimetry and enc_out_format. > >> > >> Signed-off-by: Johan Jonker > > > > > I guess my first question is, is the hardcoding happening just because > > of missing functionality in the driver, or does the hardware only > > support RGB? > > This driver can do so much more..., but is crippled by various causes. > If in need for a full functional rk3066 driver a little bit help/advise/action from other people is needed. Part of me wants to have fully working drivers, but on the other hand, both the rk3066-hdmi and also the inno-hdmi drivers are sort of one-off drivers used by rk3066 and rk3036 (inno-hdmi) and most likely won't see new SoCs using them in the future. So I guess after thinking more about this, I should probably just apply your patch to simplify the code and if by some magical happenings in future someone really wants to spend time on either one of these drivers they can always use "git revert" to bring back the old code? Heiko > 1: > Missing rk3066 TRM HDMI register info. > Could Rockchip (= Sandy Huang) disclose this info to the open source community? > > As a way around we can look at older driver code and port to mainline. > More info gives better results. > rk30_hdmi_config_csc() function: > https://github.com/RockchipOpensourceCommunity/px2-android-kernel-3.0/blob/master/drivers/video/rockchip/hdmi/chips/rkpx2/rkpx2_hdmi_hw.c#L315 > > 2: > Could DRM people show us examples for: > - How to advertise to the VOP driver what data formats (RGB, YCBCR) it can send to the HDMI driver or any other Rockchip DRM sub driver other then RGB. > - Advertise EDID data monitor modes RGB444, YCBCR444 and YCBCR422 to the HDMI driver. > > https://github.com/RockchipOpensourceCommunity/px2-android-kernel-3.0/blob/master/drivers/video/rockchip/hdmi/rk_hdmi_edid.c#L217C1-L218C41 > > 3: > Advise when what Infoframe is needed for only RGB vs. the rest according to the specification. > https://engineering.purdue.edu/ece477/Archive/2012/Spring/S12-Grp10/Datasheets/CEC_HDMI_Specification.pdf > > rk3066 currently only sends avi info. Does it need vsi as well? Can anyone give some clarity here? > inno_hdime sends avi and vsi info. > > 4: > rk3066_hdmi and inno_hdmi are HDMI 1.4a drivers for DVI and HDMI. > Validated by drm_match_cea_mode() this function only gives us both HDMI + HDMI2 focus, but nothing for old DVI monitors. > How to improve? > > 5: > Sound support was submitted: > Re: [PATCH v6 2/5] drm: rockchip: add sound support to rk3066 hdmi driver > https://lore.kernel.org/linux-rockchip/48dbe9b7-0aa0-f459-301f-f380e2b7f2f8@gmail.com/ > > No reply was given (by Heiko or others) on why it wasn't applied or what needs to be improved. > > Without reply no improvement. > > Johan > > > > > > > >> --- > >> drivers/gpu/drm/rockchip/rk3066_hdmi.c | 20 +------------------- > >> 1 file changed, 1 insertion(+), 19 deletions(-) > >> > >> diff --git a/drivers/gpu/drm/rockchip/rk3066_hdmi.c b/drivers/gpu/drm/rockchip/rk3066_hdmi.c > >> index 0e7aae341960..f2b1b2faa096 100644 > >> --- a/drivers/gpu/drm/rockchip/rk3066_hdmi.c > >> +++ b/drivers/gpu/drm/rockchip/rk3066_hdmi.c > >> @@ -23,8 +23,6 @@ > >> > >> struct hdmi_data_info { > >> int vic; /* The CEA Video ID (VIC) of the current drm display mode. */ > >> - unsigned int enc_out_format; > >> - unsigned int colorimetry; > >> }; > >> > >> struct rk3066_hdmi_i2c { > >> @@ -200,14 +198,7 @@ static int rk3066_hdmi_config_avi(struct rk3066_hdmi *hdmi, > >> rc = drm_hdmi_avi_infoframe_from_display_mode(&frame.avi, > >> &hdmi->connector, mode); > >> > >> - if (hdmi->hdmi_data.enc_out_format == HDMI_COLORSPACE_YUV444) > >> - frame.avi.colorspace = HDMI_COLORSPACE_YUV444; > >> - else if (hdmi->hdmi_data.enc_out_format == HDMI_COLORSPACE_YUV422) > >> - frame.avi.colorspace = HDMI_COLORSPACE_YUV422; > >> - else > >> - frame.avi.colorspace = HDMI_COLORSPACE_RGB; > >> - > >> - frame.avi.colorimetry = hdmi->hdmi_data.colorimetry; > >> + frame.avi.colorspace = HDMI_COLORSPACE_RGB; > >> frame.avi.scan_mode = HDMI_SCAN_MODE_NONE; > >> > >> return rk3066_hdmi_upload_frame(hdmi, rc, &frame, > >> @@ -329,15 +320,6 @@ static int rk3066_hdmi_setup(struct rk3066_hdmi *hdmi, > >> struct drm_display_info *display = &hdmi->connector.display_info; > >> > >> hdmi->hdmi_data.vic = drm_match_cea_mode(mode); > >> - hdmi->hdmi_data.enc_out_format = HDMI_COLORSPACE_RGB; > >> - > >> - if (hdmi->hdmi_data.vic == 6 || hdmi->hdmi_data.vic == 7 || > >> - hdmi->hdmi_data.vic == 21 || hdmi->hdmi_data.vic == 22 || > >> - hdmi->hdmi_data.vic == 2 || hdmi->hdmi_data.vic == 3 || > >> - hdmi->hdmi_data.vic == 17 || hdmi->hdmi_data.vic == 18) > >> - hdmi->hdmi_data.colorimetry = HDMI_COLORIMETRY_ITU_601; > >> - else > >> - hdmi->hdmi_data.colorimetry = HDMI_COLORIMETRY_ITU_709; > > > > > while I can understand the RGB output format, why does the colorimetry > > also get removed? This looks like it is dependent on the mode itself > > and not the output format? > > From the old driver these conditions apply whether csc is needed. > https://github.com/RockchipOpensourceCommunity/px2-android-kernel-3.0/blob/master/drivers/video/rockchip/hdmi/chips/rkpx2/rkpx2_hdmi_hw.c#L320C1-L324C3 > > if( ((vpara->input_color == VIDEO_INPUT_COLOR_RGB) && (vpara->output_color == VIDEO_OUTPUT_RGB444)) || > ((vpara->input_color == VIDEO_INPUT_COLOR_YCBCR) && (vpara->output_color != VIDEO_OUTPUT_RGB444) )) > { > return; > } > > > > > Thanks > > Heiko > > > > >