From mboxrd@z Thu Jan 1 00:00:00 1970 From: Inki Dae Subject: Re: [PATCH v5 9/9] drm/exynos: add support for 'hdmi' clock Date: Wed, 04 Feb 2015 14:13:00 +0900 Message-ID: <54D1AA5C.7040501@samsung.com> References: <1422883228-10690-1-git-send-email-m.szyprowski@samsung.com> <1422883228-10690-10-git-send-email-m.szyprowski@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-reply-to: <1422883228-10690-10-git-send-email-m.szyprowski@samsung.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Marek Szyprowski Cc: linux-samsung-soc@vger.kernel.org, Andrzej Hajda , dri-devel@lists.freedesktop.org, Daniel Drake , Tobias Jakobi , kyungmin.park@samsung.com, Kukjin Kim , Javier Martinez Canillas , linux-arm-kernel@lists.infradead.org List-Id: linux-samsung-soc@vger.kernel.org SGkgTWFyZWssCgpPbiAyMDE164WEIDAy7JuUIDAy7J28IDIyOjIwLCBNYXJlayBTenlwcm93c2tp IHdyb3RlOgo+IE1peGVkIG5lZWQgdG8gaGF2ZSBoZG1pIGNsb2NrIGVuYWJsZWQgdG8gcHJvcGVy bHkgcGVyZm9ybSBwb3dlciBvbi9vZmYKPiBzZXF1ZW5jZXMsIHNvIGFkZCBoYW5kbGluZyBvZiB0 aGlzIGNsb2NrIGRpcmVjdGx5IHRvIHRoZSBtaXhlciBkcml2ZXIuCj4gRGVwZW5kZW5jeSBiZXR3 ZWVuIGhkbWkgY2xvY2sgYW5kIG1peGVyIG1vZHVsZSBoYXMgYmVlbiBvYnNlcnZlZCBvbgo+IEV4 eW5vczQgYmFzZWQgYm9hcmRzLgoKUGlja2VkIGl0IHVwLgoKVGhhbmtzLApJbmtpIERhZS4KCj4g Cj4gU3VnZ2VzdGVkLWJ5OiBBbmRyemVqIEhhamRhIDxhLmhhamRhQHNhbXN1bmcuY29tPgo+IFJl dmlld2VkLWJ5OiBKYXZpZXIgTWFydGluZXogQ2FuaWxsYXMgPGphdmllci5tYXJ0aW5lekBjb2xs YWJvcmEuY28udWs+Cj4gVGVzdGVkLWJ5OiBKYXZpZXIgTWFydGluZXogQ2FuaWxsYXMgPGphdmll ci5tYXJ0aW5lekBjb2xsYWJvcmEuY28udWs+Cj4gU2lnbmVkLW9mZi1ieTogTWFyZWsgU3p5cHJv d3NraSA8bS5zenlwcm93c2tpQHNhbXN1bmcuY29tPgo+IC0tLQo+ICBEb2N1bWVudGF0aW9uL2Rl dmljZXRyZWUvYmluZGluZ3MvdmlkZW8vZXh5bm9zX21peGVyLnR4dCB8IDEgKwo+ICBkcml2ZXJz L2dwdS9kcm0vZXh5bm9zL2V4eW5vc19taXhlci5jICAgICAgICAgICAgICAgICAgICB8IDkgKysr KysrKysrCj4gIDIgZmlsZXMgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKQo+IAo+IGRpZmYgLS1n aXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvdmlkZW8vZXh5bm9zX21peGVy LnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy92aWRlby9leHlub3NfbWl4 ZXIudHh0Cj4gaW5kZXggMDhiMzk0YjFlZGJmLi4zZTM4MTI4Zjg2NmIgMTAwNjQ0Cj4gLS0tIGEv RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3ZpZGVvL2V4eW5vc19taXhlci50eHQK PiArKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvdmlkZW8vZXh5bm9zX21p eGVyLnR4dAo+IEBAIC0xNSw2ICsxNSw3IEBAIFJlcXVpcmVkIHByb3BlcnRpZXM6Cj4gIAlhKSBt aXhlcjogR2F0ZSBvZiBNaXhlciBJUCBidXMgY2xvY2suCj4gIAliKSBzY2xrX2hkbWk6IEhETUkg U3BlY2lhbCBjbG9jaywgb25lIG9mIHRoZSB0d28gcG9zc2libGUgaW5wdXRzIG9mCj4gICAgICAg ICAgICAgICAgIG1peGVyIG11eC4KPiArCWMpIGhkbWk6IEdhdGUgb2YgSERNSSBJUCBidXMgY2xv Y2ssIG5lZWRlZCB0b2dldGhlciB3aXRoIHNjbGtfaGRtaS4KPiAgCj4gIEV4YW1wbGU6Cj4gIAo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19taXhlci5jIGIvZHJp dmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfbWl4ZXIuYwo+IGluZGV4IDgyMGI3NjIzNGVmNC4u ODIxMmM4Mjk5NjI1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9z X21peGVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19taXhlci5jCj4g QEAgLTcyLDYgKzcyLDcgQEAgc3RydWN0IG1peGVyX3Jlc291cmNlcyB7Cj4gIAlzcGlubG9ja190 CQlyZWdfc2xvY2s7Cj4gIAlzdHJ1Y3QgY2xrCQkqbWl4ZXI7Cj4gIAlzdHJ1Y3QgY2xrCQkqdnA7 Cj4gKwlzdHJ1Y3QgY2xrCQkqaGRtaTsKPiAgCXN0cnVjdCBjbGsJCSpzY2xrX21peGVyOwo+ICAJ c3RydWN0IGNsawkJKnNjbGtfaGRtaTsKPiAgCXN0cnVjdCBjbGsJCSptb3V0X21peGVyOwo+IEBA IC03NzQsNiArNzc1LDEyIEBAIHN0YXRpYyBpbnQgbWl4ZXJfcmVzb3VyY2VzX2luaXQoc3RydWN0 IG1peGVyX2NvbnRleHQgKm1peGVyX2N0eCkKPiAgCQlyZXR1cm4gLUVOT0RFVjsKPiAgCX0KPiAg Cj4gKwltaXhlcl9yZXMtPmhkbWkgPSBkZXZtX2Nsa19nZXQoZGV2LCAiaGRtaSIpOwo+ICsJaWYg KElTX0VSUihtaXhlcl9yZXMtPmhkbWkpKSB7Cj4gKwkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8g Z2V0IGNsb2NrICdoZG1pJ1xuIik7Cj4gKwkJcmV0dXJuIFBUUl9FUlIobWl4ZXJfcmVzLT5oZG1p KTsKPiArCX0KPiArCj4gIAltaXhlcl9yZXMtPnNjbGtfaGRtaSA9IGRldm1fY2xrX2dldChkZXYs ICJzY2xrX2hkbWkiKTsKPiAgCWlmIChJU19FUlIobWl4ZXJfcmVzLT5zY2xrX2hkbWkpKSB7Cj4g IAkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8gZ2V0IGNsb2NrICdzY2xrX2hkbWknXG4iKTsKPiBA QCAtMTA5NSw2ICsxMTAyLDcgQEAgc3RhdGljIHZvaWQgbWl4ZXJfcG93ZXJvbihzdHJ1Y3QgZXh5 bm9zX2RybV9tYW5hZ2VyICptZ3IpCj4gIAlwbV9ydW50aW1lX2dldF9zeW5jKGN0eC0+ZGV2KTsK PiAgCj4gIAljbGtfcHJlcGFyZV9lbmFibGUocmVzLT5taXhlcik7Cj4gKwljbGtfcHJlcGFyZV9l bmFibGUocmVzLT5oZG1pKTsKPiAgCWlmIChjdHgtPnZwX2VuYWJsZWQpIHsKPiAgCQljbGtfcHJl cGFyZV9lbmFibGUocmVzLT52cCk7Cj4gIAkJaWYgKGN0eC0+aGFzX3NjbGspCj4gQEAgLTExMzQs NiArMTE0Miw3IEBAIHN0YXRpYyB2b2lkIG1peGVyX3Bvd2Vyb2ZmKHN0cnVjdCBleHlub3NfZHJt X21hbmFnZXIgKm1ncikKPiAgCWN0eC0+cG93ZXJlZCA9IGZhbHNlOwo+ICAJbXV0ZXhfdW5sb2Nr KCZjdHgtPm1peGVyX211dGV4KTsKPiAgCj4gKwljbGtfZGlzYWJsZV91bnByZXBhcmUocmVzLT5o ZG1pKTsKPiAgCWNsa19kaXNhYmxlX3VucHJlcGFyZShyZXMtPm1peGVyKTsKPiAgCWlmIChjdHgt PnZwX2VuYWJsZWQpIHsKPiAgCQljbGtfZGlzYWJsZV91bnByZXBhcmUocmVzLT52cCk7Cj4gCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwg bWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 From: inki.dae@samsung.com (Inki Dae) Date: Wed, 04 Feb 2015 14:13:00 +0900 Subject: [PATCH v5 9/9] drm/exynos: add support for 'hdmi' clock In-Reply-To: <1422883228-10690-10-git-send-email-m.szyprowski@samsung.com> References: <1422883228-10690-1-git-send-email-m.szyprowski@samsung.com> <1422883228-10690-10-git-send-email-m.szyprowski@samsung.com> Message-ID: <54D1AA5C.7040501@samsung.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Hi Marek, On 2015? 02? 02? 22:20, Marek Szyprowski wrote: > Mixed need to have hdmi clock enabled to properly perform power on/off > sequences, so add handling of this clock directly to the mixer driver. > Dependency between hdmi clock and mixer module has been observed on > Exynos4 based boards. Picked it up. Thanks, Inki Dae. > > Suggested-by: Andrzej Hajda > Reviewed-by: Javier Martinez Canillas > Tested-by: Javier Martinez Canillas > Signed-off-by: Marek Szyprowski > --- > Documentation/devicetree/bindings/video/exynos_mixer.txt | 1 + > drivers/gpu/drm/exynos/exynos_mixer.c | 9 +++++++++ > 2 files changed, 10 insertions(+) > > diff --git a/Documentation/devicetree/bindings/video/exynos_mixer.txt b/Documentation/devicetree/bindings/video/exynos_mixer.txt > index 08b394b1edbf..3e38128f866b 100644 > --- a/Documentation/devicetree/bindings/video/exynos_mixer.txt > +++ b/Documentation/devicetree/bindings/video/exynos_mixer.txt > @@ -15,6 +15,7 @@ Required properties: > a) mixer: Gate of Mixer IP bus clock. > b) sclk_hdmi: HDMI Special clock, one of the two possible inputs of > mixer mux. > + c) hdmi: Gate of HDMI IP bus clock, needed together with sclk_hdmi. > > Example: > > diff --git a/drivers/gpu/drm/exynos/exynos_mixer.c b/drivers/gpu/drm/exynos/exynos_mixer.c > index 820b76234ef4..8212c8299625 100644 > --- a/drivers/gpu/drm/exynos/exynos_mixer.c > +++ b/drivers/gpu/drm/exynos/exynos_mixer.c > @@ -72,6 +72,7 @@ struct mixer_resources { > spinlock_t reg_slock; > struct clk *mixer; > struct clk *vp; > + struct clk *hdmi; > struct clk *sclk_mixer; > struct clk *sclk_hdmi; > struct clk *mout_mixer; > @@ -774,6 +775,12 @@ static int mixer_resources_init(struct mixer_context *mixer_ctx) > return -ENODEV; > } > > + mixer_res->hdmi = devm_clk_get(dev, "hdmi"); > + if (IS_ERR(mixer_res->hdmi)) { > + dev_err(dev, "failed to get clock 'hdmi'\n"); > + return PTR_ERR(mixer_res->hdmi); > + } > + > mixer_res->sclk_hdmi = devm_clk_get(dev, "sclk_hdmi"); > if (IS_ERR(mixer_res->sclk_hdmi)) { > dev_err(dev, "failed to get clock 'sclk_hdmi'\n"); > @@ -1095,6 +1102,7 @@ static void mixer_poweron(struct exynos_drm_manager *mgr) > pm_runtime_get_sync(ctx->dev); > > clk_prepare_enable(res->mixer); > + clk_prepare_enable(res->hdmi); > if (ctx->vp_enabled) { > clk_prepare_enable(res->vp); > if (ctx->has_sclk) > @@ -1134,6 +1142,7 @@ static void mixer_poweroff(struct exynos_drm_manager *mgr) > ctx->powered = false; > mutex_unlock(&ctx->mixer_mutex); > > + clk_disable_unprepare(res->hdmi); > clk_disable_unprepare(res->mixer); > if (ctx->vp_enabled) { > clk_disable_unprepare(res->vp); >