From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [PATCH v3 12/24] drm/rockchip: dw-mipi-dsi: allow commands in panel_disable Date: Mon, 30 Jan 2017 15:19:53 -0500 Message-ID: <20170130201953.GO20076@art_vandelay> References: <20170129132444.25251-1-john@metanate.com> <20170129132444.25251-13-john@metanate.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20170129132444.25251-13-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 Cc: linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-rockchip@lists.infradead.org, Chris Zhong , linux-arm-kernel@lists.infradead.org List-Id: linux-rockchip.vger.kernel.org T24gU3VuLCBKYW4gMjksIDIwMTcgYXQgMDE6MjQ6MzJQTSArMDAwMCwgSm9obiBLZWVwaW5nIHdy b3RlOgo+IFBhbmVsIGRyaXZlcnMgbWF5IHdhbnQgdG8gc2VudCBjb21tYW5kcyBkdXJpbmcgdGhl IGRpc2FibGUgZnVuY3Rpb24sIGZvcgo+IGV4YW1wbGUgTUlQSV9EQ1NfU0VUX0RJU1BMQVlfT0ZG IGJlZm9yZSB0aGUgdmlkZW8gc2lnbmFsIGVuZHMuICBJbiBvcmRlcgo+IHRvIHNlbmQgY29tbWFu ZHMgd2UgbmVlZCB0byB3cml0ZSB0byByZWdpc3RlcnMsIHNvIHBjbGsgbXVzdCBiZSBlbmFibGVk Lgo+IAo+IFdoaWxlIGNoYW5naW5nIHRoaXMsIHJlbW92ZSB0aGUgdW5uZWNlc3NhcnkgY29kZSBh ZnRlciB0aGUgcGFuZWwKPiB1bnByZXBhcmUgY2FsbCB3aGljaCBzZWVtcyB0byBiZSBhIHdvcmth cm91bmQgZm9yIGEgc3BlY2lmaWMgcGFuZWwgYW5kCj4gdGh1cyBiZWxvbmdzIGluIHRoZSBwYW5l bCBkcml2ZXIuCgpEbyB5b3Uga25vdyB3aGljaCBwYW5lbD8gSWYgdGhlIHBhbmVsIGRyaXZlciBp cyB1cHN0cmVhbSwgd2Ugc2hvdWxkIG1ha2Ugc3VyZSB3ZQptaWdyYXRlIHRoaXMgaGFjayBiZWZv cmUgcmVtb3ZpbmcgaXQgaGVyZS4gSWYgaXQncyBkb3duc3RyZWFtIHNvbWV3aGVyZSwKClJldmll d2VkLWJ5OiBTZWFuIFBhdWwgPHNlYW5wYXVsQGNocm9taXVtLm9yZz4KCj4gCj4gU2lnbmVkLW9m Zi1ieTogSm9obiBLZWVwaW5nIDxqb2huQG1ldGFuYXRlLmNvbT4KPiBSZXZpZXdlZC1ieTogQ2hy aXMgWmhvbmcgPHp5d0Byb2NrLWNoaXBzLmNvbT4KPiAtLS0KPiB2MzoKPiAtIEFkZCBDaHJpcycg UmV2aWV3ZWQtYnkKPiBVbmNoYW5nZWQgaW4gdjIKPiAKPiAgZHJpdmVycy9ncHUvZHJtL3JvY2tj aGlwL2R3LW1pcGktZHNpLmMgfCAxMiArKy0tLS0tLS0tLS0KPiAgMSBmaWxlIGNoYW5nZWQsIDIg aW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9yb2NrY2hpcC9kdy1taXBpLWRzaS5jIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlw L2R3LW1pcGktZHNpLmMKPiBpbmRleCA3YWRhNmQ4ZWQxNDMuLjI5MDI4MmU4NmQxNiAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvZHctbWlwaS1kc2kuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9kdy1taXBpLWRzaS5jCj4gQEAgLTg0NiwyNCArODQ2LDE2 IEBAIHN0YXRpYyB2b2lkIGR3X21pcGlfZHNpX2VuY29kZXJfZGlzYWJsZShzdHJ1Y3QgZHJtX2Vu Y29kZXIgKmVuY29kZXIpCj4gIHsKPiAgCXN0cnVjdCBkd19taXBpX2RzaSAqZHNpID0gZW5jb2Rl cl90b19kc2koZW5jb2Rlcik7Cj4gIAo+IC0JZHJtX3BhbmVsX2Rpc2FibGUoZHNpLT5wYW5lbCk7 Cj4gLQo+ICAJaWYgKGNsa19wcmVwYXJlX2VuYWJsZShkc2ktPnBjbGspKSB7Cj4gIAkJZGV2X2Vy cihkc2ktPmRldiwgIiVzOiBGYWlsZWQgdG8gZW5hYmxlIHBjbGtcbiIsIF9fZnVuY19fKTsKPiAg CQlyZXR1cm47Cj4gIAl9Cj4gIAo+ICsJZHJtX3BhbmVsX2Rpc2FibGUoZHNpLT5wYW5lbCk7Cj4g Kwo+ICAJZHdfbWlwaV9kc2lfc2V0X21vZGUoZHNpLCBEV19NSVBJX0RTSV9DTURfTU9ERSk7Cj4g IAlkcm1fcGFuZWxfdW5wcmVwYXJlKGRzaS0+cGFuZWwpOwo+IC0JZHdfbWlwaV9kc2lfc2V0X21v ZGUoZHNpLCBEV19NSVBJX0RTSV9WSURfTU9ERSk7Cj4gIAo+IC0JLyoKPiAtCSAqIFRoaXMgaXMg bmVjZXNzYXJ5IHRvIG1ha2Ugc3VyZSB0aGUgcGVyaXBoZXJhbCB3aWxsIGJlIGRyaXZlbgo+IC0J ICogbm9ybWFsbHkgd2hlbiB0aGUgZGlzcGxheSBpcyBlbmFibGVkIGFnYWluIGxhdGVyLgo+IC0J ICovCj4gLQltc2xlZXAoMTIwKTsKPiAtCj4gLQlkd19taXBpX2RzaV9zZXRfbW9kZShkc2ksIERX X01JUElfRFNJX0NNRF9NT0RFKTsKPiAgCWR3X21pcGlfZHNpX2Rpc2FibGUoZHNpKTsKPiAgCWNs a19kaXNhYmxlX3VucHJlcGFyZShkc2ktPnBjbGspOwo+ICB9Cj4gLS0gCj4gMi4xMS4wLjE5Ny5n YjU1NmRlNS5kaXJ0eQo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCj4gZHJpLWRldmVsIG1haWxpbmcgbGlzdAo+IGRyaS1kZXZlbEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2RyaS1kZXZlbAoKLS0gClNlYW4gUGF1bCwgU29mdHdhcmUgRW5naW5lZXIsIEdvb2dsZSAv IENocm9taXVtIE9TCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZl bAo= From mboxrd@z Thu Jan 1 00:00:00 1970 From: seanpaul@chromium.org (Sean Paul) Date: Mon, 30 Jan 2017 15:19:53 -0500 Subject: [PATCH v3 12/24] drm/rockchip: dw-mipi-dsi: allow commands in panel_disable In-Reply-To: <20170129132444.25251-13-john@metanate.com> References: <20170129132444.25251-1-john@metanate.com> <20170129132444.25251-13-john@metanate.com> Message-ID: <20170130201953.GO20076@art_vandelay> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Sun, Jan 29, 2017 at 01:24:32PM +0000, 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. Do you know which panel? If the panel driver is upstream, we should make sure we migrate this hack before removing it here. If it's downstream somewhere, Reviewed-by: Sean Paul > > Signed-off-by: John Keeping > Reviewed-by: Chris Zhong > --- > v3: > - Add Chris' Reviewed-by > 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); > dw_mipi_dsi_disable(dsi); > clk_disable_unprepare(dsi->pclk); > } > -- > 2.11.0.197.gb556de5.dirty > > _______________________________________________ > dri-devel mailing list > dri-devel at lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Sean Paul, Software Engineer, Google / Chromium OS From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754247AbdA3UVR (ORCPT ); Mon, 30 Jan 2017 15:21:17 -0500 Received: from mail-qt0-f171.google.com ([209.85.216.171]:36696 "EHLO mail-qt0-f171.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752362AbdA3UVO (ORCPT ); Mon, 30 Jan 2017 15:21:14 -0500 Date: Mon, 30 Jan 2017 15:19:53 -0500 From: Sean Paul To: John Keeping Cc: Mark Yao , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-rockchip@lists.infradead.org, Chris Zhong , linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH v3 12/24] drm/rockchip: dw-mipi-dsi: allow commands in panel_disable Message-ID: <20170130201953.GO20076@art_vandelay> References: <20170129132444.25251-1-john@metanate.com> <20170129132444.25251-13-john@metanate.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170129132444.25251-13-john@metanate.com> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sun, Jan 29, 2017 at 01:24:32PM +0000, 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. Do you know which panel? If the panel driver is upstream, we should make sure we migrate this hack before removing it here. If it's downstream somewhere, Reviewed-by: Sean Paul > > Signed-off-by: John Keeping > Reviewed-by: Chris Zhong > --- > v3: > - Add Chris' Reviewed-by > 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); > dw_mipi_dsi_disable(dsi); > clk_disable_unprepare(dsi->pclk); > } > -- > 2.11.0.197.gb556de5.dirty > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Sean Paul, Software Engineer, Google / Chromium OS