From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yakir Subject: Re: [PATCH 07/13] drm: bridge/dw_hdmi: introduce interface to setting sample rate Date: Fri, 22 May 2015 23:26:26 +0800 Message-ID: <555F4AA2.3000204@rock-chips.com> References: <20150509102501.GO2067@n2100.arm.linux.org.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from regular1.263xmail.com (regular1.263xmail.com [211.150.99.139]) by alsa0.perex.cz (Postfix) with ESMTP id D1DD7265CC7 for ; Fri, 22 May 2015 17:26:28 +0200 (CEST) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org To: Russell King , alsa-devel@alsa-project.org, dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org Cc: Fabio Estevam , David Airlie , Takashi Iwai , Mark Brown , Philipp Zabel List-Id: alsa-devel@alsa-project.org SGkgUnVzc2VsbCwKCuWcqCAyMDE1LzUvOSAxODoyNiwgUnVzc2VsbCBLaW5nIOWGmemBkzoKPiBJ bnRyb2R1Y2UgZHdfaGRtaV9zZXRfc2FtcGxlX3JhdGUoKSwgd2hpY2ggYWxsb3dzIHVzIHRvIGNv bmZpZ3VyZSB0aGUKPiBhdWRpbyBzYW1wbGUgcmF0ZSwgc2V0dGluZyB0aGUgQ1RTL04gdmFsdWVz IGFwcHJvcHJpYXRlbHkuCj4KPiBTaWduZWQtb2ZmLWJ5OiBSdXNzZWxsIEtpbmcgPHJtaytrZXJu ZWxAYXJtLmxpbnV4Lm9yZy51az4KClRlc3Qgb24gUkszMjg4IHBsYXRmb3JtLCBpdCB3b3JrcyB3 ZWxscyAobGlrZSBwYXRjaCAwMy8xMyByZXBseSkKClRlc3QtYnk6IDx5a2tAcm9jay1jaGlwcy5j b20+CgpZYWtpciBZYW5nCj4gLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2R3X2hkbWku YyB8IDEwICsrKysrKysrKysKPiAgIGluY2x1ZGUvZHJtL2JyaWRnZS9kd19oZG1pLmggICAgIHwg IDUgKysrKysKPiAgIDIgZmlsZXMgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKQo+Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvZHdfaGRtaS5jIGIvZHJpdmVycy9ncHUvZHJt L2JyaWRnZS9kd19oZG1pLmMKPiBpbmRleCA3NTcyOGJhNTUyZDAuLjAzNjlmYWI1YzY5NSAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2R3X2hkbWkuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9icmlkZ2UvZHdfaGRtaS5jCj4gQEAgLTM2Niw2ICszNjYsMTYgQEAgc3RhdGlj IHZvaWQgaGRtaV9jbGtfcmVnZW5lcmF0b3JfdXBkYXRlX3BpeGVsX2Nsb2NrKHN0cnVjdCBkd19o ZG1pICpoZG1pKQo+ICAgCW11dGV4X3VubG9jaygmaGRtaS0+YXVkaW9fbXV0ZXgpOwo+ICAgfQo+ ICAgCj4gK3ZvaWQgZHdfaGRtaV9zZXRfc2FtcGxlX3JhdGUoc3RydWN0IGR3X2hkbWkgKmhkbWks IHVuc2lnbmVkIGludCByYXRlKQo+ICt7Cj4gKwltdXRleF9sb2NrKCZoZG1pLT5hdWRpb19tdXRl eCk7Cj4gKwloZG1pLT5zYW1wbGVfcmF0ZSA9IHJhdGU7Cj4gKwloZG1pX3NldF9jbGtfcmVnZW5l cmF0b3IoaGRtaSwgaGRtaS0+aGRtaV9kYXRhLnZpZGVvX21vZGUubXBpeGVsY2xvY2ssCj4gKwkJ CQkgaGRtaS0+c2FtcGxlX3JhdGUsIGhkbWktPnJhdGlvKTsKPiArCW11dGV4X3VubG9jaygmaGRt aS0+YXVkaW9fbXV0ZXgpOwo+ICt9Cj4gK0VYUE9SVF9TWU1CT0xfR1BMKGR3X2hkbWlfc2V0X3Nh bXBsZV9yYXRlKTsKPiArCj4gICAvKgo+ICAgICogdGhpcyBzdWJtb2R1bGUgaXMgcmVzcG9uc2li bGUgZm9yIHRoZSB2aWRlbyBkYXRhIHN5bmNocm9uaXphdGlvbi4KPiAgICAqIGZvciBleGFtcGxl LCBmb3IgUkdCIDQ6NDo0IGlucHV0LCB0aGUgZGF0YSBtYXAgaXMgZGVmaW5lZCBhcwo+IGRpZmYg LS1naXQgYS9pbmNsdWRlL2RybS9icmlkZ2UvZHdfaGRtaS5oIGIvaW5jbHVkZS9kcm0vYnJpZGdl L2R3X2hkbWkuaAo+IGluZGV4IGRlMTNiZmMzNTYzNC4uNzYzYWY1MWUxZDYwIDEwMDY0NAo+IC0t LSBhL2luY2x1ZGUvZHJtL2JyaWRnZS9kd19oZG1pLmgKPiArKysgYi9pbmNsdWRlL2RybS9icmlk Z2UvZHdfaGRtaS5oCj4gQEAgLTEyLDYgKzEyLDggQEAKPiAgIAo+ICAgI2luY2x1ZGUgPGRybS9k cm1QLmg+Cj4gICAKPiArc3RydWN0IGR3X2hkbWk7Cj4gKwo+ICAgZW51bSB7Cj4gICAJRFdfSERN SV9SRVNfOCwKPiAgIAlEV19IRE1JX1JFU18xMCwKPiBAQCAtNTksNCArNjEsNyBAQCBpbnQgZHdf aGRtaV9iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFzdGVyLAo+ICAg CQkgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAo+ICAgCQkgc3RydWN0 IHJlc291cmNlICppb3JlcywgaW50IGlycSwKPiAgIAkJIGNvbnN0IHN0cnVjdCBkd19oZG1pX3Bs YXRfZGF0YSAqcGxhdF9kYXRhKTsKPiArCj4gK3ZvaWQgZHdfaGRtaV9zZXRfc2FtcGxlX3JhdGUo c3RydWN0IGR3X2hkbWkgKmhkbWksIHVuc2lnbmVkIGludCByYXRlKTsKPiArCj4gICAjZW5kaWYg LyogX19JTVhfSERNSV9IX18gKi8KCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpBbHNhLWRldmVsIG1haWxpbmcgbGlzdApBbHNhLWRldmVsQGFsc2EtcHJv amVjdC5vcmcKaHR0cDovL21haWxtYW4uYWxzYS1wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZv L2Fsc2EtZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 From: ykk@rock-chips.com (Yakir) Date: Fri, 22 May 2015 23:26:26 +0800 Subject: [PATCH 07/13] drm: bridge/dw_hdmi: introduce interface to setting sample rate In-Reply-To: References: <20150509102501.GO2067@n2100.arm.linux.org.uk> Message-ID: <555F4AA2.3000204@rock-chips.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Hi Russell, ? 2015/5/9 18:26, Russell King ??: > Introduce dw_hdmi_set_sample_rate(), which allows us to configure the > audio sample rate, setting the CTS/N values appropriately. > > Signed-off-by: Russell King Test on RK3288 platform, it works wells (like patch 03/13 reply) Test-by: Yakir Yang > --- > drivers/gpu/drm/bridge/dw_hdmi.c | 10 ++++++++++ > include/drm/bridge/dw_hdmi.h | 5 +++++ > 2 files changed, 15 insertions(+) > > diff --git a/drivers/gpu/drm/bridge/dw_hdmi.c b/drivers/gpu/drm/bridge/dw_hdmi.c > index 75728ba552d0..0369fab5c695 100644 > --- a/drivers/gpu/drm/bridge/dw_hdmi.c > +++ b/drivers/gpu/drm/bridge/dw_hdmi.c > @@ -366,6 +366,16 @@ static void hdmi_clk_regenerator_update_pixel_clock(struct dw_hdmi *hdmi) > mutex_unlock(&hdmi->audio_mutex); > } > > +void dw_hdmi_set_sample_rate(struct dw_hdmi *hdmi, unsigned int rate) > +{ > + mutex_lock(&hdmi->audio_mutex); > + hdmi->sample_rate = rate; > + hdmi_set_clk_regenerator(hdmi, hdmi->hdmi_data.video_mode.mpixelclock, > + hdmi->sample_rate, hdmi->ratio); > + mutex_unlock(&hdmi->audio_mutex); > +} > +EXPORT_SYMBOL_GPL(dw_hdmi_set_sample_rate); > + > /* > * this submodule is responsible for the video data synchronization. > * for example, for RGB 4:4:4 input, the data map is defined as > diff --git a/include/drm/bridge/dw_hdmi.h b/include/drm/bridge/dw_hdmi.h > index de13bfc35634..763af51e1d60 100644 > --- a/include/drm/bridge/dw_hdmi.h > +++ b/include/drm/bridge/dw_hdmi.h > @@ -12,6 +12,8 @@ > > #include > > +struct dw_hdmi; > + > enum { > DW_HDMI_RES_8, > DW_HDMI_RES_10, > @@ -59,4 +61,7 @@ int dw_hdmi_bind(struct device *dev, struct device *master, > void *data, struct drm_encoder *encoder, > struct resource *iores, int irq, > const struct dw_hdmi_plat_data *plat_data); > + > +void dw_hdmi_set_sample_rate(struct dw_hdmi *hdmi, unsigned int rate); > + > #endif /* __IMX_HDMI_H__ */