From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Zhong Subject: Re: [PATCH v3 22/24] drm/rockchip: dw-mipi-dsi: support non-burst modes Date: Thu, 16 Feb 2017 11:01:46 +0800 Message-ID: <58A5161A.3070205@rock-chips.com> References: <20170129132444.25251-1-john@metanate.com> <20170129132444.25251-23-john@metanate.com> <20170131192255.GF20076@art_vandelay> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170131192255.GF20076@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 , John Keeping Cc: linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org List-Id: linux-rockchip.vger.kernel.org SGkgSm9obgoKT24gMDIvMDEvMjAxNyAwMzoyMiBBTSwgU2VhbiBQYXVsIHdyb3RlOgo+IE9uIFN1 biwgSmFuIDI5LCAyMDE3IGF0IDAxOjI0OjQyUE0gKzAwMDAsIEpvaG4gS2VlcGluZyB3cm90ZToK Pgo+IFJldmlld2VkLWJ5OiBTZWFuIFBhdWwgPHNlYW5wYXVsQGNocm9taXVtLm9yZz4KPgo+PiBT aWduZWQtb2ZmLWJ5OiBKb2huIEtlZXBpbmcgPGpvaG5AbWV0YW5hdGUuY29tPgo+PiBSZXZpZXdl ZC1ieTogQ2hyaXMgWmhvbmcgPHp5d0Byb2NrLWNoaXBzLmNvbT4KPj4gLS0tCj4+IHYzOgo+PiAt IEFkZCBDaHJpcycgUmV2aWV3ZWQtYnkKPj4gVW5jaGFuZ2VkIGluIHYyCj4+Cj4+ICAgZHJpdmVy cy9ncHUvZHJtL3JvY2tjaGlwL2R3LW1pcGktZHNpLmMgfCAxNiArKysrKysrKystLS0tLS0tCj4+ ICAgMSBmaWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKPj4KPj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9kdy1taXBpLWRzaS5jIGIvZHJp dmVycy9ncHUvZHJtL3JvY2tjaGlwL2R3LW1pcGktZHNpLmMKPj4gaW5kZXggNWJhZDkyZTIzNzBl Li41OGNiOGFjZTJmZTggMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9k dy1taXBpLWRzaS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9kdy1taXBpLWRz aS5jCj4+IEBAIC04Miw2ICs4Miw3IEBACj4+ICAgI2RlZmluZSBGUkFNRV9CVEFfQUNLCQkJQklU KDE0KQo+PiAgICNkZWZpbmUgRU5BQkxFX0xPV19QT1dFUgkJKDB4M2YgPDwgOCkKPj4gICAjZGVm aW5lIEVOQUJMRV9MT1dfUE9XRVJfTUFTSwkJKDB4M2YgPDwgOCkKPj4gKyNkZWZpbmUgVklEX01P REVfVFlQRV9OT05fQlVSU1RfU1lOQ19FVkVOVFMJMHgxCj4+ICAgI2RlZmluZSBWSURfTU9ERV9U WVBFX0JVUlNUX1NZTkNfUFVMU0VTCQkweDIKVGhpcyBmaWVsZCBpbmRpY2F0ZXMgdGhlIHZpZGVv IG1vZGUgdHJhbnNtaXNzaW9uIHR5cGUgYXMgZm9sbG93czoKMDA6IE5vbi1idXJzdCB3aXRoIHN5 bmMgcHVsc2VzCjAxOiBOb24tYnVyc3Qgd2l0aCBzeW5jIGV2ZW50cwoxMCBhbmQgMTE6IEJ1cnN0 IG1vZGUKClNvLCBJIHRoaW5rIGRlZmluZSB0aGUgbWFjcm8gbGlrZSB0aGlzIGlzIGJldHRlcjoK CiNkZWZpbmUgVklEX01PREVfVFlQRV9OT05fQlVSU1RfU1lOQ19QVUxTRVMgICAgMHgwCiNkZWZp bmUgVklEX01PREVfVFlQRV9OT05fQlVSU1RfU1lOQ19FVkVOVFMgICAgMHgxCiNkZWZpbmUgVklE X01PREVfVFlQRV9CVVJTVCAgICAgICAgICAgIDB4MgoKCj4+ICAgI2RlZmluZSBWSURfTU9ERV9U WVBFX01BU0sJCQkweDMKPj4gICAKPj4gQEAgLTI4Niw2ICsyODcsNyBAQCBzdHJ1Y3QgZHdfbWlw aV9kc2kgewo+PiAgIAl1MzIgZm9ybWF0Owo+PiAgIAl1MTYgaW5wdXRfZGl2Owo+PiAgIAl1MTYg ZmVlZGJhY2tfZGl2Owo+PiArCXVuc2lnbmVkIGxvbmcgbW9kZV9mbGFnczsKPj4gICAKPj4gICAJ Y29uc3Qgc3RydWN0IGR3X21pcGlfZHNpX3BsYXRfZGF0YSAqcGRhdGE7Cj4+ICAgfTsKPj4gQEAg LTU1MSwxNSArNTUzLDEwIEBAIHN0YXRpYyBpbnQgZHdfbWlwaV9kc2lfaG9zdF9hdHRhY2goc3Ry dWN0IG1pcGlfZHNpX2hvc3QgKmhvc3QsCj4+ICAgCQlyZXR1cm4gLUVJTlZBTDsKPj4gICAJfQo+ PiAgIAo+PiAtCWlmICghKGRldmljZS0+bW9kZV9mbGFncyAmIE1JUElfRFNJX01PREVfVklERU9f QlVSU1QpIHx8Cj4+IC0JICAgICEoZGV2aWNlLT5tb2RlX2ZsYWdzICYgTUlQSV9EU0lfTU9ERV9W SURFT19TWU5DX1BVTFNFKSkgewo+PiAtCQlkZXZfZXJyKGRzaS0+ZGV2LCAiZGV2aWNlIG1vZGUg aXMgdW5zdXBwb3J0ZWRcbiIpOwo+PiAtCQlyZXR1cm4gLUVJTlZBTDsKPj4gLQl9Cj4+IC0KPj4g ICAJZHNpLT5sYW5lcyA9IGRldmljZS0+bGFuZXM7Cj4+ICAgCWRzaS0+Y2hhbm5lbCA9IGRldmlj ZS0+Y2hhbm5lbDsKPj4gICAJZHNpLT5mb3JtYXQgPSBkZXZpY2UtPmZvcm1hdDsKPj4gKwlkc2kt Pm1vZGVfZmxhZ3MgPSBkZXZpY2UtPm1vZGVfZmxhZ3M7Cj4+ICAgCWRzaS0+cGFuZWwgPSBvZl9k cm1fZmluZF9wYW5lbChkZXZpY2UtPmRldi5vZl9ub2RlKTsKPj4gICAJaWYgKGRzaS0+cGFuZWwp Cj4+ICAgCQlyZXR1cm4gZHJtX3BhbmVsX2F0dGFjaChkc2ktPnBhbmVsLCAmZHNpLT5jb25uZWN0 b3IpOwo+PiBAQCAtNzE2LDcgKzcxMywxMiBAQCBzdGF0aWMgdm9pZCBkd19taXBpX2RzaV92aWRl b19tb2RlX2NvbmZpZyhzdHJ1Y3QgZHdfbWlwaV9kc2kgKmRzaSkKPj4gICB7Cj4+ICAgCXUzMiB2 YWw7Cj4+ICAgCj4+IC0JdmFsID0gVklEX01PREVfVFlQRV9CVVJTVF9TWU5DX1BVTFNFUyB8IEVO QUJMRV9MT1dfUE9XRVI7Cj4+ICsJdmFsID0gRU5BQkxFX0xPV19QT1dFUjsKPj4gKwo+PiArCWlm IChkc2ktPm1vZGVfZmxhZ3MgJiBNSVBJX0RTSV9NT0RFX1ZJREVPX0JVUlNUKQo+PiArCQl2YWwg fD0gVklEX01PREVfVFlQRV9CVVJTVF9TWU5DX1BVTFNFUzsKPj4gKwllbHNlIGlmICghKGRzaS0+ bW9kZV9mbGFncyAmIE1JUElfRFNJX01PREVfVklERU9fU1lOQ19QVUxTRSkpCj4+ICsJCXZhbCB8 PSBWSURfTU9ERV9UWVBFX05PTl9CVVJTVF9TWU5DX0VWRU5UUzsKCmlmIChkc2ktPm1vZGVfZmxh Z3MgJiBNSVBJX0RTSV9NT0RFX1ZJREVPX0JVUlNUKQoJdmFsIHw9IFZJRF9NT0RFX1RZUEVfQlVS U1Q7CmVsc2UgaWYgKGRzaS0+bW9kZV9mbGFncyAmIE1JUElfRFNJX01PREVfVklERU9fU1lOQ19Q VUxTRSkKCXZhbCB8PSBWSURfTU9ERV9UWVBFX05PTl9CVVJTVF9TWU5DX1BVTFNFUzsKZWxzZQoJ dmFsIHw9IFZJRF9NT0RFX1RZUEVfTk9OX0JVUlNUX1NZTkNfRVZFTlRTOwoKCgo+PiAgIAo+PiAg IAlkc2lfd3JpdGUoZHNpLCBEU0lfVklEX01PREVfQ0ZHLCB2YWwpOwo+PiAgIH0KPj4gLS0gCj4+ IDIuMTEuMC4xOTcuZ2I1NTZkZTUuZGlydHkKPj4KPj4gX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KPj4gZHJpLWRldmVsIG1haWxpbmcgbGlzdAo+PiBkcmkt ZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCgoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vZHJpLWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 From: zyw@rock-chips.com (Chris Zhong) Date: Thu, 16 Feb 2017 11:01:46 +0800 Subject: [PATCH v3 22/24] drm/rockchip: dw-mipi-dsi: support non-burst modes In-Reply-To: <20170131192255.GF20076@art_vandelay> References: <20170129132444.25251-1-john@metanate.com> <20170129132444.25251-23-john@metanate.com> <20170131192255.GF20076@art_vandelay> Message-ID: <58A5161A.3070205@rock-chips.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Hi John On 02/01/2017 03:22 AM, Sean Paul wrote: > On Sun, Jan 29, 2017 at 01:24:42PM +0000, John Keeping wrote: > > 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 | 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 5bad92e2370e..58cb8ace2fe8 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 This field indicates the video mode transmission type as follows: 00: Non-burst with sync pulses 01: Non-burst with sync events 10 and 11: Burst mode So, I think define the macro like this is better: #define VID_MODE_TYPE_NON_BURST_SYNC_PULSES 0x0 #define VID_MODE_TYPE_NON_BURST_SYNC_EVENTS 0x1 #define VID_MODE_TYPE_BURST 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; >> }; >> @@ -551,15 +553,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); >> @@ -716,7 +713,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; if (dsi->mode_flags & MIPI_DSI_MODE_VIDEO_BURST) val |= VID_MODE_TYPE_BURST; else if (dsi->mode_flags & MIPI_DSI_MODE_VIDEO_SYNC_PULSE) val |= VID_MODE_TYPE_NON_BURST_SYNC_PULSES; else val |= VID_MODE_TYPE_NON_BURST_SYNC_EVENTS; >> >> dsi_write(dsi, DSI_VID_MODE_CFG, val); >> } >> -- >> 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 S1753052AbdBPDCD (ORCPT ); Wed, 15 Feb 2017 22:02:03 -0500 Received: from regular1.263xmail.com ([211.150.99.132]:43337 "EHLO regular1.263xmail.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751371AbdBPDCC (ORCPT ); Wed, 15 Feb 2017 22:02:02 -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-arm-kernel@lists.infradead.org X-SENDER-IP: 220.128.92.125 X-LOGIN-NAME: zyw@rock-chips.com X-UNIQUE-TAG: <84388dc95d650c5f80a08275bce9046c> X-ATTACHMENT-NUM: 0 X-DNS-TYPE: 0 Subject: Re: [PATCH v3 22/24] drm/rockchip: dw-mipi-dsi: support non-burst modes To: Sean Paul , John Keeping References: <20170129132444.25251-1-john@metanate.com> <20170129132444.25251-23-john@metanate.com> <20170131192255.GF20076@art_vandelay> Cc: Mark Yao , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org From: Chris Zhong Message-ID: <58A5161A.3070205@rock-chips.com> Date: Thu, 16 Feb 2017 11:01:46 +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: <20170131192255.GF20076@art_vandelay> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi John On 02/01/2017 03:22 AM, Sean Paul wrote: > On Sun, Jan 29, 2017 at 01:24:42PM +0000, John Keeping wrote: > > 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 | 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 5bad92e2370e..58cb8ace2fe8 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 This field indicates the video mode transmission type as follows: 00: Non-burst with sync pulses 01: Non-burst with sync events 10 and 11: Burst mode So, I think define the macro like this is better: #define VID_MODE_TYPE_NON_BURST_SYNC_PULSES 0x0 #define VID_MODE_TYPE_NON_BURST_SYNC_EVENTS 0x1 #define VID_MODE_TYPE_BURST 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; >> }; >> @@ -551,15 +553,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); >> @@ -716,7 +713,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; if (dsi->mode_flags & MIPI_DSI_MODE_VIDEO_BURST) val |= VID_MODE_TYPE_BURST; else if (dsi->mode_flags & MIPI_DSI_MODE_VIDEO_SYNC_PULSE) val |= VID_MODE_TYPE_NON_BURST_SYNC_PULSES; else val |= VID_MODE_TYPE_NON_BURST_SYNC_EVENTS; >> >> dsi_write(dsi, DSI_VID_MODE_CFG, val); >> } >> -- >> 2.11.0.197.gb556de5.dirty >> >> _______________________________________________ >> dri-devel mailing list >> dri-devel@lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/dri-devel