From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCH 4/6] drm/bridge: adv7511: Rework adv7511_power_on/off() so they can be reused internally Date: Thu, 19 Jan 2017 01:04:21 +0200 Message-ID: <2635492.ECbE8UkFhx@avalon> References: <1484614372-15342-1-git-send-email-john.stultz@linaro.org> <1484614372-15342-5-git-send-email-john.stultz@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from galahad.ideasonboard.com (galahad.ideasonboard.com [IPv6:2001:4b98:dc2:45:216:3eff:febb:480d]) by gabe.freedesktop.org (Postfix) with ESMTPS id AB3D86E925 for ; Wed, 18 Jan 2017 23:04:02 +0000 (UTC) In-Reply-To: <1484614372-15342-5-git-send-email-john.stultz@linaro.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: John Stultz Cc: lkml , dri-devel@lists.freedesktop.org, Wolfram Sang List-Id: dri-devel@lists.freedesktop.org SGkgSm9obiwKClRoYW5rIHlvdSBmb3IgdGhlIHBhdGNoLgoKT24gTW9uZGF5IDE2IEphbiAyMDE3 IDE2OjUyOjUwIEpvaG4gU3R1bHR6IHdyb3RlOgo+IEluIGNoYXNpbmcgZG93biBpc3N1ZXMgd2l0 aCBFRElEIHByb2JpbmcsIEkgZm91bmQgc29tZQo+IGR1cGxpY2F0ZWQgYnV0IGluY29tcGxldGUg bG9naWMgdXNlZCB0byBwb3dlciB0aGUgY2hpcCBvbiBhbmQKPiBvZmYuCj4gCj4gVGhpcyBwYXRj aCByZWZhY3RvcnMgdGhlIGFkdjc1MTFfcG93ZXJfb24vb2ZmIGZ1bmN0aW9ucywgc28KPiB0aGV5 IGNhbiBiZSB1c2VkIGZvciBpbnRlcm5hbCBuZWVkcy4KPiAKPiBDYzogRGF2aWQgQWlybGllIDxh aXJsaWVkQGxpbnV4LmllPgo+IENjOiBBcmNoaXQgVGFuZWphIDxhcmNoaXR0QGNvZGVhdXJvcmEu b3JnPgo+IENjOiBXb2xmcmFtIFNhbmcgPHdzYStyZW5lc2FzQHNhbmctZW5naW5lZXJpbmcuY29t Pgo+IENjOiBMYXJzLVBldGVyIENsYXVzZW4gPGxhcnNAbWV0YWZvby5kZT4KPiBDYzogTGF1cmVu dCBQaW5jaGFydCA8bGF1cmVudC5waW5jaGFydEBpZGVhc29uYm9hcmQuY29tPgo+IENjOiBkcmkt ZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gU2lnbmVkLW9mZi1ieTogSm9obiBTdHVsdHog PGpvaG4uc3R1bHR6QGxpbmFyby5vcmc+CgpSZXZpZXdlZC1ieTogTGF1cmVudCBQaW5jaGFydCA8 bGF1cmVudC5waW5jaGFydEBpZGVhc29uYm9hcmQuY29tPgoKPiAtLS0KPiB2NDogTW92ZSB0aGUg cmVnY2FjaGVfc3luYygpIGNhbGwgb3V0c2lkZSB0aGUgc2hhcmVkCj4gICAgIGltcGxlbWVudGF0 aW9uIGFzIHdlIGRvbid0IHdhbnQgdG8gY2FsbCBpdCBvbiBFRElEIHByb2JpbmcsCj4gICAgIGFz IHN1Z2dlc3RlZCBieSBMYXVyZW50Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYWR2 NzUxMS9hZHY3NTExX2Rydi5jIHwgMTUgKysrKysrKysrKystLS0tCj4gIDEgZmlsZSBjaGFuZ2Vk LCAxMSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vYnJpZGdlL2Fkdjc1MTEvYWR2NzUxMV9kcnYuYwo+IGIvZHJpdmVycy9ncHUv ZHJtL2JyaWRnZS9hZHY3NTExL2Fkdjc1MTFfZHJ2LmMgaW5kZXggNDA1ZTQ2MC4uMTJmMjg3Ngo+ IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYWR2NzUxMS9hZHY3NTExX2Ry di5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hZHY3NTExL2Fkdjc1MTFfZHJ2LmMK PiBAQCAtMzI1LDcgKzMyNSw3IEBAIHN0YXRpYyB2b2lkIGFkdjc1MTFfc2V0X2xpbmtfY29uZmln KHN0cnVjdCBhZHY3NTExCj4gKmFkdjc1MTEsIGFkdjc1MTEtPnJnYiA9IGNvbmZpZy0+aW5wdXRf Y29sb3JzcGFjZSA9PSBIRE1JX0NPTE9SU1BBQ0VfUkdCOwo+ICB9Cj4gCj4gLXN0YXRpYyB2b2lk IGFkdjc1MTFfcG93ZXJfb24oc3RydWN0IGFkdjc1MTEgKmFkdjc1MTEpCj4gK3N0YXRpYyB2b2lk IF9fYWR2NzUxMV9wb3dlcl9vbihzdHJ1Y3QgYWR2NzUxMSAqYWR2NzUxMSkKPiAgewo+ICAJYWR2 NzUxMS0+Y3VycmVudF9lZGlkX3NlZ21lbnQgPSAtMTsKPiAKPiBAQCAtMzU0LDYgKzM1NCwxMSBA QCBzdGF0aWMgdm9pZCBhZHY3NTExX3Bvd2VyX29uKHN0cnVjdCBhZHY3NTExICphZHY3NTExKQo+ ICAJcmVnbWFwX3VwZGF0ZV9iaXRzKGFkdjc1MTEtPnJlZ21hcCwgQURWNzUxMV9SRUdfUE9XRVIy LAo+ICAJCQkgICBBRFY3NTExX1JFR19QT1dFUjJfSFBEX1NSQ19NQVNLLAo+ICAJCQkgICBBRFY3 NTExX1JFR19QT1dFUjJfSFBEX1NSQ19OT05FKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgYWR2 NzUxMV9wb3dlcl9vbihzdHJ1Y3QgYWR2NzUxMSAqYWR2NzUxMSkKPiArewo+ICsJX19hZHY3NTEx X3Bvd2VyX29uKGFkdjc1MTEpOwo+IAo+ICAJLyoKPiAgCSAqIE1vc3Qgb2YgdGhlIHJlZ2lzdGVy cyBhcmUgcmVzZXQgZHVyaW5nIHBvd2VyIGRvd24gb3Igd2hlbiBIUEQgaXMgCmxvdy4KPiBAQCAt MzYyLDIxICszNjcsMjMgQEAgc3RhdGljIHZvaWQgYWR2NzUxMV9wb3dlcl9vbihzdHJ1Y3QgYWR2 NzUxMSAqYWR2NzUxMSkKPiAKPiAgCWlmIChhZHY3NTExLT50eXBlID09IEFEVjc1MzMpCj4gIAkJ YWR2NzUzM19kc2lfcG93ZXJfb24oYWR2NzUxMSk7Cj4gLQo+ICAJYWR2NzUxMS0+cG93ZXJlZCA9 IHRydWU7Cj4gIH0KPiAKPiAtc3RhdGljIHZvaWQgYWR2NzUxMV9wb3dlcl9vZmYoc3RydWN0IGFk djc1MTEgKmFkdjc1MTEpCj4gK3N0YXRpYyB2b2lkIF9fYWR2NzUxMV9wb3dlcl9vZmYoc3RydWN0 IGFkdjc1MTEgKmFkdjc1MTEpCj4gIHsKPiAgCS8qIFRPRE86IHNldHVwIGFkZGl0aW9uYWwgcG93 ZXIgZG93biBtb2RlcyAqLwo+ICAJcmVnbWFwX3VwZGF0ZV9iaXRzKGFkdjc1MTEtPnJlZ21hcCwg QURWNzUxMV9SRUdfUE9XRVIsCj4gIAkJCSAgIEFEVjc1MTFfUE9XRVJfUE9XRVJfRE9XTiwKPiAg CQkJICAgQURWNzUxMV9QT1dFUl9QT1dFUl9ET1dOKTsKPiAgCXJlZ2NhY2hlX21hcmtfZGlydHko YWR2NzUxMS0+cmVnbWFwKTsKPiArfQo+IAo+ICtzdGF0aWMgdm9pZCBhZHY3NTExX3Bvd2VyX29m ZihzdHJ1Y3QgYWR2NzUxMSAqYWR2NzUxMSkKPiArewo+ICsJX19hZHY3NTExX3Bvd2VyX29mZihh ZHY3NTExKTsKPiAgCWlmIChhZHY3NTExLT50eXBlID09IEFEVjc1MzMpCj4gIAkJYWR2NzUzM19k c2lfcG93ZXJfb2ZmKGFkdjc1MTEpOwo+IC0KPiAgCWFkdjc1MTEtPnBvd2VyZWQgPSBmYWxzZTsK PiAgfQoKLS0gClJlZ2FyZHMsCgpMYXVyZW50IFBpbmNoYXJ0CgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1k ZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751552AbdARXHg (ORCPT ); Wed, 18 Jan 2017 18:07:36 -0500 Received: from galahad.ideasonboard.com ([185.26.127.97]:45617 "EHLO galahad.ideasonboard.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750846AbdARXG3 (ORCPT ); Wed, 18 Jan 2017 18:06:29 -0500 From: Laurent Pinchart To: John Stultz Cc: lkml , David Airlie , Archit Taneja , Wolfram Sang , Lars-Peter Clausen , dri-devel@lists.freedesktop.org Subject: Re: [PATCH 4/6] drm/bridge: adv7511: Rework adv7511_power_on/off() so they can be reused internally Date: Thu, 19 Jan 2017 01:04:21 +0200 Message-ID: <2635492.ECbE8UkFhx@avalon> User-Agent: KMail/4.14.10 (Linux/4.8.6-gentoo; KDE/4.14.24; x86_64; ; ) In-Reply-To: <1484614372-15342-5-git-send-email-john.stultz@linaro.org> References: <1484614372-15342-1-git-send-email-john.stultz@linaro.org> <1484614372-15342-5-git-send-email-john.stultz@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi John, Thank you for the patch. On Monday 16 Jan 2017 16:52:50 John Stultz wrote: > In chasing down issues with EDID probing, I found some > duplicated but incomplete logic used to power the chip on and > off. > > This patch refactors the adv7511_power_on/off functions, so > they can be used for internal needs. > > Cc: David Airlie > Cc: Archit Taneja > Cc: Wolfram Sang > Cc: Lars-Peter Clausen > Cc: Laurent Pinchart > Cc: dri-devel@lists.freedesktop.org > Signed-off-by: John Stultz Reviewed-by: Laurent Pinchart > --- > v4: Move the regcache_sync() call outside the shared > implementation as we don't want to call it on EDID probing, > as suggested by Laurent > --- > drivers/gpu/drm/bridge/adv7511/adv7511_drv.c | 15 +++++++++++---- > 1 file changed, 11 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c > b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c index 405e460..12f2876 > 100644 > --- a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c > +++ b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c > @@ -325,7 +325,7 @@ static void adv7511_set_link_config(struct adv7511 > *adv7511, adv7511->rgb = config->input_colorspace == HDMI_COLORSPACE_RGB; > } > > -static void adv7511_power_on(struct adv7511 *adv7511) > +static void __adv7511_power_on(struct adv7511 *adv7511) > { > adv7511->current_edid_segment = -1; > > @@ -354,6 +354,11 @@ static void adv7511_power_on(struct adv7511 *adv7511) > regmap_update_bits(adv7511->regmap, ADV7511_REG_POWER2, > ADV7511_REG_POWER2_HPD_SRC_MASK, > ADV7511_REG_POWER2_HPD_SRC_NONE); > +} > + > +static void adv7511_power_on(struct adv7511 *adv7511) > +{ > + __adv7511_power_on(adv7511); > > /* > * Most of the registers are reset during power down or when HPD is low. > @@ -362,21 +367,23 @@ static void adv7511_power_on(struct adv7511 *adv7511) > > if (adv7511->type == ADV7533) > adv7533_dsi_power_on(adv7511); > - > adv7511->powered = true; > } > > -static void adv7511_power_off(struct adv7511 *adv7511) > +static void __adv7511_power_off(struct adv7511 *adv7511) > { > /* TODO: setup additional power down modes */ > regmap_update_bits(adv7511->regmap, ADV7511_REG_POWER, > ADV7511_POWER_POWER_DOWN, > ADV7511_POWER_POWER_DOWN); > regcache_mark_dirty(adv7511->regmap); > +} > > +static void adv7511_power_off(struct adv7511 *adv7511) > +{ > + __adv7511_power_off(adv7511); > if (adv7511->type == ADV7533) > adv7533_dsi_power_off(adv7511); > - > adv7511->powered = false; > } -- Regards, Laurent Pinchart