From mboxrd@z Thu Jan 1 00:00:00 1970 From: moinejf@free.fr (Jean-Francois Moine) Date: Thu, 9 Jan 2014 11:59:41 +0100 Subject: [PATCH v2 9/28] drm/i2c: tda998x: don't read write-only registers Message-ID: <20140109115941.30e67a37@armhf> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org This patch takes care of the write-only registers of the tda998x. Signed-off-by: Jean-Francois Moine --- drivers/gpu/drm/i2c/tda998x_drv.c | 44 +++++++++++----------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/drivers/gpu/drm/i2c/tda998x_drv.c b/drivers/gpu/drm/i2c/tda998x_drv.c index 99c3796..c3f0d70 100644 --- a/drivers/gpu/drm/i2c/tda998x_drv.c +++ b/drivers/gpu/drm/i2c/tda998x_drv.c @@ -487,9 +487,9 @@ static void tda998x_reset(struct tda998x_priv *priv) { /* reset audio and i2c master: */ - reg_set(priv, REG_SOFTRESET, SOFTRESET_AUDIO | SOFTRESET_I2C_MASTER); + reg_write(priv, REG_SOFTRESET, SOFTRESET_AUDIO | SOFTRESET_I2C_MASTER); msleep(50); - reg_clear(priv, REG_SOFTRESET, SOFTRESET_AUDIO | SOFTRESET_I2C_MASTER); + reg_write(priv, REG_SOFTRESET, 0); msleep(50); /* reset transmitter: */ @@ -846,7 +846,7 @@ tda998x_encoder_mode_set(struct drm_encoder *encoder, reg_set(priv, REG_AIP_CNTRL_0, AIP_CNTRL_0_RST_FIFO); /* set HDMI HDCP mode off: */ - reg_set(priv, REG_TBG_CNTRL_1, TBG_CNTRL_1_DWIN_DIS); + reg_write(priv, REG_TBG_CNTRL_1, TBG_CNTRL_1_DWIN_DIS); reg_clear(priv, REG_TX33, TX33_HDMI); reg_write(priv, REG_ENC_CNTRL, ENC_CNTRL_CTL_CODE(0)); @@ -873,38 +873,28 @@ tda998x_encoder_mode_set(struct drm_encoder *encoder, PLL_SERIAL_2_SRL_PR(rep)); /* set color matrix bypass flag: */ - reg_set(priv, REG_MAT_CONTRL, MAT_CONTRL_MAT_BP); + reg_write(priv, REG_MAT_CONTRL, MAT_CONTRL_MAT_BP | + MAT_CONTRL_MAT_SC(1)); /* set BIAS tmds value: */ reg_write(priv, REG_ANA_GENERAL, 0x09); - reg_clear(priv, REG_TBG_CNTRL_0, TBG_CNTRL_0_SYNC_MTHD); + reg_write(priv, REG_TBG_CNTRL_0, 0); /* * Sync on rising HSYNC/VSYNC */ - reg_write(priv, REG_VIP_CNTRL_3, 0); - reg_set(priv, REG_VIP_CNTRL_3, VIP_CNTRL_3_SYNC_HS); + reg = VIP_CNTRL_3_SYNC_HS; /* * TDA19988 requires high-active sync at input stage, * so invert low-active sync provided by master encoder here */ if (mode->flags & DRM_MODE_FLAG_NHSYNC) - reg_set(priv, REG_VIP_CNTRL_3, VIP_CNTRL_3_H_TGL); + reg |= VIP_CNTRL_3_H_TGL; if (mode->flags & DRM_MODE_FLAG_NVSYNC) - reg_set(priv, REG_VIP_CNTRL_3, VIP_CNTRL_3_V_TGL); - - /* - * Always generate sync polarity relative to input sync and - * revert input stage toggled sync at output stage - */ - reg = TBG_CNTRL_1_TGL_EN; - if (mode->flags & DRM_MODE_FLAG_NHSYNC) - reg |= TBG_CNTRL_1_H_TGL; - if (mode->flags & DRM_MODE_FLAG_NVSYNC) - reg |= TBG_CNTRL_1_V_TGL; - reg_write(priv, REG_TBG_CNTRL_1, reg); + reg |= VIP_CNTRL_3_V_TGL; + reg_write(priv, REG_VIP_CNTRL_3, reg); reg_write(priv, REG_VIDFORMAT, 0x00); reg_write16(priv, REG_REFPIX_MSB, ref_pix); @@ -936,10 +926,22 @@ tda998x_encoder_mode_set(struct drm_encoder *encoder, /* must be last register set: */ reg_clear(priv, REG_TBG_CNTRL_0, TBG_CNTRL_0_SYNC_ONCE); + /* + * Always generate sync polarity relative to input sync and + * revert input stage toggled sync at output stage + */ + reg = TBG_CNTRL_1_DWIN_DIS | TBG_CNTRL_1_TGL_EN; + if (mode->flags & DRM_MODE_FLAG_NHSYNC) + reg |= TBG_CNTRL_1_H_TGL; + if (mode->flags & DRM_MODE_FLAG_NVSYNC) + reg |= TBG_CNTRL_1_V_TGL; + reg_write(priv, REG_TBG_CNTRL_1, reg); + /* Only setup the info frames if the sink is HDMI */ if (priv->is_hdmi_sink) { /* We need to turn HDMI HDCP stuff on to get audio through */ - reg_clear(priv, REG_TBG_CNTRL_1, TBG_CNTRL_1_DWIN_DIS); + reg &= ~TBG_CNTRL_1_DWIN_DIS; + reg_write(priv, REG_TBG_CNTRL_1, reg); reg_write(priv, REG_ENC_CNTRL, ENC_CNTRL_CTL_CODE(1)); reg_set(priv, REG_TX33, TX33_HDMI); -- 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: [PATCH v2 9/28] drm/i2c: tda998x: don't read write-only registers Date: Thu, 9 Jan 2014 11:59:41 +0100 Message-ID: <20140109115941.30e67a37@armhf> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from smtp1-g21.free.fr (smtp1-g21.free.fr [212.27.42.1]) by gabe.freedesktop.org (Postfix) with ESMTP id ED020FBCD9 for ; Thu, 9 Jan 2014 03:10:24 -0800 (PST) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces@lists.freedesktop.org Errors-To: dri-devel-bounces@lists.freedesktop.org To: dri-devel@lists.freedesktop.org Cc: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org List-Id: dri-devel@lists.freedesktop.org VGhpcyBwYXRjaCB0YWtlcyBjYXJlIG9mIHRoZSB3cml0ZS1vbmx5IHJlZ2lzdGVycyBvZiB0aGUg dGRhOTk4eC4KClNpZ25lZC1vZmYtYnk6IEplYW4tRnJhbmNvaXMgTW9pbmUgPG1vaW5lamZAZnJl ZS5mcj4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTJjL3RkYTk5OHhfZHJ2LmMgfCA0NCArKysrKysr KysrKy0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjMgaW5zZXJ0aW9ucygrKSwgMjEgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2kyYy90ZGE5OTh4X2Rydi5j IGIvZHJpdmVycy9ncHUvZHJtL2kyYy90ZGE5OTh4X2Rydi5jCmluZGV4IDk5YzM3OTYuLmMzZjBk NzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pMmMvdGRhOTk4eF9kcnYuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTJjL3RkYTk5OHhfZHJ2LmMKQEAgLTQ4Nyw5ICs0ODcsOSBAQCBzdGF0 aWMgdm9pZAogdGRhOTk4eF9yZXNldChzdHJ1Y3QgdGRhOTk4eF9wcml2ICpwcml2KQogewogCS8q IHJlc2V0IGF1ZGlvIGFuZCBpMmMgbWFzdGVyOiAqLwotCXJlZ19zZXQocHJpdiwgUkVHX1NPRlRS RVNFVCwgU09GVFJFU0VUX0FVRElPIHwgU09GVFJFU0VUX0kyQ19NQVNURVIpOworCXJlZ193cml0 ZShwcml2LCBSRUdfU09GVFJFU0VULCBTT0ZUUkVTRVRfQVVESU8gfCBTT0ZUUkVTRVRfSTJDX01B U1RFUik7CiAJbXNsZWVwKDUwKTsKLQlyZWdfY2xlYXIocHJpdiwgUkVHX1NPRlRSRVNFVCwgU09G VFJFU0VUX0FVRElPIHwgU09GVFJFU0VUX0kyQ19NQVNURVIpOworCXJlZ193cml0ZShwcml2LCBS RUdfU09GVFJFU0VULCAwKTsKIAltc2xlZXAoNTApOwogCiAJLyogcmVzZXQgdHJhbnNtaXR0ZXI6 ICovCkBAIC04NDYsNyArODQ2LDcgQEAgdGRhOTk4eF9lbmNvZGVyX21vZGVfc2V0KHN0cnVjdCBk cm1fZW5jb2RlciAqZW5jb2RlciwKIAlyZWdfc2V0KHByaXYsIFJFR19BSVBfQ05UUkxfMCwgQUlQ X0NOVFJMXzBfUlNUX0ZJRk8pOwogCiAJLyogc2V0IEhETUkgSERDUCBtb2RlIG9mZjogKi8KLQly ZWdfc2V0KHByaXYsIFJFR19UQkdfQ05UUkxfMSwgVEJHX0NOVFJMXzFfRFdJTl9ESVMpOworCXJl Z193cml0ZShwcml2LCBSRUdfVEJHX0NOVFJMXzEsIFRCR19DTlRSTF8xX0RXSU5fRElTKTsKIAly ZWdfY2xlYXIocHJpdiwgUkVHX1RYMzMsIFRYMzNfSERNSSk7CiAJcmVnX3dyaXRlKHByaXYsIFJF R19FTkNfQ05UUkwsIEVOQ19DTlRSTF9DVExfQ09ERSgwKSk7CiAKQEAgLTg3MywzOCArODczLDI4 IEBAIHRkYTk5OHhfZW5jb2Rlcl9tb2RlX3NldChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIs CiAJCQlQTExfU0VSSUFMXzJfU1JMX1BSKHJlcCkpOwogCiAJLyogc2V0IGNvbG9yIG1hdHJpeCBi eXBhc3MgZmxhZzogKi8KLQlyZWdfc2V0KHByaXYsIFJFR19NQVRfQ09OVFJMLCBNQVRfQ09OVFJM X01BVF9CUCk7CisJcmVnX3dyaXRlKHByaXYsIFJFR19NQVRfQ09OVFJMLCBNQVRfQ09OVFJMX01B VF9CUCB8CisJCQkJTUFUX0NPTlRSTF9NQVRfU0MoMSkpOwogCiAJLyogc2V0IEJJQVMgdG1kcyB2 YWx1ZTogKi8KIAlyZWdfd3JpdGUocHJpdiwgUkVHX0FOQV9HRU5FUkFMLCAweDA5KTsKIAotCXJl Z19jbGVhcihwcml2LCBSRUdfVEJHX0NOVFJMXzAsIFRCR19DTlRSTF8wX1NZTkNfTVRIRCk7CisJ cmVnX3dyaXRlKHByaXYsIFJFR19UQkdfQ05UUkxfMCwgMCk7CiAKIAkvKgogCSAqIFN5bmMgb24g cmlzaW5nIEhTWU5DL1ZTWU5DCiAJICovCi0JcmVnX3dyaXRlKHByaXYsIFJFR19WSVBfQ05UUkxf MywgMCk7Ci0JcmVnX3NldChwcml2LCBSRUdfVklQX0NOVFJMXzMsIFZJUF9DTlRSTF8zX1NZTkNf SFMpOworCXJlZyA9IFZJUF9DTlRSTF8zX1NZTkNfSFM7CiAKIAkvKgogCSAqIFREQTE5OTg4IHJl cXVpcmVzIGhpZ2gtYWN0aXZlIHN5bmMgYXQgaW5wdXQgc3RhZ2UsCiAJICogc28gaW52ZXJ0IGxv dy1hY3RpdmUgc3luYyBwcm92aWRlZCBieSBtYXN0ZXIgZW5jb2RlciBoZXJlCiAJICovCiAJaWYg KG1vZGUtPmZsYWdzICYgRFJNX01PREVfRkxBR19OSFNZTkMpCi0JCXJlZ19zZXQocHJpdiwgUkVH X1ZJUF9DTlRSTF8zLCBWSVBfQ05UUkxfM19IX1RHTCk7CisJCXJlZyB8PSBWSVBfQ05UUkxfM19I X1RHTDsKIAlpZiAobW9kZS0+ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX05WU1lOQykKLQkJcmVnX3Nl dChwcml2LCBSRUdfVklQX0NOVFJMXzMsIFZJUF9DTlRSTF8zX1ZfVEdMKTsKLQotCS8qCi0JICog QWx3YXlzIGdlbmVyYXRlIHN5bmMgcG9sYXJpdHkgcmVsYXRpdmUgdG8gaW5wdXQgc3luYyBhbmQK LQkgKiByZXZlcnQgaW5wdXQgc3RhZ2UgdG9nZ2xlZCBzeW5jIGF0IG91dHB1dCBzdGFnZQotCSAq LwotCXJlZyA9IFRCR19DTlRSTF8xX1RHTF9FTjsKLQlpZiAobW9kZS0+ZmxhZ3MgJiBEUk1fTU9E RV9GTEFHX05IU1lOQykKLQkJcmVnIHw9IFRCR19DTlRSTF8xX0hfVEdMOwotCWlmIChtb2RlLT5m bGFncyAmIERSTV9NT0RFX0ZMQUdfTlZTWU5DKQotCQlyZWcgfD0gVEJHX0NOVFJMXzFfVl9UR0w7 Ci0JcmVnX3dyaXRlKHByaXYsIFJFR19UQkdfQ05UUkxfMSwgcmVnKTsKKwkJcmVnIHw9IFZJUF9D TlRSTF8zX1ZfVEdMOworCXJlZ193cml0ZShwcml2LCBSRUdfVklQX0NOVFJMXzMsIHJlZyk7CiAK IAlyZWdfd3JpdGUocHJpdiwgUkVHX1ZJREZPUk1BVCwgMHgwMCk7CiAJcmVnX3dyaXRlMTYocHJp diwgUkVHX1JFRlBJWF9NU0IsIHJlZl9waXgpOwpAQCAtOTM2LDEwICs5MjYsMjIgQEAgdGRhOTk4 eF9lbmNvZGVyX21vZGVfc2V0KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKIAkvKiBtdXN0 IGJlIGxhc3QgcmVnaXN0ZXIgc2V0OiAqLwogCXJlZ19jbGVhcihwcml2LCBSRUdfVEJHX0NOVFJM XzAsIFRCR19DTlRSTF8wX1NZTkNfT05DRSk7CiAKKwkvKgorCSAqIEFsd2F5cyBnZW5lcmF0ZSBz eW5jIHBvbGFyaXR5IHJlbGF0aXZlIHRvIGlucHV0IHN5bmMgYW5kCisJICogcmV2ZXJ0IGlucHV0 IHN0YWdlIHRvZ2dsZWQgc3luYyBhdCBvdXRwdXQgc3RhZ2UKKwkgKi8KKwlyZWcgPSBUQkdfQ05U UkxfMV9EV0lOX0RJUyB8IFRCR19DTlRSTF8xX1RHTF9FTjsKKwlpZiAobW9kZS0+ZmxhZ3MgJiBE Uk1fTU9ERV9GTEFHX05IU1lOQykKKwkJcmVnIHw9IFRCR19DTlRSTF8xX0hfVEdMOworCWlmICht b2RlLT5mbGFncyAmIERSTV9NT0RFX0ZMQUdfTlZTWU5DKQorCQlyZWcgfD0gVEJHX0NOVFJMXzFf Vl9UR0w7CisJcmVnX3dyaXRlKHByaXYsIFJFR19UQkdfQ05UUkxfMSwgcmVnKTsKKwogCS8qIE9u bHkgc2V0dXAgdGhlIGluZm8gZnJhbWVzIGlmIHRoZSBzaW5rIGlzIEhETUkgKi8KIAlpZiAocHJp di0+aXNfaGRtaV9zaW5rKSB7CiAJCS8qIFdlIG5lZWQgdG8gdHVybiBIRE1JIEhEQ1Agc3R1ZmYg b24gdG8gZ2V0IGF1ZGlvIHRocm91Z2ggKi8KLQkJcmVnX2NsZWFyKHByaXYsIFJFR19UQkdfQ05U UkxfMSwgVEJHX0NOVFJMXzFfRFdJTl9ESVMpOworCQlyZWcgJj0gflRCR19DTlRSTF8xX0RXSU5f RElTOworCQlyZWdfd3JpdGUocHJpdiwgUkVHX1RCR19DTlRSTF8xLCByZWcpOwogCQlyZWdfd3Jp dGUocHJpdiwgUkVHX0VOQ19DTlRSTCwgRU5DX0NOVFJMX0NUTF9DT0RFKDEpKTsKIAkJcmVnX3Nl dChwcml2LCBSRUdfVFgzMywgVFgzM19IRE1JKTsKIAoKLS0gCktlbiBhciBjJ2hlbnRhw7EJfAkg ICAgICAqKiBCcmVpemggaGEgTGludXggYXRhdiEgKioKSmVmCQl8CQlodHRwOi8vbW9pbmVqZi5m cmVlLmZyLwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpk cmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755280AbaAILKb (ORCPT ); Thu, 9 Jan 2014 06:10:31 -0500 Received: from smtp1-g21.free.fr ([212.27.42.1]:60885 "EHLO smtp1-g21.free.fr" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755207AbaAILK0 convert rfc822-to-8bit (ORCPT ); Thu, 9 Jan 2014 06:10:26 -0500 Date: Thu, 9 Jan 2014 11:59:41 +0100 From: Jean-Francois Moine To: dri-devel@lists.freedesktop.org Cc: Dave Airlie , Rob Clark , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 9/28] drm/i2c: tda998x: don't read write-only registers Message-ID: <20140109115941.30e67a37@armhf> X-Mailer: Claws Mail 3.9.3 (GTK+ 2.24.22; arm-unknown-linux-gnueabihf) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch takes care of the write-only registers of the tda998x. Signed-off-by: Jean-Francois Moine --- drivers/gpu/drm/i2c/tda998x_drv.c | 44 +++++++++++----------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/drivers/gpu/drm/i2c/tda998x_drv.c b/drivers/gpu/drm/i2c/tda998x_drv.c index 99c3796..c3f0d70 100644 --- a/drivers/gpu/drm/i2c/tda998x_drv.c +++ b/drivers/gpu/drm/i2c/tda998x_drv.c @@ -487,9 +487,9 @@ static void tda998x_reset(struct tda998x_priv *priv) { /* reset audio and i2c master: */ - reg_set(priv, REG_SOFTRESET, SOFTRESET_AUDIO | SOFTRESET_I2C_MASTER); + reg_write(priv, REG_SOFTRESET, SOFTRESET_AUDIO | SOFTRESET_I2C_MASTER); msleep(50); - reg_clear(priv, REG_SOFTRESET, SOFTRESET_AUDIO | SOFTRESET_I2C_MASTER); + reg_write(priv, REG_SOFTRESET, 0); msleep(50); /* reset transmitter: */ @@ -846,7 +846,7 @@ tda998x_encoder_mode_set(struct drm_encoder *encoder, reg_set(priv, REG_AIP_CNTRL_0, AIP_CNTRL_0_RST_FIFO); /* set HDMI HDCP mode off: */ - reg_set(priv, REG_TBG_CNTRL_1, TBG_CNTRL_1_DWIN_DIS); + reg_write(priv, REG_TBG_CNTRL_1, TBG_CNTRL_1_DWIN_DIS); reg_clear(priv, REG_TX33, TX33_HDMI); reg_write(priv, REG_ENC_CNTRL, ENC_CNTRL_CTL_CODE(0)); @@ -873,38 +873,28 @@ tda998x_encoder_mode_set(struct drm_encoder *encoder, PLL_SERIAL_2_SRL_PR(rep)); /* set color matrix bypass flag: */ - reg_set(priv, REG_MAT_CONTRL, MAT_CONTRL_MAT_BP); + reg_write(priv, REG_MAT_CONTRL, MAT_CONTRL_MAT_BP | + MAT_CONTRL_MAT_SC(1)); /* set BIAS tmds value: */ reg_write(priv, REG_ANA_GENERAL, 0x09); - reg_clear(priv, REG_TBG_CNTRL_0, TBG_CNTRL_0_SYNC_MTHD); + reg_write(priv, REG_TBG_CNTRL_0, 0); /* * Sync on rising HSYNC/VSYNC */ - reg_write(priv, REG_VIP_CNTRL_3, 0); - reg_set(priv, REG_VIP_CNTRL_3, VIP_CNTRL_3_SYNC_HS); + reg = VIP_CNTRL_3_SYNC_HS; /* * TDA19988 requires high-active sync at input stage, * so invert low-active sync provided by master encoder here */ if (mode->flags & DRM_MODE_FLAG_NHSYNC) - reg_set(priv, REG_VIP_CNTRL_3, VIP_CNTRL_3_H_TGL); + reg |= VIP_CNTRL_3_H_TGL; if (mode->flags & DRM_MODE_FLAG_NVSYNC) - reg_set(priv, REG_VIP_CNTRL_3, VIP_CNTRL_3_V_TGL); - - /* - * Always generate sync polarity relative to input sync and - * revert input stage toggled sync at output stage - */ - reg = TBG_CNTRL_1_TGL_EN; - if (mode->flags & DRM_MODE_FLAG_NHSYNC) - reg |= TBG_CNTRL_1_H_TGL; - if (mode->flags & DRM_MODE_FLAG_NVSYNC) - reg |= TBG_CNTRL_1_V_TGL; - reg_write(priv, REG_TBG_CNTRL_1, reg); + reg |= VIP_CNTRL_3_V_TGL; + reg_write(priv, REG_VIP_CNTRL_3, reg); reg_write(priv, REG_VIDFORMAT, 0x00); reg_write16(priv, REG_REFPIX_MSB, ref_pix); @@ -936,10 +926,22 @@ tda998x_encoder_mode_set(struct drm_encoder *encoder, /* must be last register set: */ reg_clear(priv, REG_TBG_CNTRL_0, TBG_CNTRL_0_SYNC_ONCE); + /* + * Always generate sync polarity relative to input sync and + * revert input stage toggled sync at output stage + */ + reg = TBG_CNTRL_1_DWIN_DIS | TBG_CNTRL_1_TGL_EN; + if (mode->flags & DRM_MODE_FLAG_NHSYNC) + reg |= TBG_CNTRL_1_H_TGL; + if (mode->flags & DRM_MODE_FLAG_NVSYNC) + reg |= TBG_CNTRL_1_V_TGL; + reg_write(priv, REG_TBG_CNTRL_1, reg); + /* Only setup the info frames if the sink is HDMI */ if (priv->is_hdmi_sink) { /* We need to turn HDMI HDCP stuff on to get audio through */ - reg_clear(priv, REG_TBG_CNTRL_1, TBG_CNTRL_1_DWIN_DIS); + reg &= ~TBG_CNTRL_1_DWIN_DIS; + reg_write(priv, REG_TBG_CNTRL_1, reg); reg_write(priv, REG_ENC_CNTRL, ENC_CNTRL_CTL_CODE(1)); reg_set(priv, REG_TX33, TX33_HDMI); -- Ken ar c'hentaƱ | ** Breizh ha Linux atav! ** Jef | http://moinejf.free.fr/