From mboxrd@z Thu Jan 1 00:00:00 1970 From: Greg Kroah-Hartman Subject: [PATCH 4.9 81/87] drm/bridge: adv7511: Re-write the i2c address before EDID probing Date: Mon, 13 Nov 2017 13:56:38 +0100 Message-ID: <20171113125622.533445512@linuxfoundation.org> References: <20171113125615.304035578@linuxfoundation.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail.linuxfoundation.org (mail.linuxfoundation.org [140.211.169.12]) by gabe.freedesktop.org (Postfix) with ESMTPS id 24AAB6E0F3 for ; Mon, 13 Nov 2017 13:03:03 +0000 (UTC) In-Reply-To: <20171113125615.304035578@linuxfoundation.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: linux-kernel@vger.kernel.org Cc: Nhan Nguyen , David Airlie , Greg Kroah-Hartman , dri-devel@lists.freedesktop.org, stable@vger.kernel.org, Wolfram Sang , Laurent Pinchart List-Id: dri-devel@lists.freedesktop.org NC45LXN0YWJsZSByZXZpZXcgcGF0Y2guICBJZiBhbnlvbmUgaGFzIGFueSBvYmplY3Rpb25zLCBw bGVhc2UgbGV0IG1lIGtub3cuCgotLS0tLS0tLS0tLS0tLS0tLS0KCkZyb206IEpvaG4gU3R1bHR6 IDxqb2huLnN0dWx0ekBsaW5hcm8ub3JnPgoKY29tbWl0IDM1ODdjODU2Njc1YzQ1ODA5MDEwYzJj ZWU1YjIxMDk2ZjZlOGU5MzggdXBzdHJlYW0uCgpJJ3ZlIGZvdW5kIHRoYXQgYnkganVzdCB0dXJu aW5nIHRoZSBjaGlwIG9uIGFuZCBvZmYgdmlhIHRoZQpQT1dFUl9ET1dOIHJlZ2lzdGVyLCBJIGVu ZCB1cCBnZXR0aW5nIGkyY190cmFuc2ZlciBlcnJvcnMgb24KSGlLZXkuCgpJbnZlc3RpZ2F0aW5n IGZ1cnRoZXIsIGl0IHR1cm5zIG91dCB0aGF0IHNvbWUgb2YgdGhlIHJlZ2lzdGVyCnN0YXRlIGlu IGhhcmR3YXJlIGlzIGdldHRpbmcgbG9zdCwgYXMgdGhlIGRldmljZSByZWdpc3RlcnMgYXJlCnJl c2V0IHdoZW4gdGhlIGNoaXAgaXMgcG93ZXJlZCBkb3duLgoKVGh1cyB0aGlzIHBhdGNoIHNpbXBs eSByZS13cml0ZXMgdGhlIGkyYyBhZGRyZXNzIHRvIHRoZQpBRFY3NTExX1JFR19FRElEX0kyQ19B RERSIHJlZ2lzdGVyIHRvIGVuc3VyZSBpdHMgcHJvcGVybHkgc2V0CmJlZm9yZSB3ZSB0cnkgdG8g cmVhZCB0aGUgRURJRCBkYXRhLgoKQ2M6IERhdmlkIEFpcmxpZSA8YWlybGllZEBsaW51eC5pZT4K Q2M6IEFyY2hpdCBUYW5lamEgPGFyY2hpdHRAY29kZWF1cm9yYS5vcmc+CkNjOiBXb2xmcmFtIFNh bmcgPHdzYStyZW5lc2FzQHNhbmctZW5naW5lZXJpbmcuY29tPgpDYzogTGFycy1QZXRlciBDbGF1 c2VuIDxsYXJzQG1ldGFmb28uZGU+CkNjOiBMYXVyZW50IFBpbmNoYXJ0IDxsYXVyZW50LnBpbmNo YXJ0QGlkZWFzb25ib2FyZC5jb20+CkNjOiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn ClJldmlld2VkLWJ5OiBMYXVyZW50IFBpbmNoYXJ0IDxsYXVyZW50LnBpbmNoYXJ0QGlkZWFzb25i b2FyZC5jb20+ClRlc3RlZC1ieTogTGF1cmVudCBQaW5jaGFydCA8bGF1cmVudC5waW5jaGFydEBp ZGVhc29uYm9hcmQuY29tPgpTaWduZWQtb2ZmLWJ5OiBKb2huIFN0dWx0eiA8am9obi5zdHVsdHpA bGluYXJvLm9yZz4KU2lnbmVkLW9mZi1ieTogQXJjaGl0IFRhbmVqYSA8YXJjaGl0dEBjb2RlYXVy b3JhLm9yZz4KTGluazogaHR0cDovL3BhdGNod29yay5mcmVlZGVza3RvcC5vcmcvcGF0Y2gvbXNn aWQvMTQ4NDYxNDM3Mi0xNTM0Mi03LWdpdC1zZW5kLWVtYWlsLWpvaG4uc3R1bHR6QGxpbmFyby5v cmcKU2lnbmVkLW9mZi1ieTogTmhhbiBOZ3V5ZW4gPG5oYW4ubmd1eWVuLnliQHJlbmVzYXMuY29t PgpTaWduZWQtb2ZmLWJ5OiBHcmVnIEtyb2FoLUhhcnRtYW4gPGdyZWdraEBsaW51eGZvdW5kYXRp b24ub3JnPgoKLS0tCiBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2Fkdjc1MTEvYWR2NzUxMV9kcnYu YyB8ICAgMTAgKysrKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgMSBk ZWxldGlvbigtKQoKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hZHY3NTExL2Fkdjc1MTFf ZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hZHY3NTExL2Fkdjc1MTFfZHJ2LmMK QEAgLTU3Myw5ICs1NzMsMTcgQEAgc3RhdGljIGludCBhZHY3NTExX2dldF9tb2RlcyhzdHJ1Y3Qg YWR2NwogCXVuc2lnbmVkIGludCBjb3VudDsKIAogCS8qIFJlYWRpbmcgdGhlIEVESUQgb25seSB3 b3JrcyBpZiB0aGUgZGV2aWNlIGlzIHBvd2VyZWQgKi8KLQlpZiAoIWFkdjc1MTEtPnBvd2VyZWQp CisJaWYgKCFhZHY3NTExLT5wb3dlcmVkKSB7CisJCXVuc2lnbmVkIGludCBlZGlkX2kyY19hZGRy ID0KKwkJCQkJKGFkdjc1MTEtPmkyY19tYWluLT5hZGRyIDw8IDEpICsgNDsKKwogCQlfX2Fkdjc1 MTFfcG93ZXJfb24oYWR2NzUxMSk7CiAKKwkJLyogUmVzZXQgdGhlIEVESURfSTJDX0FERFIgcmVn aXN0ZXIgYXMgaXQgbWlnaHQgYmUgY2xlYXJlZCAqLworCQlyZWdtYXBfd3JpdGUoYWR2NzUxMS0+ cmVnbWFwLCBBRFY3NTExX1JFR19FRElEX0kyQ19BRERSLAorCQkJICAgICBlZGlkX2kyY19hZGRy KTsKKwl9CisKIAllZGlkID0gZHJtX2RvX2dldF9lZGlkKGNvbm5lY3RvciwgYWR2NzUxMV9nZXRf ZWRpZF9ibG9jaywgYWR2NzUxMSk7CiAKIAlpZiAoIWFkdjc1MTEtPnBvd2VyZWQpCgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxp bmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755018AbdKMNDH (ORCPT ); Mon, 13 Nov 2017 08:03:07 -0500 Received: from mail.linuxfoundation.org ([140.211.169.12]:51352 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755000AbdKMNDD (ORCPT ); Mon, 13 Nov 2017 08:03:03 -0500 From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, David Airlie , Archit Taneja , Wolfram Sang , Lars-Peter Clausen , Laurent Pinchart , dri-devel@lists.freedesktop.org, John Stultz , Nhan Nguyen Subject: [PATCH 4.9 81/87] drm/bridge: adv7511: Re-write the i2c address before EDID probing Date: Mon, 13 Nov 2017 13:56:38 +0100 Message-Id: <20171113125622.533445512@linuxfoundation.org> X-Mailer: git-send-email 2.15.0 In-Reply-To: <20171113125615.304035578@linuxfoundation.org> References: <20171113125615.304035578@linuxfoundation.org> User-Agent: quilt/0.65 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.9-stable review patch. If anyone has any objections, please let me know. ------------------ From: John Stultz commit 3587c856675c45809010c2cee5b21096f6e8e938 upstream. I've found that by just turning the chip on and off via the POWER_DOWN register, I end up getting i2c_transfer errors on HiKey. Investigating further, it turns out that some of the register state in hardware is getting lost, as the device registers are reset when the chip is powered down. Thus this patch simply re-writes the i2c address to the ADV7511_REG_EDID_I2C_ADDR register to ensure its properly set before we try to read the EDID data. Cc: David Airlie Cc: Archit Taneja Cc: Wolfram Sang Cc: Lars-Peter Clausen Cc: Laurent Pinchart Cc: dri-devel@lists.freedesktop.org Reviewed-by: Laurent Pinchart Tested-by: Laurent Pinchart Signed-off-by: John Stultz Signed-off-by: Archit Taneja Link: http://patchwork.freedesktop.org/patch/msgid/1484614372-15342-7-git-send-email-john.stultz@linaro.org Signed-off-by: Nhan Nguyen Signed-off-by: Greg Kroah-Hartman --- drivers/gpu/drm/bridge/adv7511/adv7511_drv.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) --- a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c +++ b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c @@ -573,9 +573,17 @@ static int adv7511_get_modes(struct adv7 unsigned int count; /* Reading the EDID only works if the device is powered */ - if (!adv7511->powered) + if (!adv7511->powered) { + unsigned int edid_i2c_addr = + (adv7511->i2c_main->addr << 1) + 4; + __adv7511_power_on(adv7511); + /* Reset the EDID_I2C_ADDR register as it might be cleared */ + regmap_write(adv7511->regmap, ADV7511_REG_EDID_I2C_ADDR, + edid_i2c_addr); + } + edid = drm_do_get_edid(connector, adv7511_get_edid_block, adv7511); if (!adv7511->powered)