From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751501AbdBXM70 (ORCPT ); Fri, 24 Feb 2017 07:59:26 -0500 Received: from dougal.metanate.com ([90.155.101.14]:29921 "EHLO metanate.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751249AbdBXMz1 (ORCPT ); Fri, 24 Feb 2017 07:55:27 -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, Sean Paul , John Keeping Subject: [PATCH v4 04/23] drm/rockchip: dw-mipi-dsi: fix command header writes Date: Fri, 24 Feb 2017 12:54:47 +0000 Message-Id: <20170224125506.21533-5-john@metanate.com> X-Mailer: git-send-email 2.12.0.rc0.230.gf625d4cdb9.dirty In-Reply-To: <20170224125506.21533-1-john@metanate.com> References: <20170224125506.21533-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 Reviewed-by: Sean Paul --- v4: - Add Sean's Reviewed-by 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.12.0.rc0.230.gf625d4cdb9.dirty From mboxrd@z Thu Jan 1 00:00:00 1970 From: John Keeping Subject: [PATCH v4 04/23] drm/rockchip: dw-mipi-dsi: fix command header writes Date: Fri, 24 Feb 2017 12:54:47 +0000 Message-ID: <20170224125506.21533-5-john@metanate.com> References: <20170224125506.21533-1-john@metanate.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170224125506.21533-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 b2NrLWNoaXBzLmNvbT4KUmV2aWV3ZWQtYnk6IFNlYW4gUGF1bCA8c2VhbnBhdWxAY2hyb21pdW0u b3JnPgotLS0KdjQ6Ci0gQWRkIFNlYW4ncyBSZXZpZXdlZC1ieQpVbmNoYW5nZWQgaW4gdjMKVW5j aGFuZ2VkIGluIHYyCi0tLQogZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2R3LW1pcGktZHNpLmMg fCAxMCArKysrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA0IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9kdy1taXBpLWRz aS5jIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2R3LW1pcGktZHNpLmMKaW5kZXggYmQ5MmU1 OGI2NGYzLi40Y2JiYmNiNjE5YjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hp cC9kdy1taXBpLWRzaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9kdy1taXBpLWRz aS5jCkBAIC01NDIsOSArNTQyLDEwIEBAIHN0YXRpYyBpbnQgZHdfbWlwaV9kc2lfaG9zdF9kZXRh Y2goc3RydWN0IG1pcGlfZHNpX2hvc3QgKmhvc3QsCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBp bnQgZHdfbWlwaV9kc2lfZ2VuX3BrdF9oZHJfd3JpdGUoc3RydWN0IGR3X21pcGlfZHNpICpkc2ks IHUzMiB2YWwpCitzdGF0aWMgaW50IGR3X21pcGlfZHNpX2dlbl9wa3RfaGRyX3dyaXRlKHN0cnVj dCBkd19taXBpX2RzaSAqZHNpLCB1MzIgaGRyX3ZhbCkKIHsKIAlpbnQgcmV0OworCXUzMiB2YWw7 CiAKIAlyZXQgPSByZWFkeF9wb2xsX3RpbWVvdXQocmVhZGwsIGRzaS0+YmFzZSArIERTSV9DTURf UEtUX1NUQVRVUywKIAkJCQkgdmFsLCAhKHZhbCAmIEdFTl9DTURfRlVMTCksIDEwMDAsCkBAIC01 NTQsNyArNTU1LDcgQEAgc3RhdGljIGludCBkd19taXBpX2RzaV9nZW5fcGt0X2hkcl93cml0ZShz dHJ1Y3QgZHdfbWlwaV9kc2kgKmRzaSwgdTMyIHZhbCkKIAkJcmV0dXJuIHJldDsKIAl9CiAKLQlk c2lfd3JpdGUoZHNpLCBEU0lfR0VOX0hEUiwgdmFsKTsKKwlkc2lfd3JpdGUoZHNpLCBEU0lfR0VO X0hEUiwgaGRyX3ZhbCk7CiAKIAlyZXQgPSByZWFkeF9wb2xsX3RpbWVvdXQocmVhZGwsIGRzaS0+ YmFzZSArIERTSV9DTURfUEtUX1NUQVRVUywKIAkJCQkgdmFsLCB2YWwgJiAoR0VOX0NNRF9FTVBU WSB8IEdFTl9QTERfV19FTVBUWSksCkBAIC01ODcsOCArNTg4LDkgQEAgc3RhdGljIGludCBkd19t aXBpX2RzaV9kY3NfbG9uZ193cml0ZShzdHJ1Y3QgZHdfbWlwaV9kc2kgKmRzaSwKIHsKIAljb25z dCB1MzIgKnR4X2J1ZiA9IG1zZy0+dHhfYnVmOwogCWludCBsZW4gPSBtc2ctPnR4X2xlbiwgcGxk X2RhdGFfYnl0ZXMgPSBzaXplb2YoKnR4X2J1ZiksIHJldDsKLQl1MzIgdmFsID0gR0VOX0hEQVRB KG1zZy0+dHhfbGVuKSB8IEdFTl9IVFlQRShtc2ctPnR5cGUpOworCXUzMiBoZHJfdmFsID0gR0VO X0hEQVRBKG1zZy0+dHhfbGVuKSB8IEdFTl9IVFlQRShtc2ctPnR5cGUpOwogCXUzMiByZW1haW5k ZXIgPSAwOworCXUzMiB2YWw7CiAKIAlpZiAobXNnLT50eF9sZW4gPCAzKSB7CiAJCWRldl9lcnIo ZHNpLT5kZXYsICJ3cm9uZyB0eCBidWYgbGVuZ3RoICV6dSBmb3IgbG9uZyB3cml0ZVxuIiwKQEAg LTYxNyw3ICs2MTksNyBAQCBzdGF0aWMgaW50IGR3X21pcGlfZHNpX2Rjc19sb25nX3dyaXRlKHN0 cnVjdCBkd19taXBpX2RzaSAqZHNpLAogCQl9CiAJfQogCi0JcmV0dXJuIGR3X21pcGlfZHNpX2dl bl9wa3RfaGRyX3dyaXRlKGRzaSwgdmFsKTsKKwlyZXR1cm4gZHdfbWlwaV9kc2lfZ2VuX3BrdF9o ZHJfd3JpdGUoZHNpLCBoZHJfdmFsKTsKIH0KIAogc3RhdGljIHNzaXplX3QgZHdfbWlwaV9kc2lf aG9zdF90cmFuc2ZlcihzdHJ1Y3QgbWlwaV9kc2lfaG9zdCAqaG9zdCwKLS0gCjIuMTIuMC5yYzAu MjMwLmdmNjI1ZDRjZGI5LmRpcnR5CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9kcmktZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 From: john@metanate.com (John Keeping) Date: Fri, 24 Feb 2017 12:54:47 +0000 Subject: [PATCH v4 04/23] drm/rockchip: dw-mipi-dsi: fix command header writes In-Reply-To: <20170224125506.21533-1-john@metanate.com> References: <20170224125506.21533-1-john@metanate.com> Message-ID: <20170224125506.21533-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 Reviewed-by: Sean Paul --- v4: - Add Sean's Reviewed-by 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.12.0.rc0.230.gf625d4cdb9.dirty