From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Zhong Subject: Re: [PATCH v2 24/26] drm/rockchip: dw-mipi-dsi: support non-burst modes Date: Mon, 23 Jan 2017 14:11:13 +0800 Message-ID: <58859E81.3060606@rock-chips.com> References: <20170121163128.22240-1-john@metanate.com> <20170121163128.22240-25-john@metanate.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170121163128.22240-25-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 , Mark Yao Cc: linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org List-Id: linux-rockchip.vger.kernel.org UmV2aWV3ZWQtYnk6IENocmlzIFpob25nIDx6eXdAcm9jay1jaGlwcy5jb20+CgpPbiAwMS8yMi8y MDE3IDEyOjMxIEFNLCBKb2huIEtlZXBpbmcgd3JvdGU6Cj4gU2lnbmVkLW9mZi1ieTogSm9obiBL ZWVwaW5nIDxqb2huQG1ldGFuYXRlLmNvbT4KPiAtLS0KPiBVbmNoYW5nZWQgaW4gdjIKPiAtLS0K PiAgIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9kdy1taXBpLWRzaS5jIHwgMTYgKysrKysrKysr LS0tLS0tLQo+ICAgMSBmaWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMo LSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvZHctbWlwaS1kc2ku YyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9kdy1taXBpLWRzaS5jCj4gaW5kZXggMmRhZmIx N2UzMWQyLi44ODFiYjBjNjJjYTUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tj aGlwL2R3LW1pcGktZHNpLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvZHctbWlw aS1kc2kuYwo+IEBAIC04Miw2ICs4Miw3IEBACj4gICAjZGVmaW5lIEZSQU1FX0JUQV9BQ0sJCQlC SVQoMTQpCj4gICAjZGVmaW5lIEVOQUJMRV9MT1dfUE9XRVIJCSgweDNmIDw8IDgpCj4gICAjZGVm aW5lIEVOQUJMRV9MT1dfUE9XRVJfTUFTSwkJKDB4M2YgPDwgOCkKPiArI2RlZmluZSBWSURfTU9E RV9UWVBFX05PTl9CVVJTVF9TWU5DX0VWRU5UUwkweDEKPiAgICNkZWZpbmUgVklEX01PREVfVFlQ RV9CVVJTVF9TWU5DX1BVTFNFUwkJMHgyCj4gICAjZGVmaW5lIFZJRF9NT0RFX1RZUEVfTUFTSwkJ CTB4Mwo+ICAgCj4gQEAgLTI4Niw2ICsyODcsNyBAQCBzdHJ1Y3QgZHdfbWlwaV9kc2kgewo+ICAg CXUzMiBmb3JtYXQ7Cj4gICAJdTE2IGlucHV0X2RpdjsKPiAgIAl1MTYgZmVlZGJhY2tfZGl2Owo+ ICsJdW5zaWduZWQgbG9uZyBtb2RlX2ZsYWdzOwo+ICAgCj4gICAJY29uc3Qgc3RydWN0IGR3X21p cGlfZHNpX3BsYXRfZGF0YSAqcGRhdGE7Cj4gICB9Owo+IEBAIC01NDgsMTUgKzU1MCwxMCBAQCBz dGF0aWMgaW50IGR3X21pcGlfZHNpX2hvc3RfYXR0YWNoKHN0cnVjdCBtaXBpX2RzaV9ob3N0ICpo b3N0LAo+ICAgCQlyZXR1cm4gLUVJTlZBTDsKPiAgIAl9Cj4gICAKPiAtCWlmICghKGRldmljZS0+ bW9kZV9mbGFncyAmIE1JUElfRFNJX01PREVfVklERU9fQlVSU1QpIHx8Cj4gLQkgICAgIShkZXZp Y2UtPm1vZGVfZmxhZ3MgJiBNSVBJX0RTSV9NT0RFX1ZJREVPX1NZTkNfUFVMU0UpKSB7Cj4gLQkJ ZGV2X2Vycihkc2ktPmRldiwgImRldmljZSBtb2RlIGlzIHVuc3VwcG9ydGVkXG4iKTsKPiAtCQly ZXR1cm4gLUVJTlZBTDsKPiAtCX0KPiAtCj4gICAJZHNpLT5sYW5lcyA9IGRldmljZS0+bGFuZXM7 Cj4gICAJZHNpLT5jaGFubmVsID0gZGV2aWNlLT5jaGFubmVsOwo+ICAgCWRzaS0+Zm9ybWF0ID0g ZGV2aWNlLT5mb3JtYXQ7Cj4gKwlkc2ktPm1vZGVfZmxhZ3MgPSBkZXZpY2UtPm1vZGVfZmxhZ3M7 Cj4gICAJZHNpLT5wYW5lbCA9IG9mX2RybV9maW5kX3BhbmVsKGRldmljZS0+ZGV2Lm9mX25vZGUp Owo+ICAgCWlmIChkc2ktPnBhbmVsKQo+ICAgCQlyZXR1cm4gZHJtX3BhbmVsX2F0dGFjaChkc2kt PnBhbmVsLCAmZHNpLT5jb25uZWN0b3IpOwo+IEBAIC03MTMsNyArNzEwLDEyIEBAIHN0YXRpYyB2 b2lkIGR3X21pcGlfZHNpX3ZpZGVvX21vZGVfY29uZmlnKHN0cnVjdCBkd19taXBpX2RzaSAqZHNp KQo+ICAgewo+ICAgCXUzMiB2YWw7Cj4gICAKPiAtCXZhbCA9IFZJRF9NT0RFX1RZUEVfQlVSU1Rf U1lOQ19QVUxTRVMgfCBFTkFCTEVfTE9XX1BPV0VSOwo+ICsJdmFsID0gRU5BQkxFX0xPV19QT1dF UjsKPiArCj4gKwlpZiAoZHNpLT5tb2RlX2ZsYWdzICYgTUlQSV9EU0lfTU9ERV9WSURFT19CVVJT VCkKPiArCQl2YWwgfD0gVklEX01PREVfVFlQRV9CVVJTVF9TWU5DX1BVTFNFUzsKPiArCWVsc2Ug aWYgKCEoZHNpLT5tb2RlX2ZsYWdzICYgTUlQSV9EU0lfTU9ERV9WSURFT19TWU5DX1BVTFNFKSkK PiArCQl2YWwgfD0gVklEX01PREVfVFlQRV9OT05fQlVSU1RfU1lOQ19FVkVOVFM7Cj4gICAKPiAg IAlkc2lfd3JpdGUoZHNpLCBEU0lfVklEX01PREVfQ0ZHLCB2YWwpOwo+ICAgfQoKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5n IGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 From: zyw@rock-chips.com (Chris Zhong) Date: Mon, 23 Jan 2017 14:11:13 +0800 Subject: [PATCH v2 24/26] drm/rockchip: dw-mipi-dsi: support non-burst modes In-Reply-To: <20170121163128.22240-25-john@metanate.com> References: <20170121163128.22240-1-john@metanate.com> <20170121163128.22240-25-john@metanate.com> Message-ID: <58859E81.3060606@rock-chips.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Reviewed-by: Chris Zhong On 01/22/2017 12:31 AM, John Keeping wrote: > Signed-off-by: John Keeping > --- > Unchanged in v2 > --- > drivers/gpu/drm/rockchip/dw-mipi-dsi.c | 16 +++++++++------- > 1 file changed, 9 insertions(+), 7 deletions(-) > > diff --git a/drivers/gpu/drm/rockchip/dw-mipi-dsi.c b/drivers/gpu/drm/rockchip/dw-mipi-dsi.c > index 2dafb17e31d2..881bb0c62ca5 100644 > --- a/drivers/gpu/drm/rockchip/dw-mipi-dsi.c > +++ b/drivers/gpu/drm/rockchip/dw-mipi-dsi.c > @@ -82,6 +82,7 @@ > #define FRAME_BTA_ACK BIT(14) > #define ENABLE_LOW_POWER (0x3f << 8) > #define ENABLE_LOW_POWER_MASK (0x3f << 8) > +#define VID_MODE_TYPE_NON_BURST_SYNC_EVENTS 0x1 > #define VID_MODE_TYPE_BURST_SYNC_PULSES 0x2 > #define VID_MODE_TYPE_MASK 0x3 > > @@ -286,6 +287,7 @@ struct dw_mipi_dsi { > u32 format; > u16 input_div; > u16 feedback_div; > + unsigned long mode_flags; > > const struct dw_mipi_dsi_plat_data *pdata; > }; > @@ -548,15 +550,10 @@ static int dw_mipi_dsi_host_attach(struct mipi_dsi_host *host, > return -EINVAL; > } > > - if (!(device->mode_flags & MIPI_DSI_MODE_VIDEO_BURST) || > - !(device->mode_flags & MIPI_DSI_MODE_VIDEO_SYNC_PULSE)) { > - dev_err(dsi->dev, "device mode is unsupported\n"); > - return -EINVAL; > - } > - > dsi->lanes = device->lanes; > dsi->channel = device->channel; > dsi->format = device->format; > + dsi->mode_flags = device->mode_flags; > dsi->panel = of_drm_find_panel(device->dev.of_node); > if (dsi->panel) > return drm_panel_attach(dsi->panel, &dsi->connector); > @@ -713,7 +710,12 @@ static void dw_mipi_dsi_video_mode_config(struct dw_mipi_dsi *dsi) > { > u32 val; > > - val = VID_MODE_TYPE_BURST_SYNC_PULSES | ENABLE_LOW_POWER; > + val = ENABLE_LOW_POWER; > + > + if (dsi->mode_flags & MIPI_DSI_MODE_VIDEO_BURST) > + val |= VID_MODE_TYPE_BURST_SYNC_PULSES; > + else if (!(dsi->mode_flags & MIPI_DSI_MODE_VIDEO_SYNC_PULSE)) > + val |= VID_MODE_TYPE_NON_BURST_SYNC_EVENTS; > > dsi_write(dsi, DSI_VID_MODE_CFG, val); > } From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750732AbdAWGLZ (ORCPT ); Mon, 23 Jan 2017 01:11:25 -0500 Received: from regular1.263xmail.com ([211.150.99.134]:44900 "EHLO regular1.263xmail.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750703AbdAWGLY (ORCPT ); Mon, 23 Jan 2017 01:11:24 -0500 X-263anti-spam: KSV:0; X-MAIL-GRAY: 0 X-MAIL-DELIVERY: 1 X-KSVirus-check: 0 X-ABS-CHECKED: 4 X-RL-SENDER: zyw@rock-chips.com X-FST-TO: linux-kernel@vger.kernel.org X-SENDER-IP: 58.22.7.114 X-LOGIN-NAME: zyw@rock-chips.com X-UNIQUE-TAG: <1e13c1d31acc9198274a5791301c3ecc> X-ATTACHMENT-NUM: 0 X-DNS-TYPE: 0 Subject: Re: [PATCH v2 24/26] drm/rockchip: dw-mipi-dsi: support non-burst modes To: John Keeping , Mark Yao References: <20170121163128.22240-1-john@metanate.com> <20170121163128.22240-25-john@metanate.com> Cc: dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org From: Chris Zhong Message-ID: <58859E81.3060606@rock-chips.com> Date: Mon, 23 Jan 2017 14:11:13 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0 MIME-Version: 1.0 In-Reply-To: <20170121163128.22240-25-john@metanate.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Reviewed-by: Chris Zhong On 01/22/2017 12:31 AM, John Keeping wrote: > Signed-off-by: John Keeping > --- > Unchanged in v2 > --- > drivers/gpu/drm/rockchip/dw-mipi-dsi.c | 16 +++++++++------- > 1 file changed, 9 insertions(+), 7 deletions(-) > > diff --git a/drivers/gpu/drm/rockchip/dw-mipi-dsi.c b/drivers/gpu/drm/rockchip/dw-mipi-dsi.c > index 2dafb17e31d2..881bb0c62ca5 100644 > --- a/drivers/gpu/drm/rockchip/dw-mipi-dsi.c > +++ b/drivers/gpu/drm/rockchip/dw-mipi-dsi.c > @@ -82,6 +82,7 @@ > #define FRAME_BTA_ACK BIT(14) > #define ENABLE_LOW_POWER (0x3f << 8) > #define ENABLE_LOW_POWER_MASK (0x3f << 8) > +#define VID_MODE_TYPE_NON_BURST_SYNC_EVENTS 0x1 > #define VID_MODE_TYPE_BURST_SYNC_PULSES 0x2 > #define VID_MODE_TYPE_MASK 0x3 > > @@ -286,6 +287,7 @@ struct dw_mipi_dsi { > u32 format; > u16 input_div; > u16 feedback_div; > + unsigned long mode_flags; > > const struct dw_mipi_dsi_plat_data *pdata; > }; > @@ -548,15 +550,10 @@ static int dw_mipi_dsi_host_attach(struct mipi_dsi_host *host, > return -EINVAL; > } > > - if (!(device->mode_flags & MIPI_DSI_MODE_VIDEO_BURST) || > - !(device->mode_flags & MIPI_DSI_MODE_VIDEO_SYNC_PULSE)) { > - dev_err(dsi->dev, "device mode is unsupported\n"); > - return -EINVAL; > - } > - > dsi->lanes = device->lanes; > dsi->channel = device->channel; > dsi->format = device->format; > + dsi->mode_flags = device->mode_flags; > dsi->panel = of_drm_find_panel(device->dev.of_node); > if (dsi->panel) > return drm_panel_attach(dsi->panel, &dsi->connector); > @@ -713,7 +710,12 @@ static void dw_mipi_dsi_video_mode_config(struct dw_mipi_dsi *dsi) > { > u32 val; > > - val = VID_MODE_TYPE_BURST_SYNC_PULSES | ENABLE_LOW_POWER; > + val = ENABLE_LOW_POWER; > + > + if (dsi->mode_flags & MIPI_DSI_MODE_VIDEO_BURST) > + val |= VID_MODE_TYPE_BURST_SYNC_PULSES; > + else if (!(dsi->mode_flags & MIPI_DSI_MODE_VIDEO_SYNC_PULSE)) > + val |= VID_MODE_TYPE_NON_BURST_SYNC_EVENTS; > > dsi_write(dsi, DSI_VID_MODE_CFG, val); > }