Message ID | 20230405-add-dsc-support-v3-1-6e1d35a206b3@quicinc.com |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp1531432vqo; Fri, 19 May 2023 14:26:27 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6l/MMUic2VZMLEpL7iGSRevGsvY1925aKC9fkgln8IlgJfvu8Vqpal4SCMsTrAo5VbEIZQ X-Received: by 2002:a17:90a:8a09:b0:253:3eb5:3ade with SMTP id w9-20020a17090a8a0900b002533eb53ademr4067687pjn.8.1684531587052; Fri, 19 May 2023 14:26:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684531587; cv=none; d=google.com; s=arc-20160816; b=o8wAJn1ra/llfrLBn76S8ueDbo8TScYqQcnSbMQ4o5xvo5P9xGFdOsnJqaXu/Wg9EB ryjuaTrUU9t6HnF1KMQViJI3R/uF02zy6hMfl7+JGew2lzgvLVWpVjT+m6Gu89F3AYGV jxw+Pz9aAAPXM2pDa29eJR8JWb51aCeayf0cHGeRARTXxbUTtJJ2EkorBSomssiulLqa U+bZKnPnVakaaFS/VpFEg/DXg0aOZ79AW8fu7ics2fkDlrydaqyPvzobsMwJwDITSVdM a4iZ42uxd0TBXPRRggYc4d+NDVqxNvgzDITqLpPx2Hdy6LK/wT/hKC+RmPOuK72roLWi Z3WQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from :dkim-signature; bh=LGYs5JRaupul/sQxKqKuVkEMyQsNwb7uHfELaz+GOEI=; b=lJbUXUcTOIdZAvr5JnB+8UttHw4R41Qr+jvt1c1UoiVPUNdicNksi/ntDXWxcE3oR6 QoY6EA70S59gOhjBIN9LoNJhU9cIxVWaAsMEQRAU/ZaKMDYswht4UXd8kqHi5lvmIdaM jSsA964UvLHTGkFhgAfvH7K5qMM3OxBP6SSdWb679J3mdVKjWvNR2D5cPW4dq+ykWuuM tsIiQRwNdcSd1xc2tmKbvKzLV3z6MTZ4zeifCmn1pczwJ+i4sIbjHTdSxjcjk3hK+itp NU2sBt+fGsdXSfWfGqCK4nTLOlSx3gV+UHXPM3koLkhdLrmn4DbWEEc7sYBoAGtRtzNW k8yQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=DOffWZmh; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id e5-20020a17090a728500b0024b011026aesi2320297pjg.76.2023.05.19.14.26.10; Fri, 19 May 2023 14:26:27 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=DOffWZmh; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231294AbjESVR4 (ORCPT <rfc822;wlfightup@gmail.com> + 99 others); Fri, 19 May 2023 17:17:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47580 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229933AbjESVRr (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Fri, 19 May 2023 17:17:47 -0400 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id ACCAF1B4; Fri, 19 May 2023 14:17:45 -0700 (PDT) Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 34JLCC2h013630; Fri, 19 May 2023 21:17:37 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=from : date : subject : mime-version : content-type : content-transfer-encoding : message-id : references : in-reply-to : to : cc; s=qcppdkim1; bh=LGYs5JRaupul/sQxKqKuVkEMyQsNwb7uHfELaz+GOEI=; b=DOffWZmhgn8+LKuoN61Q5kEY5/98uNAaOUcF9jBKGJ1zMSO7RIDTlY9sgfqwYv9hpWy5 54XBydVddmoqn62z1Tbh3VUR28s+OZEZnXG9Kky9NNaBB6xbT18QKs4yNMpqCozwcvta Pr3fdJ8nSmMQa85yYDLbRn651QQULSJgFKEILspir63up9qkEBTug+ydRV2yCdovq2Vd oAuPpn0vq/NdnoGqI/9hNPSRKckRrcYK0Dc+0Z+ypvYoOgoTMlcpZk5O5dkc8XtW+wn0 fIDPIR+sKWaf6rsU8FvPo+bC+Y7TuqiR44bNLnjC6SbYyg5fQPnTqWWsnjum/NOFxpi5 mQ== Received: from nasanppmta01.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3qp2e9a712-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 19 May 2023 21:17:37 +0000 Received: from nasanex01b.na.qualcomm.com (nasanex01b.na.qualcomm.com [10.46.141.250]) by NASANPPMTA01.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 34JLHaR9002604 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 19 May 2023 21:17:36 GMT Received: from jesszhan-linux.qualcomm.com (10.80.80.8) by nasanex01b.na.qualcomm.com (10.46.141.250) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.42; Fri, 19 May 2023 14:17:36 -0700 From: Jessica Zhang <quic_jesszhan@quicinc.com> Date: Fri, 19 May 2023 14:17:26 -0700 Subject: [PATCH v3 1/5] msm/drm/dsi: Round up DSC hdisplay calculation MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-ID: <20230405-add-dsc-support-v3-1-6e1d35a206b3@quicinc.com> References: <20230405-add-dsc-support-v3-0-6e1d35a206b3@quicinc.com> In-Reply-To: <20230405-add-dsc-support-v3-0-6e1d35a206b3@quicinc.com> To: Rob Clark <robdclark@gmail.com>, Abhinav Kumar <quic_abhinavk@quicinc.com>, Dmitry Baryshkov <dmitry.baryshkov@linaro.org>, Sean Paul <sean@poorly.run>, David Airlie <airlied@gmail.com>, Daniel Vetter <daniel@ffwll.ch>, Marijn Suijten <marijn.suijten@somainline.org> CC: Konrad Dybcio <konrad.dybcio@linaro.org>, <linux-arm-msm@vger.kernel.org>, <dri-devel@lists.freedesktop.org>, <freedreno@lists.freedesktop.org>, <linux-kernel@vger.kernel.org>, Jessica Zhang <quic_jesszhan@quicinc.com> X-Mailer: b4 0.13-dev-bfdf5 X-Developer-Signature: v=1; a=ed25519-sha256; t=1684531055; l=1111; i=quic_jesszhan@quicinc.com; s=20230329; h=from:subject:message-id; bh=UzrL5TSME/tshGEfQM1zFG9UKatVsCjuwESCrirmoyE=; b=+OUjWpXbUlg2+N1msooyFE448B64q+//m6Hh9gKtgE0bpFZJA3mmsrZu0fJC+CuP6Zg2ouHsb 1ekBTd324rQDaSOyM78zxu9aRXnhMdSHita099JnRyvtS9dvwgeIjl8 X-Developer-Key: i=quic_jesszhan@quicinc.com; a=ed25519; pk=gAUCgHZ6wTJOzQa3U0GfeCDH7iZLlqIEPo4rrjfDpWE= X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01b.na.qualcomm.com (10.46.141.250) To nasanex01b.na.qualcomm.com (10.46.141.250) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-GUID: ByVcaLshZ8zVBbfIMENXEChEzR-zkxIf X-Proofpoint-ORIG-GUID: ByVcaLshZ8zVBbfIMENXEChEzR-zkxIf X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-05-19_16,2023-05-17_02,2023-02-09_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 mlxscore=0 suspectscore=0 bulkscore=0 malwarescore=0 phishscore=0 spamscore=0 adultscore=0 priorityscore=1501 impostorscore=0 mlxlogscore=999 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2304280000 definitions=main-2305190184 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham 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: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1766359392942692352?= X-GMAIL-MSGID: =?utf-8?q?1766359392942692352?= |
Series |
Add DSC v1.2 Support for DSI
|
|
Commit Message
Jessica Zhang
May 19, 2023, 9:17 p.m. UTC
Currently, when compression is enabled, hdisplay is reduced via integer
division. This causes issues for modes where the original hdisplay is
not a multiple of 3.
To fix this, use DIV_ROUND_UP to divide hdisplay.
Reported-by: Marijn Suijten <marijn.suijten@somainline.org>
Fixes: f3a99460406b ("drm/msm/dsi: update hdisplay calculation for dsi_timing_setup")
Signed-off-by: Jessica Zhang <quic_jesszhan@quicinc.com>
---
drivers/gpu/drm/msm/dsi/dsi_host.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Comments
On 2023-05-19 14:17:26, Jessica Zhang wrote: > Currently, when compression is enabled, hdisplay is reduced via integer > division. This causes issues for modes where the original hdisplay is > not a multiple of 3. The "issue" probably being some kind of underflow, because the stream size is too small compared to how much data we actually send? > To fix this, use DIV_ROUND_UP to divide hdisplay. > > Reported-by: Marijn Suijten <marijn.suijten@somainline.org> > Fixes: f3a99460406b ("drm/msm/dsi: update hdisplay calculation for dsi_timing_setup") > Signed-off-by: Jessica Zhang <quic_jesszhan@quicinc.com> Yes, downstream has as very clear: dsc->pclk_per_line = DIV_ROUND_UP(total_bytes_per_intf, 3); which is used for width_final in SDE, and this is one of the mandatory fixes on a 1096-pixels-wide panel, which is not a multiple of 3. Reviewed-by: Marijn Suijten <marijn.suijten@somainline.org> > --- > drivers/gpu/drm/msm/dsi/dsi_host.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/msm/dsi/dsi_host.c b/drivers/gpu/drm/msm/dsi/dsi_host.c > index 9223d7ec5a73..18d38b90eb28 100644 > --- a/drivers/gpu/drm/msm/dsi/dsi_host.c > +++ b/drivers/gpu/drm/msm/dsi/dsi_host.c > @@ -952,7 +952,7 @@ static void dsi_timing_setup(struct msm_dsi_host *msm_host, bool is_bonded_dsi) > * pulse width same > */ > h_total -= hdisplay; > - hdisplay = msm_dsc_get_bytes_per_line(msm_host->dsc) / 3; > + hdisplay = DIV_ROUND_UP(msm_dsc_get_bytes_per_line(msm_host->dsc), 3); > h_total += hdisplay; > ha_end = ha_start + hdisplay; > } > > -- > 2.40.1 >
On 2023-05-19 14:17:26, Jessica Zhang wrote: > Currently, when compression is enabled, hdisplay is reduced via integer > division. This causes issues for modes where the original hdisplay is > not a multiple of 3. > > To fix this, use DIV_ROUND_UP to divide hdisplay. > > Reported-by: Marijn Suijten <marijn.suijten@somainline.org> This should have been: Suggested-by: Marijn Suijten <marijn.suijten@somainline.org> > Fixes: f3a99460406b ("drm/msm/dsi: update hdisplay calculation for dsi_timing_setup") This hash is not valid (and checkpatch points it out...), as it is your local commit from the MSM DSC helper methods series. The original issue was introduced in: Fixes: 08802f515c3cf ("drm/msm/dsi: Add support for DSC configuration") - Marijn > Signed-off-by: Jessica Zhang <quic_jesszhan@quicinc.com> > --- > drivers/gpu/drm/msm/dsi/dsi_host.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/msm/dsi/dsi_host.c b/drivers/gpu/drm/msm/dsi/dsi_host.c > index 9223d7ec5a73..18d38b90eb28 100644 > --- a/drivers/gpu/drm/msm/dsi/dsi_host.c > +++ b/drivers/gpu/drm/msm/dsi/dsi_host.c > @@ -952,7 +952,7 @@ static void dsi_timing_setup(struct msm_dsi_host *msm_host, bool is_bonded_dsi) > * pulse width same > */ > h_total -= hdisplay; > - hdisplay = msm_dsc_get_bytes_per_line(msm_host->dsc) / 3; > + hdisplay = DIV_ROUND_UP(msm_dsc_get_bytes_per_line(msm_host->dsc), 3); > h_total += hdisplay; > ha_end = ha_start + hdisplay; > } > > -- > 2.40.1 >
On 5/20/2023 1:07 AM, Marijn Suijten wrote: > On 2023-05-19 14:17:26, Jessica Zhang wrote: >> Currently, when compression is enabled, hdisplay is reduced via integer >> division. This causes issues for modes where the original hdisplay is >> not a multiple of 3. >> >> To fix this, use DIV_ROUND_UP to divide hdisplay. >> >> Reported-by: Marijn Suijten <marijn.suijten@somainline.org> > > This should have been: > > Suggested-by: Marijn Suijten <marijn.suijten@somainline.org> > >> Fixes: f3a99460406b ("drm/msm/dsi: update hdisplay calculation for dsi_timing_setup") > > This hash is not valid (and checkpatch points it out...), as it is your > local commit from the MSM DSC helper methods series. The original issue > was introduced in: > > Fixes: 08802f515c3cf ("drm/msm/dsi: Add support for DSC configuration") Hi Marijn, Acked. Thanks, Jessica Zhang > > - Marijn > >> Signed-off-by: Jessica Zhang <quic_jesszhan@quicinc.com> >> --- >> drivers/gpu/drm/msm/dsi/dsi_host.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/gpu/drm/msm/dsi/dsi_host.c b/drivers/gpu/drm/msm/dsi/dsi_host.c >> index 9223d7ec5a73..18d38b90eb28 100644 >> --- a/drivers/gpu/drm/msm/dsi/dsi_host.c >> +++ b/drivers/gpu/drm/msm/dsi/dsi_host.c >> @@ -952,7 +952,7 @@ static void dsi_timing_setup(struct msm_dsi_host *msm_host, bool is_bonded_dsi) >> * pulse width same >> */ >> h_total -= hdisplay; >> - hdisplay = msm_dsc_get_bytes_per_line(msm_host->dsc) / 3; >> + hdisplay = DIV_ROUND_UP(msm_dsc_get_bytes_per_line(msm_host->dsc), 3); >> h_total += hdisplay; >> ha_end = ha_start + hdisplay; >> } >> >> -- >> 2.40.1 >>
diff --git a/drivers/gpu/drm/msm/dsi/dsi_host.c b/drivers/gpu/drm/msm/dsi/dsi_host.c index 9223d7ec5a73..18d38b90eb28 100644 --- a/drivers/gpu/drm/msm/dsi/dsi_host.c +++ b/drivers/gpu/drm/msm/dsi/dsi_host.c @@ -952,7 +952,7 @@ static void dsi_timing_setup(struct msm_dsi_host *msm_host, bool is_bonded_dsi) * pulse width same */ h_total -= hdisplay; - hdisplay = msm_dsc_get_bytes_per_line(msm_host->dsc) / 3; + hdisplay = DIV_ROUND_UP(msm_dsc_get_bytes_per_line(msm_host->dsc), 3); h_total += hdisplay; ha_end = ha_start + hdisplay; }