From mboxrd@z Thu Jan 1 00:00:00 1970 From: John Keeping Subject: [PATCH v3 04/24] drm/rockchip: dw-mipi-dsi: fix command header writes Date: Sun, 29 Jan 2017 13:24:24 +0000 Message-ID: <20170129132444.25251-5-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 SW4gYSBjb3VwbGUgb2YgcGxhY2VzIGhlcmUgd2UgdXNlICJ2YWwiIGZvciB0aGUgdmFsdWUgdGhh dCBpcyBhYm91dCB0bwpiZSB3cml0dGVuIHRvIGEgcmVnaXN0ZXIgYnV0IHRoZW4gcmV1c2UgdGhl IHNhbWUgdmFyaWFibGUgZm9yIHRoZSB2YWx1ZQpvZiBhIHN0YXR1cyByZWdpc3RlciBiZWZvcmUg d2UgZ2V0IGFyb3VuZCB0byB3cml0aW5nIGl0LiAgUmVuYW1lIHRoZQp2YWx1ZSB0byBiZSB3cml0 dGVuIHRvIHNvIHRoYXQgd2Ugd3JpdGUgdGhlIHZhbHVlIHdlIGludGVuZCB0byBhbmQgbm90Cndo YXQgd2UgaGF2ZSBqdXN0IHJlYWQgZnJvbSB0aGUgc3RhdHVzIHJlZ2lzdGVyLgoKU2lnbmVkLW9m Zi1ieTogSm9obiBLZWVwaW5nIDxqb2huQG1ldGFuYXRlLmNvbT4KVGVzdGVkLWJ5OiBDaHJpcyBa aG9uZyA8enl3QHJvY2stY2hpcHMuY29tPgpSZXZpZXdlZC1ieTogQ2hyaXMgWmhvbmcgPHp5d0By b2NrLWNoaXBzLmNvbT4KLS0tClVuY2hhbmdlZCBpbiB2MwpVbmNoYW5nZWQgaW4gdjIKCiBkcml2 ZXJzL2dwdS9kcm0vcm9ja2NoaXAvZHctbWlwaS1kc2kuYyB8IDEwICsrKysrKy0tLS0KIDEgZmls ZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2R3LW1pcGktZHNpLmMgYi9kcml2ZXJzL2dwdS9kcm0v cm9ja2NoaXAvZHctbWlwaS1kc2kuYwppbmRleCBiZDkyZTU4YjY0ZjMuLjRjYmJiY2I2MTliNyAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2R3LW1pcGktZHNpLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2R3LW1pcGktZHNpLmMKQEAgLTU0Miw5ICs1NDIsMTAg QEAgc3RhdGljIGludCBkd19taXBpX2RzaV9ob3N0X2RldGFjaChzdHJ1Y3QgbWlwaV9kc2lfaG9z dCAqaG9zdCwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBkd19taXBpX2RzaV9nZW5fcGt0 X2hkcl93cml0ZShzdHJ1Y3QgZHdfbWlwaV9kc2kgKmRzaSwgdTMyIHZhbCkKK3N0YXRpYyBpbnQg ZHdfbWlwaV9kc2lfZ2VuX3BrdF9oZHJfd3JpdGUoc3RydWN0IGR3X21pcGlfZHNpICpkc2ksIHUz MiBoZHJfdmFsKQogewogCWludCByZXQ7CisJdTMyIHZhbDsKIAogCXJldCA9IHJlYWR4X3BvbGxf dGltZW91dChyZWFkbCwgZHNpLT5iYXNlICsgRFNJX0NNRF9QS1RfU1RBVFVTLAogCQkJCSB2YWws ICEodmFsICYgR0VOX0NNRF9GVUxMKSwgMTAwMCwKQEAgLTU1NCw3ICs1NTUsNyBAQCBzdGF0aWMg aW50IGR3X21pcGlfZHNpX2dlbl9wa3RfaGRyX3dyaXRlKHN0cnVjdCBkd19taXBpX2RzaSAqZHNp LCB1MzIgdmFsKQogCQlyZXR1cm4gcmV0OwogCX0KIAotCWRzaV93cml0ZShkc2ksIERTSV9HRU5f SERSLCB2YWwpOworCWRzaV93cml0ZShkc2ksIERTSV9HRU5fSERSLCBoZHJfdmFsKTsKIAogCXJl dCA9IHJlYWR4X3BvbGxfdGltZW91dChyZWFkbCwgZHNpLT5iYXNlICsgRFNJX0NNRF9QS1RfU1RB VFVTLAogCQkJCSB2YWwsIHZhbCAmIChHRU5fQ01EX0VNUFRZIHwgR0VOX1BMRF9XX0VNUFRZKSwK QEAgLTU4Nyw4ICs1ODgsOSBAQCBzdGF0aWMgaW50IGR3X21pcGlfZHNpX2Rjc19sb25nX3dyaXRl KHN0cnVjdCBkd19taXBpX2RzaSAqZHNpLAogewogCWNvbnN0IHUzMiAqdHhfYnVmID0gbXNnLT50 eF9idWY7CiAJaW50IGxlbiA9IG1zZy0+dHhfbGVuLCBwbGRfZGF0YV9ieXRlcyA9IHNpemVvZigq dHhfYnVmKSwgcmV0OwotCXUzMiB2YWwgPSBHRU5fSERBVEEobXNnLT50eF9sZW4pIHwgR0VOX0hU WVBFKG1zZy0+dHlwZSk7CisJdTMyIGhkcl92YWwgPSBHRU5fSERBVEEobXNnLT50eF9sZW4pIHwg R0VOX0hUWVBFKG1zZy0+dHlwZSk7CiAJdTMyIHJlbWFpbmRlciA9IDA7CisJdTMyIHZhbDsKIAog CWlmIChtc2ctPnR4X2xlbiA8IDMpIHsKIAkJZGV2X2Vycihkc2ktPmRldiwgIndyb25nIHR4IGJ1 ZiBsZW5ndGggJXp1IGZvciBsb25nIHdyaXRlXG4iLApAQCAtNjE3LDcgKzYxOSw3IEBAIHN0YXRp YyBpbnQgZHdfbWlwaV9kc2lfZGNzX2xvbmdfd3JpdGUoc3RydWN0IGR3X21pcGlfZHNpICpkc2ks CiAJCX0KIAl9CiAKLQlyZXR1cm4gZHdfbWlwaV9kc2lfZ2VuX3BrdF9oZHJfd3JpdGUoZHNpLCB2 YWwpOworCXJldHVybiBkd19taXBpX2RzaV9nZW5fcGt0X2hkcl93cml0ZShkc2ksIGhkcl92YWwp OwogfQogCiBzdGF0aWMgc3NpemVfdCBkd19taXBpX2RzaV9ob3N0X3RyYW5zZmVyKHN0cnVjdCBt aXBpX2RzaV9ob3N0ICpob3N0LAotLSAKMi4xMS4wLjE5Ny5nYjU1NmRlNS5kaXJ0eQoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxp bmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 From: john@metanate.com (John Keeping) Date: Sun, 29 Jan 2017 13:24:24 +0000 Subject: [PATCH v3 04/24] drm/rockchip: dw-mipi-dsi: fix command header writes In-Reply-To: <20170129132444.25251-1-john@metanate.com> References: <20170129132444.25251-1-john@metanate.com> Message-ID: <20170129132444.25251-5-john@metanate.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org In a couple of places here we use "val" for the value that is about to be written to a register but then reuse the same variable for the value of a status register before we get around to writing it. Rename the value to be written to so that we write the value we intend to and not what we have just read from the status register. Signed-off-by: John Keeping Tested-by: Chris Zhong Reviewed-by: Chris Zhong --- Unchanged in v3 Unchanged in v2 drivers/gpu/drm/rockchip/dw-mipi-dsi.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/rockchip/dw-mipi-dsi.c b/drivers/gpu/drm/rockchip/dw-mipi-dsi.c index bd92e58b64f3..4cbbbcb619b7 100644 --- a/drivers/gpu/drm/rockchip/dw-mipi-dsi.c +++ b/drivers/gpu/drm/rockchip/dw-mipi-dsi.c @@ -542,9 +542,10 @@ static int dw_mipi_dsi_host_detach(struct mipi_dsi_host *host, return 0; } -static int dw_mipi_dsi_gen_pkt_hdr_write(struct dw_mipi_dsi *dsi, u32 val) +static int dw_mipi_dsi_gen_pkt_hdr_write(struct dw_mipi_dsi *dsi, u32 hdr_val) { int ret; + u32 val; ret = readx_poll_timeout(readl, dsi->base + DSI_CMD_PKT_STATUS, val, !(val & GEN_CMD_FULL), 1000, @@ -554,7 +555,7 @@ static int dw_mipi_dsi_gen_pkt_hdr_write(struct dw_mipi_dsi *dsi, u32 val) return ret; } - dsi_write(dsi, DSI_GEN_HDR, val); + dsi_write(dsi, DSI_GEN_HDR, hdr_val); ret = readx_poll_timeout(readl, dsi->base + DSI_CMD_PKT_STATUS, val, val & (GEN_CMD_EMPTY | GEN_PLD_W_EMPTY), @@ -587,8 +588,9 @@ static int dw_mipi_dsi_dcs_long_write(struct dw_mipi_dsi *dsi, { const u32 *tx_buf = msg->tx_buf; int len = msg->tx_len, pld_data_bytes = sizeof(*tx_buf), ret; - u32 val = GEN_HDATA(msg->tx_len) | GEN_HTYPE(msg->type); + u32 hdr_val = GEN_HDATA(msg->tx_len) | GEN_HTYPE(msg->type); u32 remainder = 0; + u32 val; if (msg->tx_len < 3) { dev_err(dsi->dev, "wrong tx buf length %zu for long write\n", @@ -617,7 +619,7 @@ static int dw_mipi_dsi_dcs_long_write(struct dw_mipi_dsi *dsi, } } - return dw_mipi_dsi_gen_pkt_hdr_write(dsi, val); + return dw_mipi_dsi_gen_pkt_hdr_write(dsi, hdr_val); } static ssize_t dw_mipi_dsi_host_transfer(struct mipi_dsi_host *host, -- 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 S1751495AbdA2Ory (ORCPT ); Sun, 29 Jan 2017 09:47:54 -0500 Received: from dougal.metanate.com ([90.155.101.14]:53391 "EHLO metanate.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751367AbdA2Orv (ORCPT ); Sun, 29 Jan 2017 09:47:51 -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 04/24] drm/rockchip: dw-mipi-dsi: fix command header writes Date: Sun, 29 Jan 2017 13:24:24 +0000 Message-Id: <20170129132444.25251-5-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 In a couple of places here we use "val" for the value that is about to be written to a register but then reuse the same variable for the value of a status register before we get around to writing it. Rename the value to be written to so that we write the value we intend to and not what we have just read from the status register. Signed-off-by: John Keeping Tested-by: Chris Zhong Reviewed-by: Chris Zhong --- Unchanged in v3 Unchanged in v2 drivers/gpu/drm/rockchip/dw-mipi-dsi.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/rockchip/dw-mipi-dsi.c b/drivers/gpu/drm/rockchip/dw-mipi-dsi.c index bd92e58b64f3..4cbbbcb619b7 100644 --- a/drivers/gpu/drm/rockchip/dw-mipi-dsi.c +++ b/drivers/gpu/drm/rockchip/dw-mipi-dsi.c @@ -542,9 +542,10 @@ static int dw_mipi_dsi_host_detach(struct mipi_dsi_host *host, return 0; } -static int dw_mipi_dsi_gen_pkt_hdr_write(struct dw_mipi_dsi *dsi, u32 val) +static int dw_mipi_dsi_gen_pkt_hdr_write(struct dw_mipi_dsi *dsi, u32 hdr_val) { int ret; + u32 val; ret = readx_poll_timeout(readl, dsi->base + DSI_CMD_PKT_STATUS, val, !(val & GEN_CMD_FULL), 1000, @@ -554,7 +555,7 @@ static int dw_mipi_dsi_gen_pkt_hdr_write(struct dw_mipi_dsi *dsi, u32 val) return ret; } - dsi_write(dsi, DSI_GEN_HDR, val); + dsi_write(dsi, DSI_GEN_HDR, hdr_val); ret = readx_poll_timeout(readl, dsi->base + DSI_CMD_PKT_STATUS, val, val & (GEN_CMD_EMPTY | GEN_PLD_W_EMPTY), @@ -587,8 +588,9 @@ static int dw_mipi_dsi_dcs_long_write(struct dw_mipi_dsi *dsi, { const u32 *tx_buf = msg->tx_buf; int len = msg->tx_len, pld_data_bytes = sizeof(*tx_buf), ret; - u32 val = GEN_HDATA(msg->tx_len) | GEN_HTYPE(msg->type); + u32 hdr_val = GEN_HDATA(msg->tx_len) | GEN_HTYPE(msg->type); u32 remainder = 0; + u32 val; if (msg->tx_len < 3) { dev_err(dsi->dev, "wrong tx buf length %zu for long write\n", @@ -617,7 +619,7 @@ static int dw_mipi_dsi_dcs_long_write(struct dw_mipi_dsi *dsi, } } - return dw_mipi_dsi_gen_pkt_hdr_write(dsi, val); + return dw_mipi_dsi_gen_pkt_hdr_write(dsi, hdr_val); } static ssize_t dw_mipi_dsi_host_transfer(struct mipi_dsi_host *host, -- 2.11.0.197.gb556de5.dirty