From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from lb1-smtp-cloud3.xs4all.net ([194.109.24.22]:34209 "EHLO lb1-smtp-cloud3.xs4all.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751837AbdEENEP (ORCPT ); Fri, 5 May 2017 09:04:15 -0400 Subject: Re: [PATCH 6/8] omapdrm: hdmi4: refcount hdmi_power_on/off_core To: Tomi Valkeinen , linux-media@vger.kernel.org References: <20170414102512.48834-1-hverkuil@xs4all.nl> <20170414102512.48834-7-hverkuil@xs4all.nl> <15b0996c-5756-19ac-7393-11c245417ce4@ti.com> Cc: dri-devel@lists.freedesktop.org, Hans Verkuil From: Hans Verkuil Message-ID: <74eac79b-39f8-a6f0-8d70-70c8db6450eb@xs4all.nl> Date: Fri, 5 May 2017 15:04:07 +0200 MIME-Version: 1.0 In-Reply-To: <15b0996c-5756-19ac-7393-11c245417ce4@ti.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Sender: linux-media-owner@vger.kernel.org List-ID: On 04/28/17 13:30, Tomi Valkeinen wrote: > On 14/04/17 13:25, Hans Verkuil wrote: >> From: Hans Verkuil >> >> The hdmi_power_on/off_core functions can be called multiple times: >> when the HPD changes and when the HDMI CEC support needs to power >> the HDMI core. >> >> So use a counter to know when to really power on or off the HDMI core. >> >> Also call hdmi4_core_powerdown_disable() in hdmi_power_on_core() to >> power up the HDMI core (needed for CEC). >> >> Signed-off-by: Hans Verkuil >> --- >> drivers/gpu/drm/omapdrm/dss/hdmi4.c | 12 +++++++++++- >> 1 file changed, 11 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/gpu/drm/omapdrm/dss/hdmi4.c b/drivers/gpu/drm/omapdrm/dss/hdmi4.c >> index 4a164dc01f15..e371b47ff6ff 100644 >> --- a/drivers/gpu/drm/omapdrm/dss/hdmi4.c >> +++ b/drivers/gpu/drm/omapdrm/dss/hdmi4.c >> @@ -124,14 +124,19 @@ static int hdmi_power_on_core(struct omap_dss_device *dssdev) >> { >> int r; >> >> + if (hdmi.core.core_pwr_cnt++) >> + return 0; >> + > > How's the locking between the CEC side and the DRM side? Normally these > functions are protected with the DRM modesetting locks, but CEC doesn't > come from there. We have the hdmi.lock, did you check that it's held > when CEC side calls shared functions? Yes, the hdmi_power_on/off_core functions are all called from other functions with the hdmi.lock taken. The CEC code calls those higher level functions (hdmi4_core_enable/disable). > >> r = regulator_enable(hdmi.vdda_reg); >> if (r) >> - return r; >> + goto err_reg_enable; >> >> r = hdmi_runtime_get(); >> if (r) >> goto err_runtime_get; >> >> + hdmi4_core_powerdown_disable(&hdmi.core); > > I'd like to have the powerdown_disable as a separate patch. Will do. > Also, now > that you call it here, I believe it can be dropped from hdmi4_configure(). I was a bit scared of messing with that function. But if you say it can be removed, then who am I to argue? :-) > > Hmm, but in hdmi4_configure we call hdmi_core_swreset_assert() before > hdmi4_core_powerdown_disable(). I wonder what exactly that does, and > whether we end up resetting also the CEC parts when we change the videomode. Good one. I'll attempt to check this. Regards, Hans > > Tomi > From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hans Verkuil Subject: Re: [PATCH 6/8] omapdrm: hdmi4: refcount hdmi_power_on/off_core Date: Fri, 5 May 2017 15:04:07 +0200 Message-ID: <74eac79b-39f8-a6f0-8d70-70c8db6450eb@xs4all.nl> References: <20170414102512.48834-1-hverkuil@xs4all.nl> <20170414102512.48834-7-hverkuil@xs4all.nl> <15b0996c-5756-19ac-7393-11c245417ce4@ti.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from lb1-smtp-cloud3.xs4all.net (lb1-smtp-cloud3.xs4all.net [194.109.24.22]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1D6376E686 for ; Fri, 5 May 2017 13:04:15 +0000 (UTC) In-Reply-To: <15b0996c-5756-19ac-7393-11c245417ce4@ti.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Tomi Valkeinen , linux-media@vger.kernel.org Cc: Hans Verkuil , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gMDQvMjgvMTcgMTM6MzAsIFRvbWkgVmFsa2VpbmVuIHdyb3RlOgo+IE9uIDE0LzA0LzE3IDEz OjI1LCBIYW5zIFZlcmt1aWwgd3JvdGU6Cj4+IEZyb206IEhhbnMgVmVya3VpbCA8aGFucy52ZXJr dWlsQGNpc2NvLmNvbT4KPj4KPj4gVGhlIGhkbWlfcG93ZXJfb24vb2ZmX2NvcmUgZnVuY3Rpb25z IGNhbiBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXM6Cj4+IHdoZW4gdGhlIEhQRCBjaGFuZ2VzIGFu ZCB3aGVuIHRoZSBIRE1JIENFQyBzdXBwb3J0IG5lZWRzIHRvIHBvd2VyCj4+IHRoZSBIRE1JIGNv cmUuCj4+Cj4+IFNvIHVzZSBhIGNvdW50ZXIgdG8ga25vdyB3aGVuIHRvIHJlYWxseSBwb3dlciBv biBvciBvZmYgdGhlIEhETUkgY29yZS4KPj4KPj4gQWxzbyBjYWxsIGhkbWk0X2NvcmVfcG93ZXJk b3duX2Rpc2FibGUoKSBpbiBoZG1pX3Bvd2VyX29uX2NvcmUoKSB0bwo+PiBwb3dlciB1cCB0aGUg SERNSSBjb3JlIChuZWVkZWQgZm9yIENFQykuCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IEhhbnMgVmVy a3VpbCA8aGFucy52ZXJrdWlsQGNpc2NvLmNvbT4KPj4gLS0tCj4+ICBkcml2ZXJzL2dwdS9kcm0v b21hcGRybS9kc3MvaGRtaTQuYyB8IDEyICsrKysrKysrKysrLQo+PiAgMSBmaWxlIGNoYW5nZWQs IDExIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy9oZG1pNC5jIGIvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0v ZHNzL2hkbWk0LmMKPj4gaW5kZXggNGExNjRkYzAxZjE1Li5lMzcxYjQ3ZmY2ZmYgMTAwNjQ0Cj4+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy9oZG1pNC5jCj4+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy9oZG1pNC5jCj4+IEBAIC0xMjQsMTQgKzEyNCwxOSBAQCBz dGF0aWMgaW50IGhkbWlfcG93ZXJfb25fY29yZShzdHJ1Y3Qgb21hcF9kc3NfZGV2aWNlICpkc3Nk ZXYpCj4+ICB7Cj4+ICAJaW50IHI7Cj4+ICAKPj4gKwlpZiAoaGRtaS5jb3JlLmNvcmVfcHdyX2Nu dCsrKQo+PiArCQlyZXR1cm4gMDsKPj4gKwo+IAo+IEhvdydzIHRoZSBsb2NraW5nIGJldHdlZW4g dGhlIENFQyBzaWRlIGFuZCB0aGUgRFJNIHNpZGU/IE5vcm1hbGx5IHRoZXNlCj4gZnVuY3Rpb25z IGFyZSBwcm90ZWN0ZWQgd2l0aCB0aGUgRFJNIG1vZGVzZXR0aW5nIGxvY2tzLCBidXQgQ0VDIGRv ZXNuJ3QKPiBjb21lIGZyb20gdGhlcmUuIFdlIGhhdmUgdGhlIGhkbWkubG9jaywgZGlkIHlvdSBj aGVjayB0aGF0IGl0J3MgaGVsZAo+IHdoZW4gQ0VDIHNpZGUgY2FsbHMgc2hhcmVkIGZ1bmN0aW9u cz8KClllcywgdGhlIGhkbWlfcG93ZXJfb24vb2ZmX2NvcmUgZnVuY3Rpb25zIGFyZSBhbGwgY2Fs bGVkIGZyb20gb3RoZXIgZnVuY3Rpb25zCndpdGggdGhlIGhkbWkubG9jayB0YWtlbi4gVGhlIENF QyBjb2RlIGNhbGxzIHRob3NlIGhpZ2hlciBsZXZlbCBmdW5jdGlvbnMKKGhkbWk0X2NvcmVfZW5h YmxlL2Rpc2FibGUpLgoKPiAKPj4gIAlyID0gcmVndWxhdG9yX2VuYWJsZShoZG1pLnZkZGFfcmVn KTsKPj4gIAlpZiAocikKPj4gLQkJcmV0dXJuIHI7Cj4+ICsJCWdvdG8gZXJyX3JlZ19lbmFibGU7 Cj4+ICAKPj4gIAlyID0gaGRtaV9ydW50aW1lX2dldCgpOwo+PiAgCWlmIChyKQo+PiAgCQlnb3Rv IGVycl9ydW50aW1lX2dldDsKPj4gIAo+PiArCWhkbWk0X2NvcmVfcG93ZXJkb3duX2Rpc2FibGUo JmhkbWkuY29yZSk7Cj4gCj4gSSdkIGxpa2UgdG8gaGF2ZSB0aGUgcG93ZXJkb3duX2Rpc2FibGUg YXMgYSBzZXBhcmF0ZSBwYXRjaC4KCldpbGwgZG8uCgo+IEFsc28sIG5vdwo+IHRoYXQgeW91IGNh bGwgaXQgaGVyZSwgSSBiZWxpZXZlIGl0IGNhbiBiZSBkcm9wcGVkIGZyb20gaGRtaTRfY29uZmln dXJlKCkuCgpJIHdhcyBhIGJpdCBzY2FyZWQgb2YgbWVzc2luZyB3aXRoIHRoYXQgZnVuY3Rpb24u IEJ1dCBpZiB5b3Ugc2F5IGl0IGNhbgpiZSByZW1vdmVkLCB0aGVuIHdobyBhbSBJIHRvIGFyZ3Vl PyA6LSkKCj4gCj4gSG1tLCBidXQgaW4gaGRtaTRfY29uZmlndXJlIHdlIGNhbGwgaGRtaV9jb3Jl X3N3cmVzZXRfYXNzZXJ0KCkgYmVmb3JlCj4gaGRtaTRfY29yZV9wb3dlcmRvd25fZGlzYWJsZSgp LiBJIHdvbmRlciB3aGF0IGV4YWN0bHkgdGhhdCBkb2VzLCBhbmQKPiB3aGV0aGVyIHdlIGVuZCB1 cCByZXNldHRpbmcgYWxzbyB0aGUgQ0VDIHBhcnRzIHdoZW4gd2UgY2hhbmdlIHRoZSB2aWRlb21v ZGUuCgpHb29kIG9uZS4gSSdsbCBhdHRlbXB0IHRvIGNoZWNrIHRoaXMuCgpSZWdhcmRzLAoKCUhh bnMKCj4gCj4gIFRvbWkKPiAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Ry aS1kZXZlbAo=