Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756251AbcJSRnS (ORCPT ); Wed, 19 Oct 2016 13:43:18 -0400 Received: from mail-db5eur01on0053.outbound.protection.outlook.com ([104.47.2.53]:53088 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750816AbcJSRnQ (ORCPT ); Wed, 19 Oct 2016 13:43:16 -0400 From: Meng Yi To: Stefan Agner , "dri-devel@lists.freedesktop.org" CC: "alison.wang@freescale.com" , "jianwei.wang.chn@gmail.com" , "linux-kernel@vger.kernel.org" Subject: RE: [PATCH v3 1/5] drm/fsl-dcu: enable TCON bypass mode by default Thread-Topic: [PATCH v3 1/5] drm/fsl-dcu: enable TCON bypass mode by default Thread-Index: AQHSKL4kFPFtpNso50iAL3RWcQNu36CvhcXw Date: Wed, 19 Oct 2016 09:35:36 +0000 Message-ID: References: <20161017213321.8074-1-stefan@agner.ch> <20161017213321.8074-2-stefan@agner.ch> In-Reply-To: <20161017213321.8074-2-stefan@agner.ch> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=meng.yi@nxp.com; x-originating-ip: [192.158.241.86] x-ms-office365-filtering-correlation-id: 0972e2dd-8067-4d66-2464-08d3f80347ce x-microsoft-exchange-diagnostics: 1;DB6PR0401MB2629;7:k8fEg+l3A6YhvOOEFXRwAU/2mBUMmzZN9i6r2YebFQl1YTt+NL9L4VWoCHGY+Y+M53JO9HkxRBpPvNYqfEfxx+2kpNzKh4xzfOGpnU0yTa/bW9ZH+BojL/prR2FN73nrFXsWkMTKL3zokVz/SM3UmxZUnBYbeFIMsP1o+1Z/M9BodwmHrnTvR0n9u4G4pyauerjEvJBnT4KvUGr0V1vTYMyt5G+Sa51arVQaCcPZASfkNQpL5Ja5GHjg0uOIRTp5KUo9haFX6sfVhzgimQYOiCzU/v83ETRBoSQfJ3oH++CpWVG4BeHAbyoThRu+Kge2k7jcFzj1g1WOIG9tkKBCrq8J/ODMQbNFJq719NL/548= x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DB6PR0401MB2629; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(185117386973197); x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(6040176)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6055026);SRVR:DB6PR0401MB2629;BCL:0;PCL:0;RULEID:;SRVR:DB6PR0401MB2629; x-forefront-prvs: 0100732B76 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(6009001)(7916002)(199003)(189002)(105586002)(8676002)(87936001)(189998001)(7736002)(101416001)(2906002)(19580395003)(9686002)(5002640100001)(2950100002)(11100500001)(77096005)(8936002)(5001770100001)(19580405001)(2501003)(66066001)(97736004)(33656002)(92566002)(3280700002)(68736007)(3660700001)(81156014)(106356001)(102836003)(7696004)(81166006)(7846002)(3846002)(2900100001)(4326007)(106116001)(74316002)(86362001)(305945005)(122556002)(5660300001)(10400500002)(76576001)(586003)(54356999)(50986999)(76176999)(6116002);DIR:OUT;SFP:1101;SCL:1;SRVR:DB6PR0401MB2629;H:DB6PR0401MB2631.eurprd04.prod.outlook.com;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Oct 2016 09:35:36.1533 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0401MB2629 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by mail.home.local id u9JHhMaS019792 Content-Length: 3003 Lines: 97 > > Do not use encoder disable/enable callbacks to control bypass mode as this > seems to mess with the signals not liked by displays. This also makes more > sense since the encoder is already defined to be parallel RGB/LVDS at creation > time. > > Signed-off-by: Stefan Agner > --- > drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c | 2 ++ drivers/gpu/drm/fsl- > dcu/fsl_dcu_drm_rgb.c | 39 ++++--------------------------- > 2 files changed, 7 insertions(+), 34 deletions(-) > > diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c b/drivers/gpu/drm/fsl- > dcu/fsl_dcu_drm_drv.c > index 0884c45..3897f56 100644 > --- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c > +++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c > @@ -273,6 +273,8 @@ static int fsl_dcu_drm_pm_resume(struct device *dev) > goto disable_dcu_clk; > } > > + if (fsl_dev->tcon) > + fsl_tcon_bypass_enable(fsl_dev->tcon); > fsl_dcu_drm_init_planes(fsl_dev->drm); > drm_atomic_helper_resume(fsl_dev->drm, fsl_dev->state); > > diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c b/drivers/gpu/drm/fsl- > dcu/fsl_dcu_drm_rgb.c > index 26edcc8..e1dd75b 100644 > --- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c > +++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c > @@ -20,38 +20,6 @@ > #include "fsl_dcu_drm_drv.h" > #include "fsl_tcon.h" > > -static int > -fsl_dcu_drm_encoder_atomic_check(struct drm_encoder *encoder, > - struct drm_crtc_state *crtc_state, > - struct drm_connector_state *conn_state) > -{ > - return 0; > -} > - > -static void fsl_dcu_drm_encoder_disable(struct drm_encoder *encoder) -{ > - struct drm_device *dev = encoder->dev; > - struct fsl_dcu_drm_device *fsl_dev = dev->dev_private; > - > - if (fsl_dev->tcon) > - fsl_tcon_bypass_disable(fsl_dev->tcon); > -} > - > -static void fsl_dcu_drm_encoder_enable(struct drm_encoder *encoder) -{ > - struct drm_device *dev = encoder->dev; > - struct fsl_dcu_drm_device *fsl_dev = dev->dev_private; > - > - if (fsl_dev->tcon) > - fsl_tcon_bypass_enable(fsl_dev->tcon); > -} > - > -static const struct drm_encoder_helper_funcs encoder_helper_funcs = { > - .atomic_check = fsl_dcu_drm_encoder_atomic_check, > - .disable = fsl_dcu_drm_encoder_disable, > - .enable = fsl_dcu_drm_encoder_enable, > -}; > - > static void fsl_dcu_drm_encoder_destroy(struct drm_encoder *encoder) { > drm_encoder_cleanup(encoder); > @@ -68,13 +36,16 @@ int fsl_dcu_drm_encoder_create(struct > fsl_dcu_drm_device *fsl_dev, > int ret; > > encoder->possible_crtcs = 1; > + > + /* Use bypass mode for parallel RGB/LVDS encoder */ > + if (fsl_dev->tcon) > + fsl_tcon_bypass_enable(fsl_dev->tcon); > + > ret = drm_encoder_init(fsl_dev->drm, encoder, &encoder_funcs, > DRM_MODE_ENCODER_LVDS, NULL); > if (ret < 0) > return ret; > > - drm_encoder_helper_add(encoder, &encoder_helper_funcs); > - > return 0; > } > > -- > 2.10.0 Tested-By: Meng Yi Tested those 5 patches on LS1021a-twr, and everything is fine. Meng