Dave Jones
71c68c4fc9
drm/i2c: tda998x: Fix memory leak in tda998x_encoder_init error path.
...
Commit 6ae668cc19
(drm/i2c: tda998x: check the CEC device creation)
introduced a memory leak in the error path of tda998x_encoder_init
Picked up by the nightly Coverity scan. CID 1174076
Signed-off-by: Dave Jones <davej@fedoraproject.org >
Acked-by: Jean-Francois Moine <moinejf@free.fr >
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk >
2014-02-13 19:40:24 +00:00
Jean-Francois Moine
2e9a3fc3a3
drm/i2c: tda998x: fix the ENABLE_SPACE register
...
This patch fixes the ENABLE_SPACE register, the value of which was
inverted.
Tested-by: Russell King <rmk+kernel@arm.linux.org.uk >
Acked-by: Russell King <rmk+kernel@arm.linux.org.uk >
Signed-off-by: Jean-Francois Moine <moinejf@free.fr >
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk >
2014-02-02 17:48:55 +00:00
Jean-Francois Moine
3ae471f73a
drm/i2c: tda998x: set the PLL division factor in range 0..3
...
The predivider division factor of the register PLL_SERIAL_2 is in the
range 0..3, the value 0 being used for a division by 1.
Tested-by: Russell King <rmk+kernel@arm.linux.org.uk >
Acked-by: Russell King <rmk+kernel@arm.linux.org.uk >
Signed-off-by: Jean-Francois Moine <moinejf@free.fr >
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk >
2014-02-02 16:46:08 +00:00
Jean-Francois Moine
2eb4c7b1e7
drm/i2c: tda998x: force the page register at startup time
...
This patch forces the page register to be set on the first I/O operation.
Tested-by: Russell King <rmk+kernel@arm.linux.org.uk >
Acked-by: Russell King <rmk+kernel@arm.linux.org.uk >
Signed-off-by: Jean-Francois Moine <moinejf@free.fr >
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk >
2014-02-02 16:44:52 +00:00
Jean-Francois Moine
fc275a74eb
drm/i2c: tda998x: free the CEC device on encoder_destroy
...
The cec i2c device is created in tda998x_encoder_init() when the DRM
driver starts.
This patch frees it when the DRM driver is unloaded.
Tested-by: Russell King <rmk+kernel@arm.linux.org.uk >
Acked-by: Russell King <rmk+kernel@arm.linux.org.uk >
Signed-off-by: Jean-Francois Moine <moinejf@free.fr >
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk >
2014-02-02 16:44:50 +00:00
Jean-Francois Moine
6ae668cc19
drm/i2c: tda998x: check the CEC device creation
...
This patch checks if the CEC device is well created at intialization
time.
Tested-by: Russell King <rmk+kernel@arm.linux.org.uk >
Acked-by: Russell King <rmk+kernel@arm.linux.org.uk >
Signed-off-by: Jean-Francois Moine <moinejf@free.fr >
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk >
2014-02-02 16:44:45 +00:00
Jean-Francois Moine
7288ca07b6
drm/i2c: tda998x: fix bad value in the AIF
...
The AIF has an uninitialized byte. This patch clears the whole buffer
before filling it.
Tested-by: Russell King <rmk+kernel@arm.linux.org.uk >
Acked-by: Russell King <rmk+kernel@arm.linux.org.uk >
Signed-off-by: Jean-Francois Moine <moinejf@free.fr >
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk >
2014-02-02 16:33:09 +00:00
Russell King
893c3e538d
drm/i2c: tda998x: set VIF for full range, underscanned display
...
Tested-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com >
Reviewed-by: Rob Clark <robdclark@gmail.com >
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk >
2013-10-18 15:58:32 +01:00
Russell King
db6aaf4d55
drm/i2c: tda998x: fix audio muting
...
Fix a bug that was introduced in commit c4c11dd160
("drm/i2c: tda998x:
add video and audio input configuration") when Sebastian cleaned up my
original patch. Without this being fixed, audio is muted when the
display is turned off, never to be re-enabled.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk >
Cc: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com >
Cc: Darren Etheridge <detheridge@ti.com >
Cc: Dave Airlie <airlied@redhat.com >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2013-09-24 09:41:18 -07:00
David Herrmann
3b28802e37
drm/tda998x: BUG() on invalid audio format
...
Suppress warning of unused-variables by adding a BUG()+return for invalid
audio-formats.
Cc: Rob Clark <robdclark@gmail.com >
Signed-off-by: David Herrmann <dh.herrmann@gmail.com >
Signed-off-by: Dave Airlie <airlied@gmail.com >
2013-09-05 08:52:19 +10:00
Sebastian Hesselbarth
179f1aa407
drm/i2c: tda998x: prepare for broken sync workaround
...
Some LCD controller cannot provide valid VESA style sync, i.e. coincident
HS/VS edges. First, this patch adds hskew passed from the adjusted_mode to
reference pixel calculation to allow those controllers to add an offset
relative to the expected reference pixel.
Signed-off-by: Darren Etheridge <detheridge@ti.com >
Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com >
Tested-by: Russell King <rmk_kernel@arm.linux.org.uk >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2013-08-19 09:10:48 +10:00
Sebastian Hesselbarth
088d61d1fd
drm/i2c: tda998x: fix sync generation and calculation
...
This fixes the wrong sync generation and sync calculation of TDA998x
for HS/VS-based sync detection.
Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com >
Tested-by: Darren Etheridge <detheridge@ti.com >
Tested-by: Russell King <rmk_kernel@arm.linux.org.uk >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2013-08-19 09:10:38 +10:00
Russell King
c4c11dd160
drm/i2c: tda998x: add video and audio input configuration
...
This patch adds tda998x specific parameters to allow it to be configured
for different boards using it. Also, this implements rudimentary audio
support for S/PDIF attached controllers.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk >
Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com >
Tested-by: Darren Etheridge <detheridge@ti.com >
Tested-by: Russell King <rmk_kernel@arm.linux.org.uk >
Tested-by: Russell King <rmk_kernel@arm.linux.org.uk >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2013-08-19 09:10:32 +10:00
Russell King
5e74c22cd1
drm/i2c: tda998x: prepare for video input configuration
...
The video-input-port (VIP) is highly configurable. This prepares
current driver to allow to configure VIP configuration, as some
boards connect lcd controller and TDA998x "pin-swapped" and depend
on VIP to swap the pins by register configuration.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk >
Tested-by: Darren Etheridge <detheridge@ti.com >
Tested-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com >
Tested-by: Russell King <rmk_kernel@arm.linux.org.uk >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2013-08-19 09:10:19 +10:00
Russell King
20c17675fe
drm/i2c: tda998x: fix npix/nline programming
...
The npix/nline registers are supposed to be programmed with the total
number of pixels/lines, not the displayed pixels/lines, and not minus
one either.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk >
Tested-by: Darren Etheridge <detheridge@ti.com >
Tested-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com >
Tested-by: Russell King <rmk_kernel@arm.linux.org.uk >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2013-08-19 09:10:13 +10:00
Russell King
bcb2481df0
drm/i2c: tda998x: ensure VIP output mux is properly set
...
When switching between various drivers for this device, it's possible
that some critical registers are left containing values which affect
the device operation. One such case encountered is the VIP output
mux register. This defaults to 0x24 on powerup, but other drivers may
set this to 0x12. This results in incorrect colours.
Fix this by ensuring that the register is always set to the power on
default setting.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk >
Tested-by: Darren Etheridge <detheridge@ti.com >
Tested-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com >
Tested-by: Russell King <rmk_kernel@arm.linux.org.uk >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2013-08-19 09:10:07 +10:00
Russell King
063b472fbb
drm/i2c: tda998x: fix EDID reading on TDA19988 devices
...
TDA19988 devices need their RAM enabled in order to read EDID
information. Add support for this.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk >
Signed-off-by: Rob Clark <robdclark@gmail.com >
Tested-by: Darren Etheridge <detheridge@ti.com >
Tested-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com >
Tested-by: Russell King <rmk_kernel@arm.linux.org.uk >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2013-08-19 09:10:00 +10:00
Rob Clark
e7792ce2da
drm/i2c: nxp-tda998x (v3)
...
Driver for the NXP TDA998X i2c hdmi encoder slave.
v1: original
v2: fix npix/nline programming
v3: add Kconfig, fix dup'd MODULE_DESCRIPTION
Signed-off-by: Rob Clark <robdclark@gmail.com >
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Tested-by: Koen Kooi <koen@dominion.thruhere.net >
2013-02-19 17:57:44 -05:00