From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Zhong Subject: Re: [PATCH v2 13/26] drm/rockchip: dw-mipi-dsi: allow commands in panel_disable Date: Sun, 22 Jan 2017 16:37:16 +0800 Message-ID: <58846F3C.40904@rock-chips.com> References: <20170121163128.22240-1-john@metanate.com> <20170121163128.22240-14-john@metanate.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170121163128.22240-14-john@metanate.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: John Keeping , Mark Yao Cc: linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org List-Id: linux-rockchip.vger.kernel.org SGkgSm9obgoKCgpPbiAwMS8yMi8yMDE3IDEyOjMxIEFNLCBKb2huIEtlZXBpbmcgd3JvdGU6Cj4g UGFuZWwgZHJpdmVycyBtYXkgd2FudCB0byBzZW50IGNvbW1hbmRzIGR1cmluZyB0aGUgZGlzYWJs ZSBmdW5jdGlvbiwgZm9yCj4gZXhhbXBsZSBNSVBJX0RDU19TRVRfRElTUExBWV9PRkYgYmVmb3Jl IHRoZSB2aWRlbyBzaWduYWwgZW5kcy4gIEluIG9yZGVyCj4gdG8gc2VuZCBjb21tYW5kcyB3ZSBu ZWVkIHRvIHdyaXRlIHRvIHJlZ2lzdGVycywgc28gcGNsayBtdXN0IGJlIGVuYWJsZWQuCj4KPiBX aGlsZSBjaGFuZ2luZyB0aGlzLCByZW1vdmUgdGhlIHVubmVjZXNzYXJ5IGNvZGUgYWZ0ZXIgdGhl IHBhbmVsCj4gdW5wcmVwYXJlIGNhbGwgd2hpY2ggc2VlbXMgdG8gYmUgYSB3b3JrYXJvdW5kIGZv ciBhIHNwZWNpZmljIHBhbmVsIGFuZAo+IHRodXMgYmVsb25ncyBpbiB0aGUgcGFuZWwgZHJpdmVy Lgo+Cj4gU2lnbmVkLW9mZi1ieTogSm9obiBLZWVwaW5nIDxqb2huQG1ldGFuYXRlLmNvbT4KPiAt LS0KPiBVbmNoYW5nZWQgaW4gdjIKPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9k dy1taXBpLWRzaS5jIHwgMTIgKystLS0tLS0tLS0tCj4gICAxIGZpbGUgY2hhbmdlZCwgMiBpbnNl cnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vcm9ja2NoaXAvZHctbWlwaS1kc2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9kdy1t aXBpLWRzaS5jCj4gaW5kZXggN2FkYTZkOGVkMTQzLi4yOTAyODJlODZkMTYgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2R3LW1pcGktZHNpLmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vcm9ja2NoaXAvZHctbWlwaS1kc2kuYwo+IEBAIC04NDYsMjQgKzg0NiwxNiBAQCBz dGF0aWMgdm9pZCBkd19taXBpX2RzaV9lbmNvZGVyX2Rpc2FibGUoc3RydWN0IGRybV9lbmNvZGVy ICplbmNvZGVyKQo+ICAgewo+ICAgCXN0cnVjdCBkd19taXBpX2RzaSAqZHNpID0gZW5jb2Rlcl90 b19kc2koZW5jb2Rlcik7Cj4gICAKPiAtCWRybV9wYW5lbF9kaXNhYmxlKGRzaS0+cGFuZWwpOwo+ IC0KPiAgIAlpZiAoY2xrX3ByZXBhcmVfZW5hYmxlKGRzaS0+cGNsaykpIHsKPiAgIAkJZGV2X2Vy cihkc2ktPmRldiwgIiVzOiBGYWlsZWQgdG8gZW5hYmxlIHBjbGtcbiIsIF9fZnVuY19fKTsKPiAg IAkJcmV0dXJuOwo+ICAgCX0KPiAgIAo+ICsJZHJtX3BhbmVsX2Rpc2FibGUoZHNpLT5wYW5lbCk7 Cj4gKwo+ICAgCWR3X21pcGlfZHNpX3NldF9tb2RlKGRzaSwgRFdfTUlQSV9EU0lfQ01EX01PREUp Owo+ICAgCWRybV9wYW5lbF91bnByZXBhcmUoZHNpLT5wYW5lbCk7Cj4gLQlkd19taXBpX2RzaV9z ZXRfbW9kZShkc2ksIERXX01JUElfRFNJX1ZJRF9NT0RFKTsKPiAgIAo+IC0JLyoKPiAtCSAqIFRo aXMgaXMgbmVjZXNzYXJ5IHRvIG1ha2Ugc3VyZSB0aGUgcGVyaXBoZXJhbCB3aWxsIGJlIGRyaXZl bgo+IC0JICogbm9ybWFsbHkgd2hlbiB0aGUgZGlzcGxheSBpcyBlbmFibGVkIGFnYWluIGxhdGVy Lgo+IC0JICovCj4gLQltc2xlZXAoMTIwKTsKPiAtCj4gLQlkd19taXBpX2RzaV9zZXRfbW9kZShk c2ksIERXX01JUElfRFNJX0NNRF9NT0RFKTsKVGhpcyB3b3JrYXJvdW5kIGlzIGZyb21bMF0sIEkg YWxzbyB0aGluayBpdCBzaG91bGQgYmUgZGVsZXRlZC4KClswXQpodHRwOi8vd3d3LnNwaW5pY3Mu bmV0L2xpc3RzL2RyaS1kZXZlbC9tc2c3NzE5Mi5odG1sCgoKUmV2aWV3ZWQtYnk6IENocmlzIFpo b25nIDx6eXdAcm9jay1jaGlwcy5jb20+Cgo+ICAgCWR3X21pcGlfZHNpX2Rpc2FibGUoZHNpKTsK PiAgIAljbGtfZGlzYWJsZV91bnByZXBhcmUoZHNpLT5wY2xrKTsKPiAgIH0KCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBs aXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 From: zyw@rock-chips.com (Chris Zhong) Date: Sun, 22 Jan 2017 16:37:16 +0800 Subject: [PATCH v2 13/26] drm/rockchip: dw-mipi-dsi: allow commands in panel_disable In-Reply-To: <20170121163128.22240-14-john@metanate.com> References: <20170121163128.22240-1-john@metanate.com> <20170121163128.22240-14-john@metanate.com> Message-ID: <58846F3C.40904@rock-chips.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Hi John On 01/22/2017 12:31 AM, John Keeping wrote: > Panel drivers may want to sent commands during the disable function, for > example MIPI_DCS_SET_DISPLAY_OFF before the video signal ends. In order > to send commands we need to write to registers, so pclk must be enabled. > > While changing this, remove the unnecessary code after the panel > unprepare call which seems to be a workaround for a specific panel and > thus belongs in the panel driver. > > Signed-off-by: John Keeping > --- > Unchanged in v2 > --- > drivers/gpu/drm/rockchip/dw-mipi-dsi.c | 12 ++---------- > 1 file changed, 2 insertions(+), 10 deletions(-) > > diff --git a/drivers/gpu/drm/rockchip/dw-mipi-dsi.c b/drivers/gpu/drm/rockchip/dw-mipi-dsi.c > index 7ada6d8ed143..290282e86d16 100644 > --- a/drivers/gpu/drm/rockchip/dw-mipi-dsi.c > +++ b/drivers/gpu/drm/rockchip/dw-mipi-dsi.c > @@ -846,24 +846,16 @@ static void dw_mipi_dsi_encoder_disable(struct drm_encoder *encoder) > { > struct dw_mipi_dsi *dsi = encoder_to_dsi(encoder); > > - drm_panel_disable(dsi->panel); > - > if (clk_prepare_enable(dsi->pclk)) { > dev_err(dsi->dev, "%s: Failed to enable pclk\n", __func__); > return; > } > > + drm_panel_disable(dsi->panel); > + > dw_mipi_dsi_set_mode(dsi, DW_MIPI_DSI_CMD_MODE); > drm_panel_unprepare(dsi->panel); > - dw_mipi_dsi_set_mode(dsi, DW_MIPI_DSI_VID_MODE); > > - /* > - * This is necessary to make sure the peripheral will be driven > - * normally when the display is enabled again later. > - */ > - msleep(120); > - > - dw_mipi_dsi_set_mode(dsi, DW_MIPI_DSI_CMD_MODE); This workaround is from[0], I also think it should be deleted. [0] http://www.spinics.net/lists/dri-devel/msg77192.html Reviewed-by: Chris Zhong > dw_mipi_dsi_disable(dsi); > clk_disable_unprepare(dsi->pclk); > } From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751575AbdAVIhx (ORCPT ); Sun, 22 Jan 2017 03:37:53 -0500 Received: from regular1.263xmail.com ([211.150.99.134]:44600 "EHLO regular1.263xmail.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751203AbdAVIhr (ORCPT ); Sun, 22 Jan 2017 03:37:47 -0500 X-263anti-spam: KSV:0; X-MAIL-GRAY: 0 X-MAIL-DELIVERY: 1 X-KSVirus-check: 0 X-ABS-CHECKED: 4 X-RL-SENDER: zyw@rock-chips.com X-FST-TO: linux-kernel@vger.kernel.org X-SENDER-IP: 103.29.142.67 X-LOGIN-NAME: zyw@rock-chips.com X-UNIQUE-TAG: <2d40cbf0a851a3193b494bbde5bb6c25> X-ATTACHMENT-NUM: 0 X-DNS-TYPE: 0 Subject: Re: [PATCH v2 13/26] drm/rockchip: dw-mipi-dsi: allow commands in panel_disable To: John Keeping , Mark Yao References: <20170121163128.22240-1-john@metanate.com> <20170121163128.22240-14-john@metanate.com> Cc: dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org From: Chris Zhong Message-ID: <58846F3C.40904@rock-chips.com> Date: Sun, 22 Jan 2017 16:37:16 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0 MIME-Version: 1.0 In-Reply-To: <20170121163128.22240-14-john@metanate.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi John On 01/22/2017 12:31 AM, John Keeping wrote: > Panel drivers may want to sent commands during the disable function, for > example MIPI_DCS_SET_DISPLAY_OFF before the video signal ends. In order > to send commands we need to write to registers, so pclk must be enabled. > > While changing this, remove the unnecessary code after the panel > unprepare call which seems to be a workaround for a specific panel and > thus belongs in the panel driver. > > Signed-off-by: John Keeping > --- > Unchanged in v2 > --- > drivers/gpu/drm/rockchip/dw-mipi-dsi.c | 12 ++---------- > 1 file changed, 2 insertions(+), 10 deletions(-) > > diff --git a/drivers/gpu/drm/rockchip/dw-mipi-dsi.c b/drivers/gpu/drm/rockchip/dw-mipi-dsi.c > index 7ada6d8ed143..290282e86d16 100644 > --- a/drivers/gpu/drm/rockchip/dw-mipi-dsi.c > +++ b/drivers/gpu/drm/rockchip/dw-mipi-dsi.c > @@ -846,24 +846,16 @@ static void dw_mipi_dsi_encoder_disable(struct drm_encoder *encoder) > { > struct dw_mipi_dsi *dsi = encoder_to_dsi(encoder); > > - drm_panel_disable(dsi->panel); > - > if (clk_prepare_enable(dsi->pclk)) { > dev_err(dsi->dev, "%s: Failed to enable pclk\n", __func__); > return; > } > > + drm_panel_disable(dsi->panel); > + > dw_mipi_dsi_set_mode(dsi, DW_MIPI_DSI_CMD_MODE); > drm_panel_unprepare(dsi->panel); > - dw_mipi_dsi_set_mode(dsi, DW_MIPI_DSI_VID_MODE); > > - /* > - * This is necessary to make sure the peripheral will be driven > - * normally when the display is enabled again later. > - */ > - msleep(120); > - > - dw_mipi_dsi_set_mode(dsi, DW_MIPI_DSI_CMD_MODE); This workaround is from[0], I also think it should be deleted. [0] http://www.spinics.net/lists/dri-devel/msg77192.html Reviewed-by: Chris Zhong > dw_mipi_dsi_disable(dsi); > clk_disable_unprepare(dsi->pclk); > }