From: rmk+kernel@arm.linux.org.uk (Russell King) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH RFC 4/8] drm/i2c: nxp-tda998x: ensure VIP output mux is properly set Date: Sun, 09 Jun 2013 20:31:46 +0100 [thread overview] Message-ID: <E1UllL8-00058Y-H3@rmk-PC.arm.linux.org.uk> (raw) In-Reply-To: <20130609190612.GM18614@n2100.arm.linux.org.uk> 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> --- drivers/gpu/drm/i2c/tda998x_drv.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) diff --git a/drivers/gpu/drm/i2c/tda998x_drv.c b/drivers/gpu/drm/i2c/tda998x_drv.c index d71c408..dc0428d 100644 --- a/drivers/gpu/drm/i2c/tda998x_drv.c +++ b/drivers/gpu/drm/i2c/tda998x_drv.c @@ -110,6 +110,7 @@ struct tda998x_priv { #define REG_VIP_CNTRL_5 REG(0x00, 0x25) /* write */ # define VIP_CNTRL_5_CKCASE (1 << 0) # define VIP_CNTRL_5_SP_CNT(x) (((x) & 3) << 1) +#define REG_MUX_VP_VIP_OUT REG(0x00, 0x27) /* read/write */ #define REG_MAT_CONTRL REG(0x00, 0x80) /* write */ # define MAT_CONTRL_MAT_SC(x) (((x) & 3) << 0) # define MAT_CONTRL_MAT_BP (1 << 2) @@ -415,6 +416,9 @@ tda998x_reset(struct drm_encoder *encoder) reg_write(encoder, REG_PLL_SCGR1, 0x5b); reg_write(encoder, REG_PLL_SCGR2, 0x00); reg_write(encoder, REG_PLL_SCG2, 0x10); + + /* Ensure VP output bus muxes result in no swapping */ + reg_write(encoder, REG_MUX_VP_VIP_OUT, 0x24); } /* DRM encoder functions */ -- 1.7.4.4
WARNING: multiple messages have this Message-ID (diff)
From: Russell King <rmk+kernel@arm.linux.org.uk> To: linux-arm-kernel@lists.infradead.org Cc: Jason Cooper <jason@lakedaemon.net>, David Airlie <airlied@linux.ie>, dri-devel@lists.freedesktop.org, Rob Clark <robdclark@gmail.com>, Darren Etheridge <darren.etheridge@gmail.com>, Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> Subject: [PATCH RFC 4/8] drm/i2c: nxp-tda998x: ensure VIP output mux is properly set Date: Sun, 09 Jun 2013 20:31:46 +0100 [thread overview] Message-ID: <E1UllL8-00058Y-H3@rmk-PC.arm.linux.org.uk> (raw) In-Reply-To: <20130609190612.GM18614@n2100.arm.linux.org.uk> 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> --- drivers/gpu/drm/i2c/tda998x_drv.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) diff --git a/drivers/gpu/drm/i2c/tda998x_drv.c b/drivers/gpu/drm/i2c/tda998x_drv.c index d71c408..dc0428d 100644 --- a/drivers/gpu/drm/i2c/tda998x_drv.c +++ b/drivers/gpu/drm/i2c/tda998x_drv.c @@ -110,6 +110,7 @@ struct tda998x_priv { #define REG_VIP_CNTRL_5 REG(0x00, 0x25) /* write */ # define VIP_CNTRL_5_CKCASE (1 << 0) # define VIP_CNTRL_5_SP_CNT(x) (((x) & 3) << 1) +#define REG_MUX_VP_VIP_OUT REG(0x00, 0x27) /* read/write */ #define REG_MAT_CONTRL REG(0x00, 0x80) /* write */ # define MAT_CONTRL_MAT_SC(x) (((x) & 3) << 0) # define MAT_CONTRL_MAT_BP (1 << 2) @@ -415,6 +416,9 @@ tda998x_reset(struct drm_encoder *encoder) reg_write(encoder, REG_PLL_SCGR1, 0x5b); reg_write(encoder, REG_PLL_SCGR2, 0x00); reg_write(encoder, REG_PLL_SCG2, 0x10); + + /* Ensure VP output bus muxes result in no swapping */ + reg_write(encoder, REG_MUX_VP_VIP_OUT, 0x24); } /* DRM encoder functions */ -- 1.7.4.4
next prev parent reply other threads:[~2013-06-09 19:31 UTC|newest] Thread overview: 120+ messages / expand[flat|nested] mbox.gz Atom feed top 2013-06-09 19:06 [RFC v2 0/8] rmk's Dove DRM/TDA19988 Cubox driver Russell King - ARM Linux 2013-06-09 19:06 ` Russell King - ARM Linux 2013-06-09 19:29 ` [PATCH RFC 2/8] DRM: Armada: Add Armada DRM driver Russell King 2013-06-09 19:32 ` Russell King 2013-06-10 11:10 ` Sebastian Hesselbarth 2013-06-10 11:10 ` Sebastian Hesselbarth 2013-06-10 21:48 ` Russell King - ARM Linux 2013-06-10 21:48 ` Russell King - ARM Linux 2013-06-10 21:56 ` Sebastian Hesselbarth 2013-06-10 21:56 ` Sebastian Hesselbarth 2013-06-10 15:57 ` Rob Clark 2013-06-10 15:57 ` Rob Clark 2013-06-10 17:06 ` Russell King - ARM Linux 2013-06-10 17:06 ` Russell King - ARM Linux 2013-06-10 19:59 ` Rob Clark 2013-06-10 19:59 ` Rob Clark 2013-06-10 20:08 ` Russell King - ARM Linux 2013-06-10 20:08 ` Russell King - ARM Linux 2013-06-10 21:01 ` Rob Clark 2013-06-10 21:01 ` Rob Clark 2013-06-10 21:15 ` Russell King - ARM Linux 2013-06-10 21:15 ` Russell King - ARM Linux 2013-06-10 22:49 ` Rob Clark 2013-06-10 22:49 ` Rob Clark 2013-06-10 22:56 ` Russell King - ARM Linux 2013-06-10 22:56 ` Russell King - ARM Linux 2013-06-10 23:17 ` Rob Clark 2013-06-10 23:17 ` Rob Clark 2013-06-10 23:24 ` Dave Airlie 2013-06-10 23:24 ` Dave Airlie 2013-06-10 23:35 ` Rob Clark 2013-06-10 23:35 ` Rob Clark 2013-06-10 23:36 ` Russell King - ARM Linux 2013-06-10 23:36 ` Russell King - ARM Linux 2013-06-10 23:48 ` Dave Airlie 2013-06-10 23:48 ` Dave Airlie 2013-06-10 23:56 ` Russell King - ARM Linux 2013-06-10 23:56 ` Russell King - ARM Linux 2013-06-12 13:48 ` Russell King - ARM Linux 2013-06-12 13:48 ` Russell King - ARM Linux 2013-06-12 13:56 ` Rob Clark 2013-06-12 13:56 ` Rob Clark 2013-06-12 16:49 ` Russell King - ARM Linux 2013-06-12 16:49 ` Russell King - ARM Linux 2013-06-12 17:05 ` Russell King - ARM Linux 2013-06-12 17:05 ` Russell King - ARM Linux 2013-06-12 19:40 ` Russell King - ARM Linux 2013-06-12 19:40 ` Russell King - ARM Linux 2013-06-12 23:00 ` Russell King - ARM Linux 2013-06-12 23:00 ` Russell King - ARM Linux 2013-06-13 0:17 ` Rob Clark 2013-06-13 0:17 ` Rob Clark 2013-06-13 11:19 ` Russell King - ARM Linux 2013-06-13 11:19 ` Russell King - ARM Linux 2013-06-13 11:50 ` Russell King - ARM Linux 2013-06-13 11:50 ` Russell King - ARM Linux 2013-06-13 13:03 ` Russell King - ARM Linux 2013-06-13 13:03 ` Russell King - ARM Linux 2013-06-14 14:23 ` Daniel Vetter 2013-06-14 14:23 ` Daniel Vetter 2013-06-14 14:42 ` Russell King - ARM Linux 2013-06-14 14:42 ` Russell King - ARM Linux 2013-06-14 19:50 ` Daniel Vetter 2013-06-14 19:50 ` Daniel Vetter 2013-06-14 22:15 ` Russell King - ARM Linux 2013-06-14 22:15 ` Russell King - ARM Linux 2013-06-14 22:36 ` Daniel Vetter 2013-06-14 22:36 ` Daniel Vetter 2013-06-14 13:53 ` Daniel Vetter 2013-06-14 13:53 ` Daniel Vetter 2013-06-14 14:27 ` Russell King - ARM Linux 2013-06-14 14:27 ` Russell King - ARM Linux 2013-06-13 12:52 ` Rob Clark 2013-06-13 12:52 ` Rob Clark 2013-06-13 12:58 ` Daniel Vetter 2013-06-13 12:58 ` Daniel Vetter 2013-06-12 20:04 ` Rob Clark 2013-06-12 20:04 ` Rob Clark 2013-06-10 23:38 ` Russell King - ARM Linux 2013-06-10 23:38 ` Russell King - ARM Linux 2013-06-10 23:49 ` Rob Clark 2013-06-10 23:49 ` Rob Clark 2013-06-10 22:01 ` Daniel Vetter 2013-06-10 22:01 ` Daniel Vetter 2013-06-10 22:32 ` Russell King - ARM Linux 2013-06-10 22:32 ` Russell King - ARM Linux 2013-06-10 23:12 ` Rob Clark 2013-06-10 23:12 ` Rob Clark 2013-06-11 7:33 ` Daniel Vetter 2013-06-11 7:33 ` Daniel Vetter 2013-06-11 8:08 ` Ville Syrjälä 2013-06-11 8:08 ` Ville Syrjälä 2013-06-10 21:38 ` Russell King - ARM Linux 2013-06-10 21:38 ` Russell King - ARM Linux 2013-06-09 19:30 ` [PATCH RFC 3/8] drm/i2c: nxp-tda998x: fix EDID reading on TDA19988 devices Russell King 2013-06-09 19:30 ` Russell King 2013-06-09 19:31 ` Russell King [this message] 2013-06-09 19:31 ` [PATCH RFC 4/8] drm/i2c: nxp-tda998x: ensure VIP output mux is properly set Russell King 2013-06-09 19:32 ` [PATCH RFC 5/8] drm/i2c: nxp-tda998x: fix npix/nline programming Russell King 2013-06-09 19:32 ` Russell King 2013-06-09 20:02 ` Sebastian Hesselbarth 2013-06-09 20:02 ` Sebastian Hesselbarth 2013-06-09 19:34 ` [PATCH RFC 6/8] drm/i2c: nxp-tda998x: prepare for video input configuration Russell King 2013-06-09 19:34 ` Russell King 2013-06-09 19:35 ` [PATCH RFC 7/8] drm/i2c: nxp-tda998x: add video and audio " Russell King 2013-06-09 19:35 ` Russell King 2013-06-09 19:36 ` [PATCH RFC 8/8] DRM: Armada: add support for drm tda19988 driver Russell King 2013-06-09 19:36 ` Russell King 2013-06-09 19:43 ` [RFC v2 0/8] rmk's Dove DRM/TDA19988 Cubox driver Russell King - ARM Linux 2013-06-09 19:43 ` Russell King - ARM Linux 2013-06-10 22:47 ` [RFC v3 0/4] " Russell King - ARM Linux 2013-06-10 22:47 ` Russell King - ARM Linux 2013-06-10 22:48 ` [PATCH RFC v3 1/4] DRM: Armada: Add Armada DRM driver Russell King 2013-06-10 22:51 ` Russell King 2013-06-10 22:49 ` [PATCH RFC v3 2/4] DRM: Armada: Add support for hardware cursors Russell King 2013-06-10 22:49 ` Russell King 2013-06-10 22:50 ` [PATCH RFC v3 3/4] DRM: Armada: convert Armada hardware cursor support to RGB+transparency Russell King 2013-06-10 22:50 ` Russell King 2013-06-10 22:51 ` [PATCH RFC v3 4/4] DRM: Armada: convert hardware cursor support to 64x32 or 32x64 ARGB Russell King 2013-06-10 22:51 ` Russell King
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=E1UllL8-00058Y-H3@rmk-PC.arm.linux.org.uk \ --to=rmk+kernel@arm.linux.org.uk \ --cc=linux-arm-kernel@lists.infradead.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.