From mboxrd@z Thu Jan 1 00:00:00 1970 From: moinejf@free.fr (Jean-Francois Moine) Date: Mon, 7 Oct 2013 11:18:07 +0200 Subject: [PATCH 5/5] DRM: Armada: add support for drm tda19988 driver In-Reply-To: References: <20131006220728.GG12758@n2100.arm.linux.org.uk> Message-ID: <20131007111807.5e86ea6e@armhf> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Sun, 06 Oct 2013 23:11:56 +0100 Russell King wrote: > Signed-off-by: Russell King > --- > drivers/gpu/drm/armada/Kconfig | 9 +++++++ > drivers/gpu/drm/armada/armada_drv.c | 42 +++++++++++++++++++++++++++++++++++ > 2 files changed, 51 insertions(+), 0 deletions(-) > > diff --git a/drivers/gpu/drm/armada/Kconfig b/drivers/gpu/drm/armada/Kconfig > index c7a0a94..87e62dd 100644 > --- a/drivers/gpu/drm/armada/Kconfig > +++ b/drivers/gpu/drm/armada/Kconfig > @@ -13,3 +13,12 @@ config DRM_ARMADA > This driver provides no built-in acceleration; acceleration is > performed by other IP found on the SoC. This driver provides > kernel mode setting and buffer management to userspace. > + > +config DRM_ARMADA_TDA1998X > + bool "Support TDA1998X HDMI output" > + depends on DRM_ARMADA != n > + depends on I2C && DRM_I2C_NXP_TDA998X = y > + default y > + help > + Support the TDA1998x HDMI output device found on the Solid-Run > + CuBox. It seems we are going backwards: as the Armada based boards will soon move to full DT (mvebu), you are making an exception for the Cubox, so that there should be Cubox specific kernels. I don't like that... > diff --git a/drivers/gpu/drm/armada/armada_drv.c b/drivers/gpu/drm/armada/armada_drv.c > index db62f1b..69517cf 100644 > --- a/drivers/gpu/drm/armada/armada_drv.c > +++ b/drivers/gpu/drm/armada/armada_drv.c > @@ -16,6 +16,42 @@ > #include > #include "armada_ioctlP.h" > > +#ifdef CONFIG_DRM_ARMADA_TDA1998X > +#include > +#include "armada_slave.h" > + > +static struct tda998x_encoder_params params = { > + /* With 0x24, there is no translation between vp_out and int_vp > + FB LCD out Pins VIP Int Vp > + R:23:16 R:7:0 VPC7:0 7:0 7:0[R] > + G:15:8 G:15:8 VPB7:0 23:16 23:16[G] > + B:7:0 B:23:16 VPA7:0 15:8 15:8[B] > + */ > + .swap_a = 2, > + .swap_b = 3, > + .swap_c = 4, > + .swap_d = 5, > + .swap_e = 0, > + .swap_f = 1, I still don't agree. You don't need to invert R <-> B for the Cubox at the tda998x level: this may be done setting as it should be the CFG_GRA_SWAPRB flag of the lcd register LCD_SPU_DMA_CTRL0. > + .audio_cfg = BIT(2), > + .audio_frame[1] = 1, > + .audio_format = AFMT_SPDIF, > + .audio_sample_rate = 44100, These values are rather mysterious! Looking at the tda998x driver, I found that: - audio_cfg can be 0x03 for i2s input and 0x04 for spdif input - audio_frame[1] is the (channel count - 1) - audio_format and audio_sample_rate are hardcoding the audio input to spdif and the sample rate to 44.1kHz I don't think that these parameters are needed: - the tda998x must be prepared to get either i2s or spdif as the audio input at any time. The choice of this input results from the audio subsystem constraints (codec) found at audio streaming start time. - the channel count is always 2 for spdif. Do we need to accept four channels for i2s? - audio on hdmi works fine for me at any input rate setting the tda998x sample rate to 96 kHz. Anyway, in the actual tda998x driver, this audio_sample_rate value is just used to set an approximate value of ACR. But this value is not used because an optimal value is computed by the hardware thanks to the flag AIP_CNTRL_0_ACR_MAN! [snip] The remaining patch is Cubox specific. -- Ken ar c'henta? | ** Breizh ha Linux atav! ** Jef | http://moinejf.free.fr/ From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jean-Francois Moine Subject: Re: [PATCH 5/5] DRM: Armada: add support for drm tda19988 driver Date: Mon, 7 Oct 2013 11:18:07 +0200 Message-ID: <20131007111807.5e86ea6e@armhf> References: <20131006220728.GG12758@n2100.arm.linux.org.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: Russell King Cc: Jason Cooper , David Airlie , dri-devel@lists.freedesktop.org, Rob Clark , Daniel Vetter , linux-arm-kernel@lists.infradead.org, Sebastian Hesselbarth List-Id: dri-devel@lists.freedesktop.org T24gU3VuLCAwNiBPY3QgMjAxMyAyMzoxMTo1NiArMDEwMApSdXNzZWxsIEtpbmcgPHJtaytrZXJu ZWxAYXJtLmxpbnV4Lm9yZy51az4gd3JvdGU6Cgo+IFNpZ25lZC1vZmYtYnk6IFJ1c3NlbGwgS2lu ZyA8cm1rK2tlcm5lbEBhcm0ubGludXgub3JnLnVrPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0v YXJtYWRhL0tjb25maWcgICAgICB8ICAgIDkgKysrKysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vYXJt YWRhL2FybWFkYV9kcnYuYyB8ICAgNDIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysKPiAgMiBmaWxlcyBjaGFuZ2VkLCA1MSBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQo+ IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL0tjb25maWcgYi9kcml2ZXJz L2dwdS9kcm0vYXJtYWRhL0tjb25maWcKPiBpbmRleCBjN2EwYTk0Li44N2U2MmRkIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hcm1hZGEvS2NvbmZpZwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9hcm1hZGEvS2NvbmZpZwo+IEBAIC0xMywzICsxMywxMiBAQCBjb25maWcgRFJNX0FSTUFE QQo+ICAJICBUaGlzIGRyaXZlciBwcm92aWRlcyBubyBidWlsdC1pbiBhY2NlbGVyYXRpb247IGFj Y2VsZXJhdGlvbiBpcwo+ICAJICBwZXJmb3JtZWQgYnkgb3RoZXIgSVAgZm91bmQgb24gdGhlIFNv Qy4gIFRoaXMgZHJpdmVyIHByb3ZpZGVzCj4gIAkgIGtlcm5lbCBtb2RlIHNldHRpbmcgYW5kIGJ1 ZmZlciBtYW5hZ2VtZW50IHRvIHVzZXJzcGFjZS4KPiArCj4gK2NvbmZpZyBEUk1fQVJNQURBX1RE QTE5OThYCj4gKwlib29sICJTdXBwb3J0IFREQTE5OThYIEhETUkgb3V0cHV0Igo+ICsJZGVwZW5k cyBvbiBEUk1fQVJNQURBICE9IG4KPiArCWRlcGVuZHMgb24gSTJDICYmIERSTV9JMkNfTlhQX1RE QTk5OFggPSB5Cj4gKwlkZWZhdWx0IHkKPiArCWhlbHAKPiArCSAgU3VwcG9ydCB0aGUgVERBMTk5 OHggSERNSSBvdXRwdXQgZGV2aWNlIGZvdW5kIG9uIHRoZSBTb2xpZC1SdW4KPiArCSAgQ3VCb3gu CgpJdCBzZWVtcyB3ZSBhcmUgZ29pbmcgYmFja3dhcmRzOiBhcyB0aGUgQXJtYWRhIGJhc2VkIGJv YXJkcyB3aWxsIHNvb24KbW92ZSB0byBmdWxsIERUIChtdmVidSksIHlvdSBhcmUgbWFraW5nIGFu IGV4Y2VwdGlvbiBmb3IgdGhlIEN1Ym94LCBzbwp0aGF0IHRoZXJlIHNob3VsZCBiZSBDdWJveCBz cGVjaWZpYyBrZXJuZWxzLiBJIGRvbid0IGxpa2UgdGhhdC4uLgoKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vYXJtYWRh L2FybWFkYV9kcnYuYwo+IGluZGV4IGRiNjJmMWIuLjY5NTE3Y2YgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZHJ2LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v YXJtYWRhL2FybWFkYV9kcnYuYwo+IEBAIC0xNiw2ICsxNiw0MiBAQAo+ICAjaW5jbHVkZSA8ZHJt L2FybWFkYV9kcm0uaD4KPiAgI2luY2x1ZGUgImFybWFkYV9pb2N0bFAuaCIKPiAgCj4gKyNpZmRl ZiBDT05GSUdfRFJNX0FSTUFEQV9UREExOTk4WAo+ICsjaW5jbHVkZSA8ZHJtL2kyYy90ZGE5OTh4 Lmg+Cj4gKyNpbmNsdWRlICJhcm1hZGFfc2xhdmUuaCIKPiArCj4gK3N0YXRpYyBzdHJ1Y3QgdGRh OTk4eF9lbmNvZGVyX3BhcmFtcyBwYXJhbXMgPSB7Cj4gKwkvKiBXaXRoIDB4MjQsIHRoZXJlIGlz IG5vIHRyYW5zbGF0aW9uIGJldHdlZW4gdnBfb3V0IGFuZCBpbnRfdnAKPiArCUZCCUxDRCBvdXQJ UGlucwlWSVAJSW50IFZwCj4gKwlSOjIzOjE2CVI6NzowCVZQQzc6MAk3OjAJNzowW1JdCj4gKwlH OjE1OjgJRzoxNTo4CVZQQjc6MAkyMzoxNgkyMzoxNltHXQo+ICsJQjo3OjAJQjoyMzoxNglWUEE3 OjAJMTU6OAkxNTo4W0JdCj4gKwkqLwo+ICsJLnN3YXBfYSA9IDIsCj4gKwkuc3dhcF9iID0gMywK PiArCS5zd2FwX2MgPSA0LAo+ICsJLnN3YXBfZCA9IDUsCj4gKwkuc3dhcF9lID0gMCwKPiArCS5z d2FwX2YgPSAxLAoKSSBzdGlsbCBkb24ndCBhZ3JlZS4gWW91IGRvbid0IG5lZWQgdG8gaW52ZXJ0 IFIgPC0+IEIgZm9yIHRoZSBDdWJveCBhdAp0aGUgdGRhOTk4eCBsZXZlbDogdGhpcyBtYXkgYmUg ZG9uZSBzZXR0aW5nIGFzIGl0IHNob3VsZCBiZSB0aGUKQ0ZHX0dSQV9TV0FQUkIgZmxhZyBvZiB0 aGUgbGNkIHJlZ2lzdGVyIExDRF9TUFVfRE1BX0NUUkwwLgoKPiArCS5hdWRpb19jZmcgPSBCSVQo MiksCj4gKwkuYXVkaW9fZnJhbWVbMV0gPSAxLAo+ICsJLmF1ZGlvX2Zvcm1hdCA9IEFGTVRfU1BE SUYsCj4gKwkuYXVkaW9fc2FtcGxlX3JhdGUgPSA0NDEwMCwKClRoZXNlIHZhbHVlcyBhcmUgcmF0 aGVyIG15c3RlcmlvdXMhCgpMb29raW5nIGF0IHRoZSB0ZGE5OTh4IGRyaXZlciwgSSBmb3VuZCB0 aGF0OgotIGF1ZGlvX2NmZyBjYW4gYmUgMHgwMyBmb3IgaTJzIGlucHV0IGFuZCAweDA0IGZvciBz cGRpZiBpbnB1dAotIGF1ZGlvX2ZyYW1lWzFdIGlzIHRoZSAoY2hhbm5lbCBjb3VudCAtIDEpCi0g YXVkaW9fZm9ybWF0IGFuZCBhdWRpb19zYW1wbGVfcmF0ZSBhcmUgaGFyZGNvZGluZyB0aGUgYXVk aW8gaW5wdXQgdG8KICBzcGRpZiBhbmQgdGhlIHNhbXBsZSByYXRlIHRvIDQ0LjFrSHoKCkkgZG9u J3QgdGhpbmsgdGhhdCB0aGVzZSBwYXJhbWV0ZXJzIGFyZSBuZWVkZWQ6CgotIHRoZSB0ZGE5OTh4 IG11c3QgYmUgcHJlcGFyZWQgdG8gZ2V0IGVpdGhlciBpMnMgb3Igc3BkaWYgYXMgdGhlIGF1ZGlv CiAgaW5wdXQgYXQgYW55IHRpbWUuIFRoZSBjaG9pY2Ugb2YgdGhpcyBpbnB1dCByZXN1bHRzIGZy b20gdGhlIGF1ZGlvCiAgc3Vic3lzdGVtIGNvbnN0cmFpbnRzIChjb2RlYykgZm91bmQgYXQgYXVk aW8gc3RyZWFtaW5nIHN0YXJ0IHRpbWUuCgotIHRoZSBjaGFubmVsIGNvdW50IGlzIGFsd2F5cyAy IGZvciBzcGRpZi4gRG8gd2UgbmVlZCB0byBhY2NlcHQgZm91cgogIGNoYW5uZWxzIGZvciBpMnM/ CgotIGF1ZGlvIG9uIGhkbWkgd29ya3MgZmluZSBmb3IgbWUgYXQgYW55IGlucHV0IHJhdGUgc2V0 dGluZyB0aGUgdGRhOTk4eAogIHNhbXBsZSByYXRlIHRvIDk2IGtIei4gQW55d2F5LCBpbiB0aGUg YWN0dWFsIHRkYTk5OHggZHJpdmVyLCB0aGlzCiAgYXVkaW9fc2FtcGxlX3JhdGUgdmFsdWUgaXMg anVzdCB1c2VkIHRvIHNldCBhbiBhcHByb3hpbWF0ZSB2YWx1ZSBvZgogIEFDUi4gQnV0IHRoaXMg dmFsdWUgaXMgbm90IHVzZWQgYmVjYXVzZSBhbiBvcHRpbWFsIHZhbHVlIGlzIGNvbXB1dGVkCiAg YnkgdGhlIGhhcmR3YXJlIHRoYW5rcyB0byB0aGUgZmxhZyBBSVBfQ05UUkxfMF9BQ1JfTUFOIQoK CVtzbmlwXQoKVGhlIHJlbWFpbmluZyBwYXRjaCBpcyBDdWJveCBzcGVjaWZpYy4KCi0tIApLZW4g YXIgYydoZW50YcOxCXwJICAgICAgKiogQnJlaXpoIGhhIExpbnV4IGF0YXYhICoqCkplZgkJfAkJ aHR0cDovL21vaW5lamYuZnJlZS5mci8KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1r ZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWls bWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK