From mboxrd@z Thu Jan 1 00:00:00 1970 From: John Keeping Subject: Re: [PATCH v3 12/24] drm/rockchip: dw-mipi-dsi: allow commands in panel_disable Date: Tue, 31 Jan 2017 12:03:49 +0000 Message-ID: <20170131120349.6e291624.john@metanate.com> References: <20170129132444.25251-1-john@metanate.com> <20170129132444.25251-13-john@metanate.com> <20170130201953.GO20076@art_vandelay> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170130201953.GO20076@art_vandelay> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Sean Paul 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 T24gTW9uLCAzMCBKYW4gMjAxNyAxNToxOTo1MyAtMDUwMCwgU2VhbiBQYXVsIHdyb3RlOgoKPiBP biBTdW4sIEphbiAyOSwgMjAxNyBhdCAwMToyNDozMlBNICswMDAwLCBKb2huIEtlZXBpbmcgd3Jv dGU6Cj4gPiBQYW5lbCBkcml2ZXJzIG1heSB3YW50IHRvIHNlbnQgY29tbWFuZHMgZHVyaW5nIHRo ZSBkaXNhYmxlIGZ1bmN0aW9uLCBmb3IKPiA+IGV4YW1wbGUgTUlQSV9EQ1NfU0VUX0RJU1BMQVlf T0ZGIGJlZm9yZSB0aGUgdmlkZW8gc2lnbmFsIGVuZHMuICBJbiBvcmRlcgo+ID4gdG8gc2VuZCBj b21tYW5kcyB3ZSBuZWVkIHRvIHdyaXRlIHRvIHJlZ2lzdGVycywgc28gcGNsayBtdXN0IGJlIGVu YWJsZWQuCj4gPiAKPiA+IFdoaWxlIGNoYW5naW5nIHRoaXMsIHJlbW92ZSB0aGUgdW5uZWNlc3Nh cnkgY29kZSBhZnRlciB0aGUgcGFuZWwKPiA+IHVucHJlcGFyZSBjYWxsIHdoaWNoIHNlZW1zIHRv IGJlIGEgd29ya2Fyb3VuZCBmb3IgYSBzcGVjaWZpYyBwYW5lbCBhbmQKPiA+IHRodXMgYmVsb25n cyBpbiB0aGUgcGFuZWwgZHJpdmVyLiAgCj4gCj4gRG8geW91IGtub3cgd2hpY2ggcGFuZWw/IElm IHRoZSBwYW5lbCBkcml2ZXIgaXMgdXBzdHJlYW0sIHdlIHNob3VsZCBtYWtlIHN1cmUgd2UKPiBt aWdyYXRlIHRoaXMgaGFjayBiZWZvcmUgcmVtb3ZpbmcgaXQgaGVyZS4gSWYgaXQncyBkb3duc3Ry ZWFtIHNvbWV3aGVyZSwKCkknbSBqdXN0IGdvaW5nIGJ5IHRoZSBjb21tZW50IGluIHRoZSBjb2Rl IHRoYXQgdGhpcyBwYXRjaCBkZWxldGVzIGFuZAp0aGUgZmFjdCB0aGF0IHRoaXMgZGVsYXkgd2Fz IG5vdCBuZWVkZWQgb24gYW55IG9mIHRoZSB0aHJlZSBwYW5lbHMgSQp0ZXN0ZWQuCgpHaXZlbiB0 aGUgd2F5IHRoZSBtb2RlcyBjaGFuZ2UsIEkgdGhpbmsgdGhpcyBzaG91bGQgYmUgYSAxMjBtcyBk aXNhYmxlCmRlbGF5IGlmIHRoZSBhZmZlY3RlZCBwYW5lbCBpcyBzdXBwb3J0ZWQgYnkgdGhlIHNp bXBsZS1wYW5lbCBkcml2ZXIuCgo+IFJldmlld2VkLWJ5OiBTZWFuIFBhdWwgPHNlYW5wYXVsQGNo cm9taXVtLm9yZz4KPiAKPiA+IAo+ID4gU2lnbmVkLW9mZi1ieTogSm9obiBLZWVwaW5nIDxqb2hu QG1ldGFuYXRlLmNvbT4KPiA+IFJldmlld2VkLWJ5OiBDaHJpcyBaaG9uZyA8enl3QHJvY2stY2hp cHMuY29tPgo+ID4gLS0tCj4gPiB2MzoKPiA+IC0gQWRkIENocmlzJyBSZXZpZXdlZC1ieQo+ID4g VW5jaGFuZ2VkIGluIHYyCj4gPiAKPiA+ICBkcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvZHctbWlw aS1kc2kuYyB8IDEyICsrLS0tLS0tLS0tLQo+ID4gIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlv bnMoKyksIDEwIGRlbGV0aW9ucygtKQo+ID4gCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3JvY2tjaGlwL2R3LW1pcGktZHNpLmMgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvZHct bWlwaS1kc2kuYwo+ID4gaW5kZXggN2FkYTZkOGVkMTQzLi4yOTAyODJlODZkMTYgMTAwNjQ0Cj4g PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvZHctbWlwaS1kc2kuYwo+ID4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2R3LW1pcGktZHNpLmMKPiA+IEBAIC04NDYsMjQgKzg0 NiwxNiBAQCBzdGF0aWMgdm9pZCBkd19taXBpX2RzaV9lbmNvZGVyX2Rpc2FibGUoc3RydWN0IGRy bV9lbmNvZGVyICplbmNvZGVyKQo+ID4gIHsKPiA+ICAJc3RydWN0IGR3X21pcGlfZHNpICpkc2kg PSBlbmNvZGVyX3RvX2RzaShlbmNvZGVyKTsKPiA+ICAKPiA+IC0JZHJtX3BhbmVsX2Rpc2FibGUo ZHNpLT5wYW5lbCk7Cj4gPiAtCj4gPiAgCWlmIChjbGtfcHJlcGFyZV9lbmFibGUoZHNpLT5wY2xr KSkgewo+ID4gIAkJZGV2X2Vycihkc2ktPmRldiwgIiVzOiBGYWlsZWQgdG8gZW5hYmxlIHBjbGtc biIsIF9fZnVuY19fKTsKPiA+ICAJCXJldHVybjsKPiA+ICAJfQo+ID4gIAo+ID4gKwlkcm1fcGFu ZWxfZGlzYWJsZShkc2ktPnBhbmVsKTsKPiA+ICsKPiA+ICAJZHdfbWlwaV9kc2lfc2V0X21vZGUo ZHNpLCBEV19NSVBJX0RTSV9DTURfTU9ERSk7Cj4gPiAgCWRybV9wYW5lbF91bnByZXBhcmUoZHNp LT5wYW5lbCk7Cj4gPiAtCWR3X21pcGlfZHNpX3NldF9tb2RlKGRzaSwgRFdfTUlQSV9EU0lfVklE X01PREUpOwo+ID4gIAo+ID4gLQkvKgo+ID4gLQkgKiBUaGlzIGlzIG5lY2Vzc2FyeSB0byBtYWtl IHN1cmUgdGhlIHBlcmlwaGVyYWwgd2lsbCBiZSBkcml2ZW4KPiA+IC0JICogbm9ybWFsbHkgd2hl biB0aGUgZGlzcGxheSBpcyBlbmFibGVkIGFnYWluIGxhdGVyLgo+ID4gLQkgKi8KPiA+IC0JbXNs ZWVwKDEyMCk7Cj4gPiAtCj4gPiAtCWR3X21pcGlfZHNpX3NldF9tb2RlKGRzaSwgRFdfTUlQSV9E U0lfQ01EX01PREUpOwo+ID4gIAlkd19taXBpX2RzaV9kaXNhYmxlKGRzaSk7Cj4gPiAgCWNsa19k aXNhYmxlX3VucHJlcGFyZShkc2ktPnBjbGspOwo+ID4gIH0KPiA+IC0tIAo+ID4gMi4xMS4wLjE5 Ny5nYjU1NmRlNS5kaXJ0eQo+ID4gCj4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwo+ID4gZHJpLWRldmVsIG1haWxpbmcgbGlzdAo+ID4gZHJpLWRldmVs QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ID4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwgIAo+IApfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9kcmktZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 From: john@metanate.com (John Keeping) Date: Tue, 31 Jan 2017 12:03:49 +0000 Subject: [PATCH v3 12/24] drm/rockchip: dw-mipi-dsi: allow commands in panel_disable In-Reply-To: <20170130201953.GO20076@art_vandelay> References: <20170129132444.25251-1-john@metanate.com> <20170129132444.25251-13-john@metanate.com> <20170130201953.GO20076@art_vandelay> Message-ID: <20170131120349.6e291624.john@metanate.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Mon, 30 Jan 2017 15:19:53 -0500, Sean Paul wrote: > 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, I'm just going by the comment in the code that this patch deletes and the fact that this delay was not needed on any of the three panels I tested. Given the way the modes change, I think this should be a 120ms disable delay if the affected panel is supported by the simple-panel driver. > 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 > From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752005AbdAaM1B (ORCPT ); Tue, 31 Jan 2017 07:27:01 -0500 Received: from dougal.metanate.com ([90.155.101.14]:34323 "EHLO metanate.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751656AbdAaM0y (ORCPT ); Tue, 31 Jan 2017 07:26:54 -0500 Date: Tue, 31 Jan 2017 12:03:49 +0000 From: John Keeping To: Sean Paul 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: <20170131120349.6e291624.john@metanate.com> In-Reply-To: <20170130201953.GO20076@art_vandelay> References: <20170129132444.25251-1-john@metanate.com> <20170129132444.25251-13-john@metanate.com> <20170130201953.GO20076@art_vandelay> Organization: Metanate Ltd X-Mailer: Claws Mail 3.14.1 (GTK+ 2.24.31; x86_64-unknown-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, 30 Jan 2017 15:19:53 -0500, Sean Paul wrote: > 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, I'm just going by the comment in the code that this patch deletes and the fact that this delay was not needed on any of the three panels I tested. Given the way the modes change, I think this should be a 120ms disable delay if the affected panel is supported by the simple-panel driver. > 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 >