From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ed1-f68.google.com ([209.85.208.68]:44920 "EHLO mail-ed1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727350AbeJWWES (ORCPT ); Tue, 23 Oct 2018 18:04:18 -0400 Received: by mail-ed1-f68.google.com with SMTP id z21-v6so1646503edb.11 for ; Tue, 23 Oct 2018 06:40:45 -0700 (PDT) Date: Tue, 23 Oct 2018 15:40:41 +0200 From: Daniel Vetter To: Souptick Joarder Cc: noralf@tronnes.org, Laurent Pinchart , Gustavo Padovan , Maarten Lankhorst , sean@poorly.run, airlied@linux.ie, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org, Daniel Vetter Subject: Re: [PATCH] drm/rcar-du: Convert drm_atomic_helper_suspend/resume() Message-ID: <20181023134041.GO324@phenom.ffwll.local> References: <20180918163903.GA11172@jordon-HP-15-Notebook-PC> <20809880.gF2CxujBy3@avalon> <20181001065220.GE11082@phenom.ffwll.local> <26527911.hs5tlrnKDc@avalon> <042a6076-62e2-c029-2a09-f1123d9ac403@tronnes.org> <20181011081849.GR31561@phenom.ffwll.local> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Sender: linux-renesas-soc-owner@vger.kernel.org List-ID: On Mon, Oct 22, 2018 at 01:51:35PM +0530, Souptick Joarder wrote: > Hi Laurent, > > On Thu, Oct 11, 2018 at 1:48 PM Daniel Vetter wrote: > > > > On Mon, Oct 08, 2018 at 09:57:52PM +0530, Souptick Joarder wrote: > > > Hi Laurent, > > > On Mon, Oct 1, 2018 at 6:12 PM Noralf Tr�nnes wrote: > > > > > > > > > > > > Den 01.10.2018 13.56, skrev Laurent Pinchart: > > > > > Hi Daniel, > > > > > > > > > > On Monday, 1 October 2018 09:52:20 EEST Daniel Vetter wrote: > > > > >> On Fri, Sep 28, 2018 at 06:30:35PM +0300, Laurent Pinchart wrote: > > > > >>> On Friday, 28 September 2018 18:05:18 EEST Laurent Pinchart wrote: > > > > >>>> On Thursday, 27 September 2018 09:34:18 EEST Souptick Joarder wrote: > > > > >>>>> On Tue, Sep 18, 2018 at 10:05 PM Souptick Joarder wrote: > > > > >>>>>> convert drm_atomic_helper_suspend/resume() to use > > > > >>>>>> drm_mode_config_helper_suspend/resume(). > > > > >>>>>> > > > > >>>>>> remove suspend_state field from the rcar_du_device > > > > >>>>>> structure as it is no more required. > > > > >>>>>> > > > > >>>>>> With this conversion, also drm_fbdev_cma_set_suspend_unlocked() > > > > >>>>>> will left with no consumer. So this function can be removed. > > > > >>>>>> > > > > >>>>>> Signed-off-by: Souptick Joarder > > > > >>>>> Laurent, any comment on this patch ?? > > > > >>>> Sorry for the delay, and thanks for pinging me. > > > > >>>> > > > > >>>> Reviewed-by: Laurent Pinchart > > > > >>>> > > > > >>>> Should I apply this to my tree or do you plan to merge it through > > > > >>>> drm-misc > > > > >>>> as it touches drm_fb_cma_helper.c ? > > > > >>> I just realized that the same patch got supplied by Noralf Tr�nnes nearly > > > > >>> a > > > > >>> year ago, and was later superseded by > > > > >>> https://patchwork.freedesktop.org/patch/247861/. I think we should thus > > > > >>> apply Noralf's patches instead (once he sends v4 out). > > > > >> I don't think Noralf is still actively working on this, he's busy with the > > > > >> fbdev emulation stuff. Probably better if you pick up one of the existing > > > > >> ones, than waiting another year or so :-) > > > > > Isn't https://patchwork.freedesktop.org/patch/247861/ part of the fbdev > > > > > emulation stuff ? That patch series is from less than a month ago, so I > > > > > thought it was actively developed. > > > > > > > > > > Let's ask him. Noralf, any comment ? :-) > > > > > > > > I see now that I've caused some confusion here. > > > > > > > > I did some refactoring of the fbdev stuff in the CMA helper last year. > > > > In the last series of that work there is this patch: > > > > > > > > [v3,07/11] drm/rcar-du: Use drm_mode_config_helper_suspend/resume() > > > > https://patchwork.freedesktop.org/patch/192414/ > > > > > > > > During Christmas I got the idea that maybe it was possible to use a dumb > > > > buffer to do generic fbdev emulation. That work took me 6 months before a > > > > solution using a general internal DRM client was hammered out. By the > > > > time I started to convert drivers I had forgotten about that patch. > > > > > > > > When I wrote the patch (#247861) to convert rcar to the generic fbdev, I > > > > just bundled up the suspend/resume change with the fbdev conversion. > > > > Laurent and Sam commented on that bundling, so I said that I would split > > > > it up in the next version. > > > > > > > > All that being said, I think that this patch should be applied and I'll > > > > just rebase the rcar fbdev conversion patch on top of that. > > > > It's the easiest for me at least :-) > > > > > > > Any conclusion on this patch ? :-) > > > > Laurent should pick it up and apply to his rcar-du tree I think. We can > > also stuff it into drm-misc as a fallback. > > Can we get this patch in queue for 4.20 ? 5.1, 4.20 is already done. But yes, I pulled this into drm-misc-next. Thanks for your patch. -Daniel > > > -Daniel > > > > > > > > ers/gpu/drm/drm_fb_cma_helper.c | 18 ------------------ > > > > >>>>>> drivers/gpu/drm/rcar-du/rcar_du_drv.c | 21 ++------------------- > > > > >>>>>> drivers/gpu/drm/rcar-du/rcar_du_drv.h | 1 - > > > > >>>>>> include/drm/drm_fb_cma_helper.h | 2 -- > > > > >>>>>> 4 files changed, 2 insertions(+), 40 deletions(-) > > > > >>>>>> > > > > >>>>>> diff --git a/drivers/gpu/drm/drm_fb_cma_helper.c > > > > >>>>>> b/drivers/gpu/drm/drm_fb_cma_helper.c index 47e0e2f..96efc88 100644 > > > > >>>>>> --- a/drivers/gpu/drm/drm_fb_cma_helper.c > > > > >>>>>> +++ b/drivers/gpu/drm/drm_fb_cma_helper.c > > > > >>>>>> @@ -224,21 +224,3 @@ void drm_fbdev_cma_hotplug_event(struct > > > > >>>>>> drm_fbdev_cma *fbdev_cma) > > > > >>>>>> > > > > >>>>>> drm_fb_helper_hotplug_event(&fbdev_cma->fb_helper); > > > > >>>>>> > > > > >>>>>> } > > > > >>>>>> EXPORT_SYMBOL_GPL(drm_fbdev_cma_hotplug_event); > > > > >>>>>> > > > > >>>>>> - > > > > >>>>>> -/** > > > > >>>>>> - * drm_fbdev_cma_set_suspend_unlocked - wrapper around > > > > >>>>>> - * > > > > >>>>>> drm_fb_helper_set_suspend_unlocked > > > > >>>>>> - * @fbdev_cma: The drm_fbdev_cma struct, may be NULL > > > > >>>>>> - * @state: desired state, zero to resume, non-zero to suspend > > > > >>>>>> - * > > > > >>>>>> - * Calls drm_fb_helper_set_suspend, which is a wrapper around > > > > >>>>>> - * fb_set_suspend implemented by fbdev core. > > > > >>>>>> - */ > > > > >>>>>> -void drm_fbdev_cma_set_suspend_unlocked(struct drm_fbdev_cma > > > > >>>>>> *fbdev_cma, > > > > >>>>>> - bool state) > > > > >>>>>> -{ > > > > >>>>>> - if (fbdev_cma) > > > > >>>>>> - > > > > >>>>>> drm_fb_helper_set_suspend_unlocked(&fbdev_cma->fb_helper, > > > > >>>>>> - state); > > > > >>>>>> -} > > > > >>>>>> -EXPORT_SYMBOL(drm_fbdev_cma_set_suspend_unlocked); > > > > >>>>>> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c > > > > >>>>>> b/drivers/gpu/drm/rcar-du/rcar_du_drv.c index 02aee6c..288220f 100644 > > > > >>>>>> --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c > > > > >>>>>> +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c > > > > >>>>>> @@ -357,32 +357,15 @@ static void rcar_du_lastclose(struct drm_device > > > > >>>>>> *dev) > > > > >>>>>> > > > > >>>>>> static int rcar_du_pm_suspend(struct device *dev) > > > > >>>>>> { > > > > >>>>>> > > > > >>>>>> struct rcar_du_device *rcdu = dev_get_drvdata(dev); > > > > >>>>>> > > > > >>>>>> - struct drm_atomic_state *state; > > > > >>>>>> > > > > >>>>>> - drm_kms_helper_poll_disable(rcdu->ddev); > > > > >>>>>> - drm_fbdev_cma_set_suspend_unlocked(rcdu->fbdev, true); > > > > >>>>>> - > > > > >>>>>> - state = drm_atomic_helper_suspend(rcdu->ddev); > > > > >>>>>> - if (IS_ERR(state)) { > > > > >>>>>> - drm_fbdev_cma_set_suspend_unlocked(rcdu->fbdev, > > > > >>>>>> false); > > > > >>>>>> - drm_kms_helper_poll_enable(rcdu->ddev); > > > > >>>>>> - return PTR_ERR(state); > > > > >>>>>> - } > > > > >>>>>> - > > > > >>>>>> - rcdu->suspend_state = state; > > > > >>>>>> - > > > > >>>>>> - return 0; > > > > >>>>>> + return drm_mode_config_helper_suspend(rcdu->ddev); > > > > >>>>>> > > > > >>>>>> } > > > > >>>>>> > > > > >>>>>> static int rcar_du_pm_resume(struct device *dev) > > > > >>>>>> { > > > > >>>>>> > > > > >>>>>> struct rcar_du_device *rcdu = dev_get_drvdata(dev); > > > > >>>>>> > > > > >>>>>> - drm_atomic_helper_resume(rcdu->ddev, rcdu->suspend_state); > > > > >>>>>> - drm_fbdev_cma_set_suspend_unlocked(rcdu->fbdev, false); > > > > >>>>>> - drm_kms_helper_poll_enable(rcdu->ddev); > > > > >>>>>> - > > > > >>>>>> - return 0; > > > > >>>>>> + return drm_mode_config_helper_resume(rcdu->ddev); > > > > >>>>>> > > > > >>>>>> } > > > > >>>>>> #endif > > > > >>>>>> > > > > >>>>>> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.h > > > > >>>>>> b/drivers/gpu/drm/rcar-du/rcar_du_drv.h index b3a25e8..ff25c8d 100644 > > > > >>>>>> --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.h > > > > >>>>>> +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.h > > > > >>>>>> @@ -78,7 +78,6 @@ struct rcar_du_device { > > > > >>>>>> > > > > >>>>>> struct drm_device *ddev; > > > > >>>>>> struct drm_fbdev_cma *fbdev; > > > > >>>>>> > > > > >>>>>> - struct drm_atomic_state *suspend_state; > > > > >>>>>> > > > > >>>>>> struct rcar_du_crtc crtcs[RCAR_DU_MAX_CRTCS]; > > > > >>>>>> unsigned int num_crtcs; > > > > >>>>>> > > > > >>>>>> diff --git a/include/drm/drm_fb_cma_helper.h > > > > >>>>>> b/include/drm/drm_fb_cma_helper.h index 4a65f0d..8dbbe1e 100644 > > > > >>>>>> --- a/include/drm/drm_fb_cma_helper.h > > > > >>>>>> +++ b/include/drm/drm_fb_cma_helper.h > > > > >>>>>> @@ -26,8 +26,6 @@ struct drm_fbdev_cma *drm_fbdev_cma_init(struct > > > > >>>>>> drm_device *dev, > > > > >>>>>> > > > > >>>>>> void drm_fbdev_cma_restore_mode(struct drm_fbdev_cma *fbdev_cma); > > > > >>>>>> void drm_fbdev_cma_hotplug_event(struct drm_fbdev_cma *fbdev_cma); > > > > >>>>>> > > > > >>>>>> -void drm_fbdev_cma_set_suspend_unlocked(struct drm_fbdev_cma > > > > >>>>>> *fbdev_cma, > > > > >>>>>> - bool state); > > > > >>>>>> > > > > >>>>>> struct drm_gem_cma_object *drm_fb_cma_get_gem_obj(struct > > > > >>>>>> drm_framebuffer *fb, > > > > >>>>>> > > > > >>>>>> unsigned int plane); > > > > > > > > -- > > Daniel Vetter > > Software Engineer, Intel Corporation > > http://blog.ffwll.ch -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH] drm/rcar-du: Convert drm_atomic_helper_suspend/resume() Date: Tue, 23 Oct 2018 15:40:41 +0200 Message-ID: <20181023134041.GO324@phenom.ffwll.local> References: <20180918163903.GA11172@jordon-HP-15-Notebook-PC> <20809880.gF2CxujBy3@avalon> <20181001065220.GE11082@phenom.ffwll.local> <26527911.hs5tlrnKDc@avalon> <042a6076-62e2-c029-2a09-f1123d9ac403@tronnes.org> <20181011081849.GR31561@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-ed1-x541.google.com (mail-ed1-x541.google.com [IPv6:2a00:1450:4864:20::541]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5B3DC89EA3 for ; Tue, 23 Oct 2018 13:40:46 +0000 (UTC) Received: by mail-ed1-x541.google.com with SMTP id t10-v6so1647683eds.12 for ; Tue, 23 Oct 2018 06:40:46 -0700 (PDT) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Souptick Joarder Cc: airlied@linux.ie, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-renesas-soc@vger.kernel.org, Laurent Pinchart , sean@poorly.run List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCBPY3QgMjIsIDIwMTggYXQgMDE6NTE6MzVQTSArMDUzMCwgU291cHRpY2sgSm9hcmRl ciB3cm90ZToKPiBIaSBMYXVyZW50LAo+IAo+IE9uIFRodSwgT2N0IDExLCAyMDE4IGF0IDE6NDgg UE0gRGFuaWVsIFZldHRlciA8ZGFuaWVsQGZmd2xsLmNoPiB3cm90ZToKPiA+Cj4gPiBPbiBNb24s IE9jdCAwOCwgMjAxOCBhdCAwOTo1Nzo1MlBNICswNTMwLCBTb3VwdGljayBKb2FyZGVyIHdyb3Rl Ogo+ID4gPiBIaSBMYXVyZW50LAo+ID4gPiBPbiBNb24sIE9jdCAxLCAyMDE4IGF0IDY6MTIgUE0g Tm9yYWxmIFRyw7hubmVzIDxub3JhbGZAdHJvbm5lcy5vcmc+IHdyb3RlOgo+ID4gPiA+Cj4gPiA+ ID4KPiA+ID4gPiBEZW4gMDEuMTAuMjAxOCAxMy41Niwgc2tyZXYgTGF1cmVudCBQaW5jaGFydDoK PiA+ID4gPiA+IEhpIERhbmllbCwKPiA+ID4gPiA+Cj4gPiA+ID4gPiBPbiBNb25kYXksIDEgT2N0 b2JlciAyMDE4IDA5OjUyOjIwIEVFU1QgRGFuaWVsIFZldHRlciB3cm90ZToKPiA+ID4gPiA+PiBP biBGcmksIFNlcCAyOCwgMjAxOCBhdCAwNjozMDozNVBNICswMzAwLCBMYXVyZW50IFBpbmNoYXJ0 IHdyb3RlOgo+ID4gPiA+ID4+PiBPbiBGcmlkYXksIDI4IFNlcHRlbWJlciAyMDE4IDE4OjA1OjE4 IEVFU1QgTGF1cmVudCBQaW5jaGFydCB3cm90ZToKPiA+ID4gPiA+Pj4+IE9uIFRodXJzZGF5LCAy NyBTZXB0ZW1iZXIgMjAxOCAwOTozNDoxOCBFRVNUIFNvdXB0aWNrIEpvYXJkZXIgd3JvdGU6Cj4g PiA+ID4gPj4+Pj4gT24gVHVlLCBTZXAgMTgsIDIwMTggYXQgMTA6MDUgUE0gU291cHRpY2sgSm9h cmRlciB3cm90ZToKPiA+ID4gPiA+Pj4+Pj4gY29udmVydCBkcm1fYXRvbWljX2hlbHBlcl9zdXNw ZW5kL3Jlc3VtZSgpIHRvIHVzZQo+ID4gPiA+ID4+Pj4+PiBkcm1fbW9kZV9jb25maWdfaGVscGVy X3N1c3BlbmQvcmVzdW1lKCkuCj4gPiA+ID4gPj4+Pj4+Cj4gPiA+ID4gPj4+Pj4+IHJlbW92ZSBz dXNwZW5kX3N0YXRlIGZpZWxkIGZyb20gdGhlIHJjYXJfZHVfZGV2aWNlCj4gPiA+ID4gPj4+Pj4+ IHN0cnVjdHVyZSBhcyBpdCBpcyBubyBtb3JlIHJlcXVpcmVkLgo+ID4gPiA+ID4+Pj4+Pgo+ID4g PiA+ID4+Pj4+PiBXaXRoIHRoaXMgY29udmVyc2lvbiwgYWxzbyBkcm1fZmJkZXZfY21hX3NldF9z dXNwZW5kX3VubG9ja2VkKCkKPiA+ID4gPiA+Pj4+Pj4gd2lsbCBsZWZ0IHdpdGggbm8gY29uc3Vt ZXIuIFNvIHRoaXMgZnVuY3Rpb24gY2FuIGJlIHJlbW92ZWQuCj4gPiA+ID4gPj4+Pj4+Cj4gPiA+ ID4gPj4+Pj4+IFNpZ25lZC1vZmYtYnk6IFNvdXB0aWNrIEpvYXJkZXIgPGpyZHIubGludXhAZ21h aWwuY29tPgo+ID4gPiA+ID4+Pj4+IExhdXJlbnQsIGFueSBjb21tZW50IG9uIHRoaXMgcGF0Y2gg Pz8KPiA+ID4gPiA+Pj4+IFNvcnJ5IGZvciB0aGUgZGVsYXksIGFuZCB0aGFua3MgZm9yIHBpbmdp bmcgbWUuCj4gPiA+ID4gPj4+Pgo+ID4gPiA+ID4+Pj4gUmV2aWV3ZWQtYnk6IExhdXJlbnQgUGlu Y2hhcnQgPGxhdXJlbnQucGluY2hhcnRAaWRlYXNvbmJvYXJkLmNvbT4KPiA+ID4gPiA+Pj4+Cj4g PiA+ID4gPj4+PiBTaG91bGQgSSBhcHBseSB0aGlzIHRvIG15IHRyZWUgb3IgZG8geW91IHBsYW4g dG8gbWVyZ2UgaXQgdGhyb3VnaAo+ID4gPiA+ID4+Pj4gZHJtLW1pc2MKPiA+ID4gPiA+Pj4+IGFz IGl0IHRvdWNoZXMgZHJtX2ZiX2NtYV9oZWxwZXIuYyA/Cj4gPiA+ID4gPj4+IEkganVzdCByZWFs aXplZCB0aGF0IHRoZSBzYW1lIHBhdGNoIGdvdCBzdXBwbGllZCBieSBOb3JhbGYgVHLDuG5uZXMg bmVhcmx5Cj4gPiA+ID4gPj4+IGEKPiA+ID4gPiA+Pj4geWVhciBhZ28sIGFuZCB3YXMgbGF0ZXIg c3VwZXJzZWRlZCBieQo+ID4gPiA+ID4+PiBodHRwczovL3BhdGNod29yay5mcmVlZGVza3RvcC5v cmcvcGF0Y2gvMjQ3ODYxLy4gSSB0aGluayB3ZSBzaG91bGQgdGh1cwo+ID4gPiA+ID4+PiBhcHBs eSBOb3JhbGYncyBwYXRjaGVzIGluc3RlYWQgKG9uY2UgaGUgc2VuZHMgdjQgb3V0KS4KPiA+ID4g PiA+PiBJIGRvbid0IHRoaW5rIE5vcmFsZiBpcyBzdGlsbCBhY3RpdmVseSB3b3JraW5nIG9uIHRo aXMsIGhlJ3MgYnVzeSB3aXRoIHRoZQo+ID4gPiA+ID4+IGZiZGV2IGVtdWxhdGlvbiBzdHVmZi4g UHJvYmFibHkgYmV0dGVyIGlmIHlvdSBwaWNrIHVwIG9uZSBvZiB0aGUgZXhpc3RpbmcKPiA+ID4g PiA+PiBvbmVzLCB0aGFuIHdhaXRpbmcgYW5vdGhlciB5ZWFyIG9yIHNvIDotKQo+ID4gPiA+ID4g SXNuJ3QgaHR0cHM6Ly9wYXRjaHdvcmsuZnJlZWRlc2t0b3Aub3JnL3BhdGNoLzI0Nzg2MS8gcGFy dCBvZiB0aGUgZmJkZXYKPiA+ID4gPiA+IGVtdWxhdGlvbiBzdHVmZiA/IFRoYXQgcGF0Y2ggc2Vy aWVzIGlzIGZyb20gbGVzcyB0aGFuIGEgbW9udGggYWdvLCBzbyBJCj4gPiA+ID4gPiB0aG91Z2h0 IGl0IHdhcyBhY3RpdmVseSBkZXZlbG9wZWQuCj4gPiA+ID4gPgo+ID4gPiA+ID4gTGV0J3MgYXNr IGhpbS4gTm9yYWxmLCBhbnkgY29tbWVudCA/IDotKQo+ID4gPiA+Cj4gPiA+ID4gSSBzZWUgbm93 IHRoYXQgSSd2ZSBjYXVzZWQgc29tZSBjb25mdXNpb24gaGVyZS4KPiA+ID4gPgo+ID4gPiA+IEkg ZGlkIHNvbWUgcmVmYWN0b3Jpbmcgb2YgdGhlIGZiZGV2IHN0dWZmIGluIHRoZSBDTUEgaGVscGVy IGxhc3QgeWVhci4KPiA+ID4gPiBJbiB0aGUgbGFzdCBzZXJpZXMgb2YgdGhhdCB3b3JrIHRoZXJl IGlzIHRoaXMgcGF0Y2g6Cj4gPiA+ID4KPiA+ID4gPiBbdjMsMDcvMTFdIGRybS9yY2FyLWR1OiBV c2UgZHJtX21vZGVfY29uZmlnX2hlbHBlcl9zdXNwZW5kL3Jlc3VtZSgpCj4gPiA+ID4gaHR0cHM6 Ly9wYXRjaHdvcmsuZnJlZWRlc2t0b3Aub3JnL3BhdGNoLzE5MjQxNC8KPiA+ID4gPgo+ID4gPiA+ IER1cmluZyBDaHJpc3RtYXMgSSBnb3QgdGhlIGlkZWEgdGhhdCBtYXliZSBpdCB3YXMgcG9zc2li bGUgdG8gdXNlIGEgZHVtYgo+ID4gPiA+IGJ1ZmZlciB0byBkbyBnZW5lcmljIGZiZGV2IGVtdWxh dGlvbi4gVGhhdCB3b3JrIHRvb2sgbWUgNiBtb250aHMgYmVmb3JlIGEKPiA+ID4gPiBzb2x1dGlv biB1c2luZyBhIGdlbmVyYWwgaW50ZXJuYWwgRFJNIGNsaWVudCB3YXMgaGFtbWVyZWQgb3V0LiBC eSB0aGUKPiA+ID4gPiB0aW1lIEkgc3RhcnRlZCB0byBjb252ZXJ0IGRyaXZlcnMgSSBoYWQgZm9y Z290dGVuIGFib3V0IHRoYXQgcGF0Y2guCj4gPiA+ID4KPiA+ID4gPiBXaGVuIEkgd3JvdGUgdGhl IHBhdGNoICgjMjQ3ODYxKSB0byBjb252ZXJ0IHJjYXIgdG8gdGhlIGdlbmVyaWMgZmJkZXYsIEkK PiA+ID4gPiBqdXN0IGJ1bmRsZWQgdXAgdGhlIHN1c3BlbmQvcmVzdW1lIGNoYW5nZSB3aXRoIHRo ZSBmYmRldiBjb252ZXJzaW9uLgo+ID4gPiA+IExhdXJlbnQgYW5kIFNhbSBjb21tZW50ZWQgb24g dGhhdCBidW5kbGluZywgc28gSSBzYWlkIHRoYXQgSSB3b3VsZCBzcGxpdAo+ID4gPiA+IGl0IHVw IGluIHRoZSBuZXh0IHZlcnNpb24uCj4gPiA+ID4KPiA+ID4gPiBBbGwgdGhhdCBiZWluZyBzYWlk LCBJIHRoaW5rIHRoYXQgdGhpcyBwYXRjaCBzaG91bGQgYmUgYXBwbGllZCBhbmQgSSdsbAo+ID4g PiA+IGp1c3QgcmViYXNlIHRoZSByY2FyIGZiZGV2IGNvbnZlcnNpb24gcGF0Y2ggb24gdG9wIG9m IHRoYXQuCj4gPiA+ID4gSXQncyB0aGUgZWFzaWVzdCBmb3IgbWUgYXQgbGVhc3QgOi0pCj4gPiA+ ID4KPiA+ID4gQW55IGNvbmNsdXNpb24gb24gdGhpcyBwYXRjaCA/IDotKQo+ID4KPiA+IExhdXJl bnQgc2hvdWxkIHBpY2sgaXQgdXAgYW5kIGFwcGx5IHRvIGhpcyByY2FyLWR1IHRyZWUgSSB0aGlu ay4gV2UgY2FuCj4gPiBhbHNvIHN0dWZmIGl0IGludG8gZHJtLW1pc2MgYXMgYSBmYWxsYmFjay4K PiAKPiBDYW4gd2UgZ2V0IHRoaXMgcGF0Y2ggaW4gcXVldWUgZm9yIDQuMjAgPwoKNS4xLCA0LjIw IGlzIGFscmVhZHkgZG9uZS4KCkJ1dCB5ZXMsIEkgcHVsbGVkIHRoaXMgaW50byBkcm0tbWlzYy1u ZXh0LiBUaGFua3MgZm9yIHlvdXIgcGF0Y2guCi1EYW5pZWwKCj4gCj4gPiAtRGFuaWVsCj4gPgo+ ID4gPgo+ID4gPiBlcnMvZ3B1L2RybS9kcm1fZmJfY21hX2hlbHBlci5jICAgfCAxOCAtLS0tLS0t LS0tLS0tLS0tLS0KPiA+ID4gPiA+Pj4+Pj4gICBkcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2Fy X2R1X2Rydi5jIHwgMjEgKystLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+ID4gPj4+Pj4+ICAgZHJp dmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kdV9kcnYuaCB8ICAxIC0KPiA+ID4gPiA+Pj4+Pj4g ICBpbmNsdWRlL2RybS9kcm1fZmJfY21hX2hlbHBlci5oICAgICAgIHwgIDIgLS0KPiA+ID4gPiA+ Pj4+Pj4gICA0IGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgNDAgZGVsZXRpb25zKC0p Cj4gPiA+ID4gPj4+Pj4+Cj4gPiA+ID4gPj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vZHJtX2ZiX2NtYV9oZWxwZXIuYwo+ID4gPiA+ID4+Pj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9k cm1fZmJfY21hX2hlbHBlci5jIGluZGV4IDQ3ZTBlMmYuLjk2ZWZjODggMTAwNjQ0Cj4gPiA+ID4g Pj4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfY21hX2hlbHBlci5jCj4gPiA+ID4g Pj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfY21hX2hlbHBlci5jCj4gPiA+ID4g Pj4+Pj4+IEBAIC0yMjQsMjEgKzIyNCwzIEBAIHZvaWQgZHJtX2ZiZGV2X2NtYV9ob3RwbHVnX2V2 ZW50KHN0cnVjdAo+ID4gPiA+ID4+Pj4+PiBkcm1fZmJkZXZfY21hICpmYmRldl9jbWEpCj4gPiA+ ID4gPj4+Pj4+Cj4gPiA+ID4gPj4+Pj4+ICAgICAgICAgICAgICAgICAgZHJtX2ZiX2hlbHBlcl9o b3RwbHVnX2V2ZW50KCZmYmRldl9jbWEtPmZiX2hlbHBlcik7Cj4gPiA+ID4gPj4+Pj4+Cj4gPiA+ ID4gPj4+Pj4+ICAgfQo+ID4gPiA+ID4+Pj4+PiAgIEVYUE9SVF9TWU1CT0xfR1BMKGRybV9mYmRl dl9jbWFfaG90cGx1Z19ldmVudCk7Cj4gPiA+ID4gPj4+Pj4+Cj4gPiA+ID4gPj4+Pj4+IC0KPiA+ ID4gPiA+Pj4+Pj4gLS8qKgo+ID4gPiA+ID4+Pj4+PiAtICogZHJtX2ZiZGV2X2NtYV9zZXRfc3Vz cGVuZF91bmxvY2tlZCAtIHdyYXBwZXIgYXJvdW5kCj4gPiA+ID4gPj4+Pj4+IC0gKgo+ID4gPiA+ ID4+Pj4+PiBkcm1fZmJfaGVscGVyX3NldF9zdXNwZW5kX3VubG9ja2VkCj4gPiA+ID4gPj4+Pj4+ IC0gKiBAZmJkZXZfY21hOiBUaGUgZHJtX2ZiZGV2X2NtYSBzdHJ1Y3QsIG1heSBiZSBOVUxMCj4g PiA+ID4gPj4+Pj4+IC0gKiBAc3RhdGU6IGRlc2lyZWQgc3RhdGUsIHplcm8gdG8gcmVzdW1lLCBu b24temVybyB0byBzdXNwZW5kCj4gPiA+ID4gPj4+Pj4+IC0gKgo+ID4gPiA+ID4+Pj4+PiAtICog Q2FsbHMgZHJtX2ZiX2hlbHBlcl9zZXRfc3VzcGVuZCwgd2hpY2ggaXMgYSB3cmFwcGVyIGFyb3Vu ZAo+ID4gPiA+ID4+Pj4+PiAtICogZmJfc2V0X3N1c3BlbmQgaW1wbGVtZW50ZWQgYnkgZmJkZXYg Y29yZS4KPiA+ID4gPiA+Pj4+Pj4gLSAqLwo+ID4gPiA+ID4+Pj4+PiAtdm9pZCBkcm1fZmJkZXZf Y21hX3NldF9zdXNwZW5kX3VubG9ja2VkKHN0cnVjdCBkcm1fZmJkZXZfY21hCj4gPiA+ID4gPj4+ Pj4+ICpmYmRldl9jbWEsCj4gPiA+ID4gPj4+Pj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBib29sIHN0YXRlKQo+ID4gPiA+ID4+Pj4+PiAtewo+ID4gPiA+ID4+Pj4+ PiAtICAgICAgIGlmIChmYmRldl9jbWEpCj4gPiA+ID4gPj4+Pj4+IC0KPiA+ID4gPiA+Pj4+Pj4g ZHJtX2ZiX2hlbHBlcl9zZXRfc3VzcGVuZF91bmxvY2tlZCgmZmJkZXZfY21hLT5mYl9oZWxwZXIs Cj4gPiA+ID4gPj4+Pj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0YXRlKTsKPiA+ID4gPiA+Pj4+Pj4gLX0KPiA+ID4gPiA+Pj4+Pj4gLUVYUE9S VF9TWU1CT0woZHJtX2ZiZGV2X2NtYV9zZXRfc3VzcGVuZF91bmxvY2tlZCk7Cj4gPiA+ID4gPj4+ Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X2Rydi5jCj4g PiA+ID4gPj4+Pj4+IGIvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kdV9kcnYuYyBpbmRl eCAwMmFlZTZjLi4yODgyMjBmIDEwMDY0NAo+ID4gPiA+ID4+Pj4+PiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vcmNhci1kdS9yY2FyX2R1X2Rydi5jCj4gPiA+ID4gPj4+Pj4+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfZHJ2LmMKPiA+ID4gPiA+Pj4+Pj4gQEAgLTM1NywzMiAr MzU3LDE1IEBAIHN0YXRpYyB2b2lkIHJjYXJfZHVfbGFzdGNsb3NlKHN0cnVjdCBkcm1fZGV2aWNl Cj4gPiA+ID4gPj4+Pj4+ICpkZXYpCj4gPiA+ID4gPj4+Pj4+Cj4gPiA+ID4gPj4+Pj4+ICAgc3Rh dGljIGludCByY2FyX2R1X3BtX3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KQo+ID4gPiA+ID4+ Pj4+PiAgIHsKPiA+ID4gPiA+Pj4+Pj4KPiA+ID4gPiA+Pj4+Pj4gICAgICAgICAgc3RydWN0IHJj YXJfZHVfZGV2aWNlICpyY2R1ID0gZGV2X2dldF9kcnZkYXRhKGRldik7Cj4gPiA+ID4gPj4+Pj4+ Cj4gPiA+ID4gPj4+Pj4+IC0gICAgICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlOwo+ ID4gPiA+ID4+Pj4+Pgo+ID4gPiA+ID4+Pj4+PiAtICAgICAgIGRybV9rbXNfaGVscGVyX3BvbGxf ZGlzYWJsZShyY2R1LT5kZGV2KTsKPiA+ID4gPiA+Pj4+Pj4gLSAgICAgICBkcm1fZmJkZXZfY21h X3NldF9zdXNwZW5kX3VubG9ja2VkKHJjZHUtPmZiZGV2LCB0cnVlKTsKPiA+ID4gPiA+Pj4+Pj4g LQo+ID4gPiA+ID4+Pj4+PiAtICAgICAgIHN0YXRlID0gZHJtX2F0b21pY19oZWxwZXJfc3VzcGVu ZChyY2R1LT5kZGV2KTsKPiA+ID4gPiA+Pj4+Pj4gLSAgICAgICBpZiAoSVNfRVJSKHN0YXRlKSkg ewo+ID4gPiA+ID4+Pj4+PiAtICAgICAgICAgICAgICAgZHJtX2ZiZGV2X2NtYV9zZXRfc3VzcGVu ZF91bmxvY2tlZChyY2R1LT5mYmRldiwKPiA+ID4gPiA+Pj4+Pj4gZmFsc2UpOwo+ID4gPiA+ID4+ Pj4+PiAtICAgICAgICAgICAgICAgZHJtX2ttc19oZWxwZXJfcG9sbF9lbmFibGUocmNkdS0+ZGRl dik7Cj4gPiA+ID4gPj4+Pj4+IC0gICAgICAgICAgICAgICByZXR1cm4gUFRSX0VSUihzdGF0ZSk7 Cj4gPiA+ID4gPj4+Pj4+IC0gICAgICAgfQo+ID4gPiA+ID4+Pj4+PiAtCj4gPiA+ID4gPj4+Pj4+ IC0gICAgICAgcmNkdS0+c3VzcGVuZF9zdGF0ZSA9IHN0YXRlOwo+ID4gPiA+ID4+Pj4+PiAtCj4g PiA+ID4gPj4+Pj4+IC0gICAgICAgcmV0dXJuIDA7Cj4gPiA+ID4gPj4+Pj4+ICsgICAgICAgcmV0 dXJuIGRybV9tb2RlX2NvbmZpZ19oZWxwZXJfc3VzcGVuZChyY2R1LT5kZGV2KTsKPiA+ID4gPiA+ Pj4+Pj4KPiA+ID4gPiA+Pj4+Pj4gICB9Cj4gPiA+ID4gPj4+Pj4+Cj4gPiA+ID4gPj4+Pj4+ICAg c3RhdGljIGludCByY2FyX2R1X3BtX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpCj4gPiA+ID4g Pj4+Pj4+ICAgewo+ID4gPiA+ID4+Pj4+Pgo+ID4gPiA+ID4+Pj4+PiAgICAgICAgICBzdHJ1Y3Qg cmNhcl9kdV9kZXZpY2UgKnJjZHUgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKPiA+ID4gPiA+Pj4+ Pj4KPiA+ID4gPiA+Pj4+Pj4gLSAgICAgICBkcm1fYXRvbWljX2hlbHBlcl9yZXN1bWUocmNkdS0+ ZGRldiwgcmNkdS0+c3VzcGVuZF9zdGF0ZSk7Cj4gPiA+ID4gPj4+Pj4+IC0gICAgICAgZHJtX2Zi ZGV2X2NtYV9zZXRfc3VzcGVuZF91bmxvY2tlZChyY2R1LT5mYmRldiwgZmFsc2UpOwo+ID4gPiA+ ID4+Pj4+PiAtICAgICAgIGRybV9rbXNfaGVscGVyX3BvbGxfZW5hYmxlKHJjZHUtPmRkZXYpOwo+ ID4gPiA+ID4+Pj4+PiAtCj4gPiA+ID4gPj4+Pj4+IC0gICAgICAgcmV0dXJuIDA7Cj4gPiA+ID4g Pj4+Pj4+ICsgICAgICAgcmV0dXJuIGRybV9tb2RlX2NvbmZpZ19oZWxwZXJfcmVzdW1lKHJjZHUt PmRkZXYpOwo+ID4gPiA+ID4+Pj4+Pgo+ID4gPiA+ID4+Pj4+PiAgIH0KPiA+ID4gPiA+Pj4+Pj4g ICAjZW5kaWYKPiA+ID4gPiA+Pj4+Pj4KPiA+ID4gPiA+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfZHJ2LmgKPiA+ID4gPiA+Pj4+Pj4gYi9kcml2ZXJz L2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X2Rydi5oIGluZGV4IGIzYTI1ZTguLmZmMjVjOGQgMTAw NjQ0Cj4gPiA+ID4gPj4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVf ZHJ2LmgKPiA+ID4gPiA+Pj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9k dV9kcnYuaAo+ID4gPiA+ID4+Pj4+PiBAQCAtNzgsNyArNzgsNiBAQCBzdHJ1Y3QgcmNhcl9kdV9k ZXZpY2Ugewo+ID4gPiA+ID4+Pj4+Pgo+ID4gPiA+ID4+Pj4+PiAgICAgICAgICBzdHJ1Y3QgZHJt X2RldmljZSAqZGRldjsKPiA+ID4gPiA+Pj4+Pj4gICAgICAgICAgc3RydWN0IGRybV9mYmRldl9j bWEgKmZiZGV2Owo+ID4gPiA+ID4+Pj4+Pgo+ID4gPiA+ID4+Pj4+PiAtICAgICAgIHN0cnVjdCBk cm1fYXRvbWljX3N0YXRlICpzdXNwZW5kX3N0YXRlOwo+ID4gPiA+ID4+Pj4+Pgo+ID4gPiA+ID4+ Pj4+PiAgICAgICAgICBzdHJ1Y3QgcmNhcl9kdV9jcnRjIGNydGNzW1JDQVJfRFVfTUFYX0NSVENT XTsKPiA+ID4gPiA+Pj4+Pj4gICAgICAgICAgdW5zaWduZWQgaW50IG51bV9jcnRjczsKPiA+ID4g PiA+Pj4+Pj4KPiA+ID4gPiA+Pj4+Pj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9mYl9j bWFfaGVscGVyLmgKPiA+ID4gPiA+Pj4+Pj4gYi9pbmNsdWRlL2RybS9kcm1fZmJfY21hX2hlbHBl ci5oIGluZGV4IDRhNjVmMGQuLjhkYmJlMWUgMTAwNjQ0Cj4gPiA+ID4gPj4+Pj4+IC0tLSBhL2lu Y2x1ZGUvZHJtL2RybV9mYl9jbWFfaGVscGVyLmgKPiA+ID4gPiA+Pj4+Pj4gKysrIGIvaW5jbHVk ZS9kcm0vZHJtX2ZiX2NtYV9oZWxwZXIuaAo+ID4gPiA+ID4+Pj4+PiBAQCAtMjYsOCArMjYsNiBA QCBzdHJ1Y3QgZHJtX2ZiZGV2X2NtYSAqZHJtX2ZiZGV2X2NtYV9pbml0KHN0cnVjdAo+ID4gPiA+ ID4+Pj4+PiBkcm1fZGV2aWNlICpkZXYsCj4gPiA+ID4gPj4+Pj4+Cj4gPiA+ID4gPj4+Pj4+ICAg dm9pZCBkcm1fZmJkZXZfY21hX3Jlc3RvcmVfbW9kZShzdHJ1Y3QgZHJtX2ZiZGV2X2NtYSAqZmJk ZXZfY21hKTsKPiA+ID4gPiA+Pj4+Pj4gICB2b2lkIGRybV9mYmRldl9jbWFfaG90cGx1Z19ldmVu dChzdHJ1Y3QgZHJtX2ZiZGV2X2NtYSAqZmJkZXZfY21hKTsKPiA+ID4gPiA+Pj4+Pj4KPiA+ID4g PiA+Pj4+Pj4gLXZvaWQgZHJtX2ZiZGV2X2NtYV9zZXRfc3VzcGVuZF91bmxvY2tlZChzdHJ1Y3Qg ZHJtX2ZiZGV2X2NtYQo+ID4gPiA+ID4+Pj4+PiAqZmJkZXZfY21hLAo+ID4gPiA+ID4+Pj4+PiAt ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBzdGF0ZSk7Cj4gPiA+ ID4gPj4+Pj4+Cj4gPiA+ID4gPj4+Pj4+ICAgc3RydWN0IGRybV9nZW1fY21hX29iamVjdCAqZHJt X2ZiX2NtYV9nZXRfZ2VtX29iaihzdHJ1Y3QKPiA+ID4gPiA+Pj4+Pj4gICBkcm1fZnJhbWVidWZm ZXIgKmZiLAo+ID4gPiA+ID4+Pj4+Pgo+ID4gPiA+ID4+Pj4+PiAgICAgICAgICB1bnNpZ25lZCBp bnQgcGxhbmUpOwo+ID4gPiA+Cj4gPgo+ID4gLS0KPiA+IERhbmllbCBWZXR0ZXIKPiA+IFNvZnR3 YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgo+ID4gaHR0cDovL2Jsb2cuZmZ3bGwuY2gK Ci0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpo dHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9k cmktZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.1 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_PASS,USER_AGENT_MUTT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 19773C46475 for ; Tue, 23 Oct 2018 13:40:50 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id A4A582075D for ; Tue, 23 Oct 2018 13:40:49 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=ffwll.ch header.i=@ffwll.ch header.b="Aad0blps" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A4A582075D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728084AbeJWWES (ORCPT ); Tue, 23 Oct 2018 18:04:18 -0400 Received: from mail-ed1-f68.google.com ([209.85.208.68]:34636 "EHLO mail-ed1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726277AbeJWWES (ORCPT ); Tue, 23 Oct 2018 18:04:18 -0400 Received: by mail-ed1-f68.google.com with SMTP id w19-v6so1672785eds.1 for ; Tue, 23 Oct 2018 06:40:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=sender:date:from:to:cc:subject:message-id:mail-followup-to :references:mime-version:content-disposition :content-transfer-encoding:in-reply-to:user-agent; bh=HAscuA7lvAkCpbCNskj9tMuhG7sRQzglBkY/CVYtHrU=; b=Aad0blpsQ34GU39pUmgIDp85ObvecvfDUohYx/oD9inUBBV/CT81eWb1PUtoFP4flM JejRkyvvTQEgVQOuoUuZEIxd7JWLzxgExitqYp40iCslFmfbDEV9btqH2PvJaAD5fE0+ vb3txolE+q7vDSRqDwpIdU6CZ9IBR+RslH6nc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :mail-followup-to:references:mime-version:content-disposition :content-transfer-encoding:in-reply-to:user-agent; bh=HAscuA7lvAkCpbCNskj9tMuhG7sRQzglBkY/CVYtHrU=; b=H7dxv1qVKjQC4KkHw4imjWmzmPMBFTgoyhGd94kbKl02+bMVZzCoaCrT4i6LVFNw9Y a7+PRtYZjqJFIhFBT/1B7k80sHyxC2trigZ9nymo7SWCNzJC6VzUf3s7TlokwokPaKnr TDsbdzDYF8DihLuYC0oVMRHh9y2YN9KT0j7i4jcvfR7e0o2XbE5e/gmLkAxpcIU1HWHN nLh8Dk19RXdXw8xB2QbbuNA6MVamzlYB7ehCedcwb90elTVy7DzPS124OFnzPVi1VzJb 94MCeteXMKZlsk9c1HrstZRlXQjoCDo3XT8Ps/8lDClQtUfw9BI9+lkF6mkMsLvpFXVj X7sA== X-Gm-Message-State: ABuFfoi7GJI8xip7Ymxq80gxfQsiTeQCgsr8oQAXO6RzrsQPx5xOgIT+ OmEYTsuEAaKceRnMPmCNj/Z5vQ== X-Google-Smtp-Source: ACcGV60zo7JIf5YWZleiPL9UOX7ewoFK8BWHJZHlnVgFbvBAqpH3to9V6nXx+l8DSag+tWHX9pOaug== X-Received: by 2002:a17:906:8491:: with SMTP id m17-v6mr38621311ejx.120.1540302044795; Tue, 23 Oct 2018 06:40:44 -0700 (PDT) Received: from phenom.ffwll.local ([2a02:168:569e:0:3106:d637:d723:e855]) by smtp.gmail.com with ESMTPSA id l22-v6sm367054ejd.53.2018.10.23.06.40.43 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 23 Oct 2018 06:40:44 -0700 (PDT) Date: Tue, 23 Oct 2018 15:40:41 +0200 From: Daniel Vetter To: Souptick Joarder Cc: noralf@tronnes.org, Laurent Pinchart , Gustavo Padovan , Maarten Lankhorst , sean@poorly.run, airlied@linux.ie, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org, Daniel Vetter Subject: Re: [PATCH] drm/rcar-du: Convert drm_atomic_helper_suspend/resume() Message-ID: <20181023134041.GO324@phenom.ffwll.local> Mail-Followup-To: Souptick Joarder , noralf@tronnes.org, Laurent Pinchart , Gustavo Padovan , Maarten Lankhorst , sean@poorly.run, airlied@linux.ie, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org References: <20180918163903.GA11172@jordon-HP-15-Notebook-PC> <20809880.gF2CxujBy3@avalon> <20181001065220.GE11082@phenom.ffwll.local> <26527911.hs5tlrnKDc@avalon> <042a6076-62e2-c029-2a09-f1123d9ac403@tronnes.org> <20181011081849.GR31561@phenom.ffwll.local> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Operating-System: Linux phenom 4.18.0-2-amd64 User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Oct 22, 2018 at 01:51:35PM +0530, Souptick Joarder wrote: > Hi Laurent, > > On Thu, Oct 11, 2018 at 1:48 PM Daniel Vetter wrote: > > > > On Mon, Oct 08, 2018 at 09:57:52PM +0530, Souptick Joarder wrote: > > > Hi Laurent, > > > On Mon, Oct 1, 2018 at 6:12 PM Noralf Trønnes wrote: > > > > > > > > > > > > Den 01.10.2018 13.56, skrev Laurent Pinchart: > > > > > Hi Daniel, > > > > > > > > > > On Monday, 1 October 2018 09:52:20 EEST Daniel Vetter wrote: > > > > >> On Fri, Sep 28, 2018 at 06:30:35PM +0300, Laurent Pinchart wrote: > > > > >>> On Friday, 28 September 2018 18:05:18 EEST Laurent Pinchart wrote: > > > > >>>> On Thursday, 27 September 2018 09:34:18 EEST Souptick Joarder wrote: > > > > >>>>> On Tue, Sep 18, 2018 at 10:05 PM Souptick Joarder wrote: > > > > >>>>>> convert drm_atomic_helper_suspend/resume() to use > > > > >>>>>> drm_mode_config_helper_suspend/resume(). > > > > >>>>>> > > > > >>>>>> remove suspend_state field from the rcar_du_device > > > > >>>>>> structure as it is no more required. > > > > >>>>>> > > > > >>>>>> With this conversion, also drm_fbdev_cma_set_suspend_unlocked() > > > > >>>>>> will left with no consumer. So this function can be removed. > > > > >>>>>> > > > > >>>>>> Signed-off-by: Souptick Joarder > > > > >>>>> Laurent, any comment on this patch ?? > > > > >>>> Sorry for the delay, and thanks for pinging me. > > > > >>>> > > > > >>>> Reviewed-by: Laurent Pinchart > > > > >>>> > > > > >>>> Should I apply this to my tree or do you plan to merge it through > > > > >>>> drm-misc > > > > >>>> as it touches drm_fb_cma_helper.c ? > > > > >>> I just realized that the same patch got supplied by Noralf Trønnes nearly > > > > >>> a > > > > >>> year ago, and was later superseded by > > > > >>> https://patchwork.freedesktop.org/patch/247861/. I think we should thus > > > > >>> apply Noralf's patches instead (once he sends v4 out). > > > > >> I don't think Noralf is still actively working on this, he's busy with the > > > > >> fbdev emulation stuff. Probably better if you pick up one of the existing > > > > >> ones, than waiting another year or so :-) > > > > > Isn't https://patchwork.freedesktop.org/patch/247861/ part of the fbdev > > > > > emulation stuff ? That patch series is from less than a month ago, so I > > > > > thought it was actively developed. > > > > > > > > > > Let's ask him. Noralf, any comment ? :-) > > > > > > > > I see now that I've caused some confusion here. > > > > > > > > I did some refactoring of the fbdev stuff in the CMA helper last year. > > > > In the last series of that work there is this patch: > > > > > > > > [v3,07/11] drm/rcar-du: Use drm_mode_config_helper_suspend/resume() > > > > https://patchwork.freedesktop.org/patch/192414/ > > > > > > > > During Christmas I got the idea that maybe it was possible to use a dumb > > > > buffer to do generic fbdev emulation. That work took me 6 months before a > > > > solution using a general internal DRM client was hammered out. By the > > > > time I started to convert drivers I had forgotten about that patch. > > > > > > > > When I wrote the patch (#247861) to convert rcar to the generic fbdev, I > > > > just bundled up the suspend/resume change with the fbdev conversion. > > > > Laurent and Sam commented on that bundling, so I said that I would split > > > > it up in the next version. > > > > > > > > All that being said, I think that this patch should be applied and I'll > > > > just rebase the rcar fbdev conversion patch on top of that. > > > > It's the easiest for me at least :-) > > > > > > > Any conclusion on this patch ? :-) > > > > Laurent should pick it up and apply to his rcar-du tree I think. We can > > also stuff it into drm-misc as a fallback. > > Can we get this patch in queue for 4.20 ? 5.1, 4.20 is already done. But yes, I pulled this into drm-misc-next. Thanks for your patch. -Daniel > > > -Daniel > > > > > > > > ers/gpu/drm/drm_fb_cma_helper.c | 18 ------------------ > > > > >>>>>> drivers/gpu/drm/rcar-du/rcar_du_drv.c | 21 ++------------------- > > > > >>>>>> drivers/gpu/drm/rcar-du/rcar_du_drv.h | 1 - > > > > >>>>>> include/drm/drm_fb_cma_helper.h | 2 -- > > > > >>>>>> 4 files changed, 2 insertions(+), 40 deletions(-) > > > > >>>>>> > > > > >>>>>> diff --git a/drivers/gpu/drm/drm_fb_cma_helper.c > > > > >>>>>> b/drivers/gpu/drm/drm_fb_cma_helper.c index 47e0e2f..96efc88 100644 > > > > >>>>>> --- a/drivers/gpu/drm/drm_fb_cma_helper.c > > > > >>>>>> +++ b/drivers/gpu/drm/drm_fb_cma_helper.c > > > > >>>>>> @@ -224,21 +224,3 @@ void drm_fbdev_cma_hotplug_event(struct > > > > >>>>>> drm_fbdev_cma *fbdev_cma) > > > > >>>>>> > > > > >>>>>> drm_fb_helper_hotplug_event(&fbdev_cma->fb_helper); > > > > >>>>>> > > > > >>>>>> } > > > > >>>>>> EXPORT_SYMBOL_GPL(drm_fbdev_cma_hotplug_event); > > > > >>>>>> > > > > >>>>>> - > > > > >>>>>> -/** > > > > >>>>>> - * drm_fbdev_cma_set_suspend_unlocked - wrapper around > > > > >>>>>> - * > > > > >>>>>> drm_fb_helper_set_suspend_unlocked > > > > >>>>>> - * @fbdev_cma: The drm_fbdev_cma struct, may be NULL > > > > >>>>>> - * @state: desired state, zero to resume, non-zero to suspend > > > > >>>>>> - * > > > > >>>>>> - * Calls drm_fb_helper_set_suspend, which is a wrapper around > > > > >>>>>> - * fb_set_suspend implemented by fbdev core. > > > > >>>>>> - */ > > > > >>>>>> -void drm_fbdev_cma_set_suspend_unlocked(struct drm_fbdev_cma > > > > >>>>>> *fbdev_cma, > > > > >>>>>> - bool state) > > > > >>>>>> -{ > > > > >>>>>> - if (fbdev_cma) > > > > >>>>>> - > > > > >>>>>> drm_fb_helper_set_suspend_unlocked(&fbdev_cma->fb_helper, > > > > >>>>>> - state); > > > > >>>>>> -} > > > > >>>>>> -EXPORT_SYMBOL(drm_fbdev_cma_set_suspend_unlocked); > > > > >>>>>> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c > > > > >>>>>> b/drivers/gpu/drm/rcar-du/rcar_du_drv.c index 02aee6c..288220f 100644 > > > > >>>>>> --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c > > > > >>>>>> +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c > > > > >>>>>> @@ -357,32 +357,15 @@ static void rcar_du_lastclose(struct drm_device > > > > >>>>>> *dev) > > > > >>>>>> > > > > >>>>>> static int rcar_du_pm_suspend(struct device *dev) > > > > >>>>>> { > > > > >>>>>> > > > > >>>>>> struct rcar_du_device *rcdu = dev_get_drvdata(dev); > > > > >>>>>> > > > > >>>>>> - struct drm_atomic_state *state; > > > > >>>>>> > > > > >>>>>> - drm_kms_helper_poll_disable(rcdu->ddev); > > > > >>>>>> - drm_fbdev_cma_set_suspend_unlocked(rcdu->fbdev, true); > > > > >>>>>> - > > > > >>>>>> - state = drm_atomic_helper_suspend(rcdu->ddev); > > > > >>>>>> - if (IS_ERR(state)) { > > > > >>>>>> - drm_fbdev_cma_set_suspend_unlocked(rcdu->fbdev, > > > > >>>>>> false); > > > > >>>>>> - drm_kms_helper_poll_enable(rcdu->ddev); > > > > >>>>>> - return PTR_ERR(state); > > > > >>>>>> - } > > > > >>>>>> - > > > > >>>>>> - rcdu->suspend_state = state; > > > > >>>>>> - > > > > >>>>>> - return 0; > > > > >>>>>> + return drm_mode_config_helper_suspend(rcdu->ddev); > > > > >>>>>> > > > > >>>>>> } > > > > >>>>>> > > > > >>>>>> static int rcar_du_pm_resume(struct device *dev) > > > > >>>>>> { > > > > >>>>>> > > > > >>>>>> struct rcar_du_device *rcdu = dev_get_drvdata(dev); > > > > >>>>>> > > > > >>>>>> - drm_atomic_helper_resume(rcdu->ddev, rcdu->suspend_state); > > > > >>>>>> - drm_fbdev_cma_set_suspend_unlocked(rcdu->fbdev, false); > > > > >>>>>> - drm_kms_helper_poll_enable(rcdu->ddev); > > > > >>>>>> - > > > > >>>>>> - return 0; > > > > >>>>>> + return drm_mode_config_helper_resume(rcdu->ddev); > > > > >>>>>> > > > > >>>>>> } > > > > >>>>>> #endif > > > > >>>>>> > > > > >>>>>> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.h > > > > >>>>>> b/drivers/gpu/drm/rcar-du/rcar_du_drv.h index b3a25e8..ff25c8d 100644 > > > > >>>>>> --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.h > > > > >>>>>> +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.h > > > > >>>>>> @@ -78,7 +78,6 @@ struct rcar_du_device { > > > > >>>>>> > > > > >>>>>> struct drm_device *ddev; > > > > >>>>>> struct drm_fbdev_cma *fbdev; > > > > >>>>>> > > > > >>>>>> - struct drm_atomic_state *suspend_state; > > > > >>>>>> > > > > >>>>>> struct rcar_du_crtc crtcs[RCAR_DU_MAX_CRTCS]; > > > > >>>>>> unsigned int num_crtcs; > > > > >>>>>> > > > > >>>>>> diff --git a/include/drm/drm_fb_cma_helper.h > > > > >>>>>> b/include/drm/drm_fb_cma_helper.h index 4a65f0d..8dbbe1e 100644 > > > > >>>>>> --- a/include/drm/drm_fb_cma_helper.h > > > > >>>>>> +++ b/include/drm/drm_fb_cma_helper.h > > > > >>>>>> @@ -26,8 +26,6 @@ struct drm_fbdev_cma *drm_fbdev_cma_init(struct > > > > >>>>>> drm_device *dev, > > > > >>>>>> > > > > >>>>>> void drm_fbdev_cma_restore_mode(struct drm_fbdev_cma *fbdev_cma); > > > > >>>>>> void drm_fbdev_cma_hotplug_event(struct drm_fbdev_cma *fbdev_cma); > > > > >>>>>> > > > > >>>>>> -void drm_fbdev_cma_set_suspend_unlocked(struct drm_fbdev_cma > > > > >>>>>> *fbdev_cma, > > > > >>>>>> - bool state); > > > > >>>>>> > > > > >>>>>> struct drm_gem_cma_object *drm_fb_cma_get_gem_obj(struct > > > > >>>>>> drm_framebuffer *fb, > > > > >>>>>> > > > > >>>>>> unsigned int plane); > > > > > > > > -- > > Daniel Vetter > > Software Engineer, Intel Corporation > > http://blog.ffwll.ch -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch