From mboxrd@z Thu Jan 1 00:00:00 1970 From: John Keeping Subject: [PATCH v3 11/24] drm/rockchip: dw-mipi-dsi: prepare panel after phy init Date: Sun, 29 Jan 2017 13:24:31 +0000 Message-ID: <20170129132444.25251-12-john@metanate.com> References: <20170129132444.25251-1-john@metanate.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170129132444.25251-1-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: Mark Yao 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 U29tZSBwYW5lbHMgbmVlZCB0byBiZSBjb25maWd1cmVkIHdpdGggY29tbWFuZHMgc2VudCBvdmVy IHRoZSBNSVBJIGxpbmssCndoaWNoIHRoZXkgd2lsbCBkbyBpbiB0aGUgcHJlcGFyZSBob29rLiAg Q2FsbCB0aGlzIGFmdGVyIHRoZSBQSFkgaGFzCmJlZW4gaW5pdGlhbGl6ZWQgc28gdGhhdCB3ZSBh cmUgYWJsZSB0byBzZW5kIGNvbW1hbmRzIHRvIHRoZSBwYW5lbC4KClNpZ25lZC1vZmYtYnk6IEpv aG4gS2VlcGluZyA8am9obkBtZXRhbmF0ZS5jb20+ClJldmlld2VkLWJ5OiBDaHJpcyBaaG9uZyA8 enl3QHJvY2stY2hpcHMuY29tPgotLS0KdjM6Ci0gQWRkIENocmlzJyBSZXZpZXdlZC1ieQpVbmNo YW5nZWQgaW4gdjIKCiBkcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvZHctbWlwaS1kc2kuYyB8IDYg KysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9kdy1taXBpLWRzaS5jIGIvZHJp dmVycy9ncHUvZHJtL3JvY2tjaGlwL2R3LW1pcGktZHNpLmMKaW5kZXggZGRiYzAzN2U3Y2VkLi43 YWRhNmQ4ZWQxNDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9kdy1taXBp LWRzaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9kdy1taXBpLWRzaS5jCkBAIC04 OTYsMTIgKzg5NiwxNCBAQCBzdGF0aWMgdm9pZCBkd19taXBpX2RzaV9lbmNvZGVyX2VuYWJsZShz dHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCiAJZHdfbWlwaV9kc2lfZHBoeV90aW1pbmdfY29u ZmlnKGRzaSk7CiAJZHdfbWlwaV9kc2lfZHBoeV9pbnRlcmZhY2VfY29uZmlnKGRzaSk7CiAJZHdf bWlwaV9kc2lfY2xlYXJfZXJyKGRzaSk7Ci0JaWYgKGRybV9wYW5lbF9wcmVwYXJlKGRzaS0+cGFu ZWwpKQotCQlkZXZfZXJyKGRzaS0+ZGV2LCAiZmFpbGVkIHRvIHByZXBhcmUgcGFuZWxcbiIpOwog CiAJZHdfbWlwaV9kc2lfcGh5X2luaXQoZHNpKTsKIAlkd19taXBpX2RzaV93YWl0X2Zvcl90d29f ZnJhbWVzKG1vZGUpOwogCisJZHdfbWlwaV9kc2lfc2V0X21vZGUoZHNpLCBEV19NSVBJX0RTSV9D TURfTU9ERSk7CisJaWYgKGRybV9wYW5lbF9wcmVwYXJlKGRzaS0+cGFuZWwpKQorCQlkZXZfZXJy KGRzaS0+ZGV2LCAiZmFpbGVkIHRvIHByZXBhcmUgcGFuZWxcbiIpOworCiAJZHdfbWlwaV9kc2lf c2V0X21vZGUoZHNpLCBEV19NSVBJX0RTSV9WSURfTU9ERSk7CiAJZHJtX3BhbmVsX2VuYWJsZShk c2ktPnBhbmVsKTsKIAotLSAKMi4xMS4wLjE5Ny5nYjU1NmRlNS5kaXJ0eQoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlz dApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 From: john@metanate.com (John Keeping) Date: Sun, 29 Jan 2017 13:24:31 +0000 Subject: [PATCH v3 11/24] drm/rockchip: dw-mipi-dsi: prepare panel after phy init In-Reply-To: <20170129132444.25251-1-john@metanate.com> References: <20170129132444.25251-1-john@metanate.com> Message-ID: <20170129132444.25251-12-john@metanate.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Some panels need to be configured with commands sent over the MIPI link, which they will do in the prepare hook. Call this after the PHY has been initialized so that we are able to send commands to the panel. 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 | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/rockchip/dw-mipi-dsi.c b/drivers/gpu/drm/rockchip/dw-mipi-dsi.c index ddbc037e7ced..7ada6d8ed143 100644 --- a/drivers/gpu/drm/rockchip/dw-mipi-dsi.c +++ b/drivers/gpu/drm/rockchip/dw-mipi-dsi.c @@ -896,12 +896,14 @@ static void dw_mipi_dsi_encoder_enable(struct drm_encoder *encoder) dw_mipi_dsi_dphy_timing_config(dsi); dw_mipi_dsi_dphy_interface_config(dsi); dw_mipi_dsi_clear_err(dsi); - if (drm_panel_prepare(dsi->panel)) - dev_err(dsi->dev, "failed to prepare panel\n"); dw_mipi_dsi_phy_init(dsi); dw_mipi_dsi_wait_for_two_frames(mode); + dw_mipi_dsi_set_mode(dsi, DW_MIPI_DSI_CMD_MODE); + if (drm_panel_prepare(dsi->panel)) + dev_err(dsi->dev, "failed to prepare panel\n"); + dw_mipi_dsi_set_mode(dsi, DW_MIPI_DSI_VID_MODE); drm_panel_enable(dsi->panel); -- 2.11.0.197.gb556de5.dirty From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751363AbdA2Orf (ORCPT ); Sun, 29 Jan 2017 09:47:35 -0500 Received: from dougal.metanate.com ([90.155.101.14]:13549 "EHLO metanate.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751312AbdA2Ord (ORCPT ); Sun, 29 Jan 2017 09:47:33 -0500 From: John Keeping To: Mark Yao Cc: Chris Zhong , dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, John Keeping Subject: [PATCH v3 11/24] drm/rockchip: dw-mipi-dsi: prepare panel after phy init Date: Sun, 29 Jan 2017 13:24:31 +0000 Message-Id: <20170129132444.25251-12-john@metanate.com> X-Mailer: git-send-email 2.11.0.197.gb556de5.dirty In-Reply-To: <20170129132444.25251-1-john@metanate.com> References: <20170129132444.25251-1-john@metanate.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Some panels need to be configured with commands sent over the MIPI link, which they will do in the prepare hook. Call this after the PHY has been initialized so that we are able to send commands to the panel. 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 | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/rockchip/dw-mipi-dsi.c b/drivers/gpu/drm/rockchip/dw-mipi-dsi.c index ddbc037e7ced..7ada6d8ed143 100644 --- a/drivers/gpu/drm/rockchip/dw-mipi-dsi.c +++ b/drivers/gpu/drm/rockchip/dw-mipi-dsi.c @@ -896,12 +896,14 @@ static void dw_mipi_dsi_encoder_enable(struct drm_encoder *encoder) dw_mipi_dsi_dphy_timing_config(dsi); dw_mipi_dsi_dphy_interface_config(dsi); dw_mipi_dsi_clear_err(dsi); - if (drm_panel_prepare(dsi->panel)) - dev_err(dsi->dev, "failed to prepare panel\n"); dw_mipi_dsi_phy_init(dsi); dw_mipi_dsi_wait_for_two_frames(mode); + dw_mipi_dsi_set_mode(dsi, DW_MIPI_DSI_CMD_MODE); + if (drm_panel_prepare(dsi->panel)) + dev_err(dsi->dev, "failed to prepare panel\n"); + dw_mipi_dsi_set_mode(dsi, DW_MIPI_DSI_VID_MODE); drm_panel_enable(dsi->panel); -- 2.11.0.197.gb556de5.dirty