From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B939C72 for ; Wed, 5 May 2021 14:15:38 +0000 (UTC) Received: by mail.kernel.org (Postfix) with ESMTPSA id 7B97261106; Wed, 5 May 2021 14:15:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620224138; bh=Dm86HNWhTP5ywVYQgBazD3r+DHUcNYJVAYcVIdMuGt4=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=mPQAayT+vIeGsDpuv5VCic1U8BoxH50iO7qWXqGufVb8NAbxCJtYhs6bsnKQtjN/C xBGcAoZ49N/sGES3er5z8VmPDdRGJ/BJeWWorTCFB/vfKsgk5V1Rc9W4o/FzZVwn5n KhiQV4CDU5lOQVeFp1S9Y0dvqLB7KHMkYHr+gbgFvCrkx0m5p4uD86WjQH/cBcYUkZ anyI8gy42uJ+/KDtm6G4uUWXi+rGgX5mpizE7GyIDHM3G65mF4HdCs8PvnMZuOPGxh r8HPWWQokQZ2tvGZzC4LHVwAf+iqzKsIBVO3FxrlTajLnrBMr9VpByvg1uejhk+My1 1kFgXf0DdDseg== Date: Wed, 5 May 2021 16:15:32 +0200 From: Mauro Carvalho Chehab To: Ezequiel Garcia Cc: linuxarm@huawei.com, mauro.chehab@huawei.com, Greg Kroah-Hartman , Hans Verkuil , Mauro Carvalho Chehab , Philipp Zabel , linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-staging@lists.linux.dev Subject: Re: [PATCH 09/25] media: hantro: do a PM resume earlier Message-ID: <20210505161532.6d9da768@coco.lan> In-Reply-To: <735925557d7fde1c11affeea703f8486febc825d.camel@collabora.com> References: <82114a4bd9c7bc1188c6a7167a6e74bb3360961d.1620207353.git.mchehab+huawei@kernel.org> <11c24f97ef71b16c2e7b3ba40ca66a28c12df692.camel@collabora.com> <20210505154647.62784bf7@coco.lan> <735925557d7fde1c11affeea703f8486febc825d.camel@collabora.com> X-Mailer: Claws Mail 3.17.8 (GTK+ 2.24.33; x86_64-redhat-linux-gnu) X-Mailing-List: linux-staging@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Em Wed, 05 May 2021 11:01:35 -0300 Ezequiel Garcia escreveu: > On Wed, 2021-05-05 at 15:46 +0200, Mauro Carvalho Chehab wrote: > > Em Wed, 05 May 2021 10:22:03 -0300 > > Ezequiel Garcia escreveu: > > =20 > > > Hi Mauro, > > >=20 > > > Thanks for working on this. > > >=20 > > > On Wed, 2021-05-05 at 11:41 +0200, Mauro Carvalho Chehab wrote: =20 > > > > The device_run() first enables the clock and then > > > > tries to resume PM runtime, checking for errors. > > > >=20 > > > > Well, if for some reason the pm_runtime can not resume, > > > > it would be better to detect it beforehand. > > > >=20 > > > > So, change the order inside device_run(). > > > >=20 > > > > Reviewed-by: Ezequiel Garcia > > > > Fixes: 775fec69008d ("media: add Rockchip VPU JPEG encoder driver") > > > > Signed-off-by: Mauro Carvalho Chehab =C2= =A0 =20 > > >=20 > > > It seems this is wrong now, as this series doesn't have > > >=20 > > > https://lore.kernel.org/linux-media/803c39fafdd62efc6f9e4d99a372af2c6= 955143b.1619621413.git.mchehab+huawei@kernel.org/ > > >=20 > > > I don't fully understand why all the back and forth > > > happening on this series, but the former Hantro patches > > > looked good (despite perhaps unclear commit messages). =20 > >=20 > > There was a request to break the original /79 series into smaller ones, > > to make easier for reviewers. So, I opted to split it into (probably) > > 3 series: > >=20 > > 1. Fixes (this series); > > 2. "use pm_runtime_resume_and_get" for the I2C drivers; > > 3. "use pm_runtime_resume_and_get" for remaining ones. > >=20 > > Before flooding everybody's email's with series (2) and (3), better > > to focus at the fixes first. I'll probably send the other two series > > by tomorrow. > > =20 > > > Any issues just squashing these two commits from "[PATCH v4 00/79] Ad= dress some issues with PM runtime at media subsystem": > > >=20 > > > =C2=A0 media: hantro: use pm_runtime_resume_and_get() > > > =C2=A0 media: hantro: do a PM resume earlier =20 > >=20 > > The problem is that pm_runtime_resume_and_get() was added only > > recently (Kernel v5.10).=20 > >=20 > > So, I opted to place the fix patches before the changes, as this > > way, most (all?) patches can be easily be backported to legacy Kernels > > as needed. > > =20 >=20 > Got it. >=20 > Maybe the better fix would be the squash of [PATCH v4 78/79] media: hantr= o: use pm_runtime_resume_and_get() > and [PATCH v4 79/79] media: hantro: do a PM resume earlier but keeping pm= _runtime_get_sync. >=20 > And then you can replace the pm_runtime_get_sync with pm_runtime_resume_a= nd_get. Works for me. So, the fixes patch will be the enclosed one, right? Btw, I agree with Jonathan that the best would be to also move this: clk_bulk_disable(vpu->variant->num_clocks, vpu->clocks); out of hantro_job_finish_no_pm(), as, when an error happens at device_run(), the clock lines won't be enabled at the first place. > Thanks, > Ezequiel Thanks, Mauro [PATCH] media: hantro: do a PM resume earlier The device_run() first enables the clock and then tries to resume PM runtime, checking for errors. Well, if for some reason the pm_runtime can not resume, it would be better to detect it beforehand. So, change the order inside device_run(). Reviewed-by: Ezequiel Garcia Fixes: 775fec69008d ("media: add Rockchip VPU JPEG encoder driver") Signed-off-by: Mauro Carvalho Chehab diff --git a/drivers/staging/media/hantro/hantro_drv.c b/drivers/staging/me= dia/hantro/hantro_drv.c index 595e82a82728..bdb57fb56f47 100644 --- a/drivers/staging/media/hantro/hantro_drv.c +++ b/drivers/staging/media/hantro/hantro_drv.c @@ -56,14 +56,12 @@ dma_addr_t hantro_get_ref(struct hantro_ctx *ctx, u64 t= s) return hantro_get_dec_buf_addr(ctx, buf); } =20 -static void hantro_job_finish(struct hantro_dev *vpu, - struct hantro_ctx *ctx, - enum vb2_buffer_state result) +static void hantro_job_finish_no_pm(struct hantro_dev *vpu, + struct hantro_ctx *ctx, + enum vb2_buffer_state result) { struct vb2_v4l2_buffer *src, *dst; =20 - pm_runtime_mark_last_busy(vpu->dev); - pm_runtime_put_autosuspend(vpu->dev); clk_bulk_disable(vpu->variant->num_clocks, vpu->clocks); =20 src =3D v4l2_m2m_next_src_buf(ctx->fh.m2m_ctx); @@ -81,6 +79,16 @@ static void hantro_job_finish(struct hantro_dev *vpu, result); } =20 +static void hantro_job_finish(struct hantro_dev *vpu, + struct hantro_ctx *ctx, + enum vb2_buffer_state result) +{ + pm_runtime_mark_last_busy(vpu->dev); + pm_runtime_put_autosuspend(vpu->dev); + + hantro_job_finish_no_pm(vpu, ctx, result); +} + void hantro_irq_done(struct hantro_dev *vpu, enum vb2_buffer_state result) { @@ -152,12 +160,15 @@ static void device_run(void *priv) src =3D hantro_get_src_buf(ctx); dst =3D hantro_get_dst_buf(ctx); =20 + ret =3D pm_runtime_get_sync(ctx->dev->dev); + if (ret < 0) { + pm_runtime_put_noidle(ctx->dev->dev); + goto err_cancel_job; + } + ret =3D clk_bulk_enable(ctx->dev->variant->num_clocks, ctx->dev->clocks); if (ret) goto err_cancel_job; - ret =3D pm_runtime_get_sync(ctx->dev->dev); - if (ret < 0) - goto err_cancel_job; =20 v4l2_m2m_buf_copy_metadata(src, dst, true); =20 @@ -165,7 +176,7 @@ static void device_run(void *priv) return; =20 err_cancel_job: - hantro_job_finish(ctx->dev, ctx, VB2_BUF_STATE_ERROR); + hantro_job_finish_no_pm(ctx->dev, ctx, VB2_BUF_STATE_ERROR); } =20 static struct v4l2_m2m_ops vpu_m2m_ops =3D { 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=-16.2 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_2 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 925F3C433ED for ; Wed, 5 May 2021 14:16:00 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id E4DC161106 for ; Wed, 5 May 2021 14:15:59 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E4DC161106 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-ID: Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=+/gXO0uAbfG0CGm0Eo9mm7QyRC5mfFAsoYF6BpsLiC4=; b=ngKle7S7QX3ek7eYgcM0r4FM2 0VKjr77jpB4gJUm4ehzUVDCQysjzTeD9ZRQG1tQnDdjxO0E5u7Ol/E3lAsC03uhIuyI8lIETu/G3g 6I0rexxprhxXHXCGuA1V2MeukSbXBAqcAlwovVABfOxQWybdtGs93cfUOlzBAwnT8J/UxtvTpItyp 36G0y0DLSF6PWgy0o19mG6uHqT0Uen0QUwUbd+Veyihcl/6aJGy2ZnqLE2K/gtGZBasxDtbkl8DK3 b6yrAJjVSpf9MbbXL9fJEEEvV6eWJTALxXxWWM0Rdy3+scLoX54t73cFPAlZ2ZGusVlXeZn2KQCnp Dswrw29dg==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1leIJX-001PAz-HM; Wed, 05 May 2021 14:15:51 +0000 Received: from bombadil.infradead.org ([2607:7c80:54:e::133]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1leIJR-001P9k-Q9 for linux-rockchip@desiato.infradead.org; Wed, 05 May 2021 14:15:42 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Content-Transfer-Encoding: Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Subject:Cc:To: From:Date:Sender:Reply-To:Content-ID:Content-Description; bh=9vD1KRaUtHtuD7e40NRO3Uq3fqOldwU+bYDGSkmNxp4=; b=lhQHSx+HeHUKg6j4HPahCxDyi4 nfbmfaLHqrzqm1nTaf6ApkCcxAGS4VI195L3OKOyv6SL9LT4NxVOVhp/6ZMIDfarji1X3JdLw5djw mPSiHdmYE6kwNIQ4Lds59SRyP3gIudXUAX/M0N3IBNvbliMOQmN9aOd20z4kPsCSp6W/oIhMYBlmh TkP28QVjLXI90tHdf+630i5vrGVr3toCOsI0LGEiom5E6FTdw+BjlMLn8ezDEDefdpWPzuHS8PBWO NSN98Uc2+31ojUmf9K650s4PBWPy4ok+O+/JHmhrJJamOZFZvijkIkklOa/uBuadl/Hw6QfxoAmWi +6xAHJFg==; Received: from mail.kernel.org ([198.145.29.99]) by bombadil.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1leIJO-004olj-O1 for linux-rockchip@lists.infradead.org; Wed, 05 May 2021 14:15:40 +0000 Received: by mail.kernel.org (Postfix) with ESMTPSA id 7B97261106; Wed, 5 May 2021 14:15:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620224138; bh=Dm86HNWhTP5ywVYQgBazD3r+DHUcNYJVAYcVIdMuGt4=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=mPQAayT+vIeGsDpuv5VCic1U8BoxH50iO7qWXqGufVb8NAbxCJtYhs6bsnKQtjN/C xBGcAoZ49N/sGES3er5z8VmPDdRGJ/BJeWWorTCFB/vfKsgk5V1Rc9W4o/FzZVwn5n KhiQV4CDU5lOQVeFp1S9Y0dvqLB7KHMkYHr+gbgFvCrkx0m5p4uD86WjQH/cBcYUkZ anyI8gy42uJ+/KDtm6G4uUWXi+rGgX5mpizE7GyIDHM3G65mF4HdCs8PvnMZuOPGxh r8HPWWQokQZ2tvGZzC4LHVwAf+iqzKsIBVO3FxrlTajLnrBMr9VpByvg1uejhk+My1 1kFgXf0DdDseg== Date: Wed, 5 May 2021 16:15:32 +0200 From: Mauro Carvalho Chehab To: Ezequiel Garcia Cc: linuxarm@huawei.com, mauro.chehab@huawei.com, Greg Kroah-Hartman , Hans Verkuil , Mauro Carvalho Chehab , Philipp Zabel , linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-staging@lists.linux.dev Subject: Re: [PATCH 09/25] media: hantro: do a PM resume earlier Message-ID: <20210505161532.6d9da768@coco.lan> In-Reply-To: <735925557d7fde1c11affeea703f8486febc825d.camel@collabora.com> References: <82114a4bd9c7bc1188c6a7167a6e74bb3360961d.1620207353.git.mchehab+huawei@kernel.org> <11c24f97ef71b16c2e7b3ba40ca66a28c12df692.camel@collabora.com> <20210505154647.62784bf7@coco.lan> <735925557d7fde1c11affeea703f8486febc825d.camel@collabora.com> X-Mailer: Claws Mail 3.17.8 (GTK+ 2.24.33; x86_64-redhat-linux-gnu) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210505_071538_893237_D13EBA46 X-CRM114-Status: GOOD ( 35.78 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org RW0gV2VkLCAwNSBNYXkgMjAyMSAxMTowMTozNSAtMDMwMApFemVxdWllbCBHYXJjaWEgPGV6ZXF1 aWVsQGNvbGxhYm9yYS5jb20+IGVzY3JldmV1OgoKPiBPbiBXZWQsIDIwMjEtMDUtMDUgYXQgMTU6 NDYgKzAyMDAsIE1hdXJvIENhcnZhbGhvIENoZWhhYiB3cm90ZToKPiA+IEVtIFdlZCwgMDUgTWF5 IDIwMjEgMTA6MjI6MDMgLTAzMDAKPiA+IEV6ZXF1aWVsIEdhcmNpYSA8ZXplcXVpZWxAY29sbGFi b3JhLmNvbT4gZXNjcmV2ZXU6Cj4gPiAgIAo+ID4gPiBIaSBNYXVybywKPiA+ID4gCj4gPiA+IFRo YW5rcyBmb3Igd29ya2luZyBvbiB0aGlzLgo+ID4gPiAKPiA+ID4gT24gV2VkLCAyMDIxLTA1LTA1 IGF0IDExOjQxICswMjAwLCBNYXVybyBDYXJ2YWxobyBDaGVoYWIgd3JvdGU6ICAKPiA+ID4gPiBU aGUgZGV2aWNlX3J1bigpIGZpcnN0IGVuYWJsZXMgdGhlIGNsb2NrIGFuZCB0aGVuCj4gPiA+ID4g dHJpZXMgdG8gcmVzdW1lIFBNIHJ1bnRpbWUsIGNoZWNraW5nIGZvciBlcnJvcnMuCj4gPiA+ID4g Cj4gPiA+ID4gV2VsbCwgaWYgZm9yIHNvbWUgcmVhc29uIHRoZSBwbV9ydW50aW1lIGNhbiBub3Qg cmVzdW1lLAo+ID4gPiA+IGl0IHdvdWxkIGJlIGJldHRlciB0byBkZXRlY3QgaXQgYmVmb3JlaGFu ZC4KPiA+ID4gPiAKPiA+ID4gPiBTbywgY2hhbmdlIHRoZSBvcmRlciBpbnNpZGUgZGV2aWNlX3J1 bigpLgo+ID4gPiA+IAo+ID4gPiA+IFJldmlld2VkLWJ5OiBFemVxdWllbCBHYXJjaWEgPGV6ZXF1 aWVsQGNvbGxhYm9yYS5jb20+Cj4gPiA+ID4gRml4ZXM6IDc3NWZlYzY5MDA4ZCAoIm1lZGlhOiBh ZGQgUm9ja2NoaXAgVlBVIEpQRUcgZW5jb2RlciBkcml2ZXIiKQo+ID4gPiA+IFNpZ25lZC1vZmYt Ynk6IE1hdXJvIENhcnZhbGhvIENoZWhhYiA8bWNoZWhhYitodWF3ZWlAa2VybmVsLm9yZz7CoCAg IAo+ID4gPiAKPiA+ID4gSXQgc2VlbXMgdGhpcyBpcyB3cm9uZyBub3csIGFzIHRoaXMgc2VyaWVz IGRvZXNuJ3QgaGF2ZQo+ID4gPiAKPiA+ID4gaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbGludXgt bWVkaWEvODAzYzM5ZmFmZGQ2MmVmYzZmOWU0ZDk5YTM3MmFmMmM2OTU1MTQzYi4xNjE5NjIxNDEz LmdpdC5tY2hlaGFiK2h1YXdlaUBrZXJuZWwub3JnLwo+ID4gPiAKPiA+ID4gSSBkb24ndCBmdWxs eSB1bmRlcnN0YW5kIHdoeSBhbGwgdGhlIGJhY2sgYW5kIGZvcnRoCj4gPiA+IGhhcHBlbmluZyBv biB0aGlzIHNlcmllcywgYnV0IHRoZSBmb3JtZXIgSGFudHJvIHBhdGNoZXMKPiA+ID4gbG9va2Vk IGdvb2QgKGRlc3BpdGUgcGVyaGFwcyB1bmNsZWFyIGNvbW1pdCBtZXNzYWdlcykuICAKPiA+IAo+ ID4gVGhlcmUgd2FzIGEgcmVxdWVzdCB0byBicmVhayB0aGUgb3JpZ2luYWwgLzc5IHNlcmllcyBp bnRvIHNtYWxsZXIgb25lcywKPiA+IHRvIG1ha2UgZWFzaWVyIGZvciByZXZpZXdlcnMuIFNvLCBJ IG9wdGVkIHRvIHNwbGl0IGl0IGludG8gKHByb2JhYmx5KQo+ID4gMyBzZXJpZXM6Cj4gPiAKPiA+ IDEuIEZpeGVzICh0aGlzIHNlcmllcyk7Cj4gPiAyLiAidXNlIHBtX3J1bnRpbWVfcmVzdW1lX2Fu ZF9nZXQiIGZvciB0aGUgSTJDIGRyaXZlcnM7Cj4gPiAzLiAidXNlIHBtX3J1bnRpbWVfcmVzdW1l X2FuZF9nZXQiIGZvciByZW1haW5pbmcgb25lcy4KPiA+IAo+ID4gQmVmb3JlIGZsb29kaW5nIGV2 ZXJ5Ym9keSdzIGVtYWlsJ3Mgd2l0aCBzZXJpZXMgKDIpIGFuZCAoMyksIGJldHRlcgo+ID4gdG8g Zm9jdXMgYXQgdGhlIGZpeGVzIGZpcnN0LiBJJ2xsIHByb2JhYmx5IHNlbmQgdGhlIG90aGVyIHR3 byBzZXJpZXMKPiA+IGJ5IHRvbW9ycm93Lgo+ID4gICAKPiA+ID4gQW55IGlzc3VlcyBqdXN0IHNx dWFzaGluZyB0aGVzZSB0d28gY29tbWl0cyBmcm9tICJbUEFUQ0ggdjQgMDAvNzldIEFkZHJlc3Mg c29tZSBpc3N1ZXMgd2l0aCBQTSBydW50aW1lIGF0IG1lZGlhIHN1YnN5c3RlbSI6Cj4gPiA+IAo+ ID4gPiDCoCBtZWRpYTogaGFudHJvOiB1c2UgcG1fcnVudGltZV9yZXN1bWVfYW5kX2dldCgpCj4g PiA+IMKgIG1lZGlhOiBoYW50cm86IGRvIGEgUE0gcmVzdW1lIGVhcmxpZXIgIAo+ID4gCj4gPiBU aGUgcHJvYmxlbSBpcyB0aGF0IHBtX3J1bnRpbWVfcmVzdW1lX2FuZF9nZXQoKSB3YXMgYWRkZWQg b25seQo+ID4gcmVjZW50bHkgKEtlcm5lbCB2NS4xMCkuIAo+ID4gCj4gPiBTbywgSSBvcHRlZCB0 byBwbGFjZSB0aGUgZml4IHBhdGNoZXMgYmVmb3JlIHRoZSBjaGFuZ2VzLCBhcyB0aGlzCj4gPiB3 YXksIG1vc3QgKGFsbD8pIHBhdGNoZXMgY2FuIGJlIGVhc2lseSBiZSBiYWNrcG9ydGVkIHRvIGxl Z2FjeSBLZXJuZWxzCj4gPiBhcyBuZWVkZWQuCj4gPiAgIAo+IAo+IEdvdCBpdC4KPiAKPiBNYXli ZSB0aGUgYmV0dGVyIGZpeCB3b3VsZCBiZSB0aGUgc3F1YXNoIG9mIFtQQVRDSCB2NCA3OC83OV0g bWVkaWE6IGhhbnRybzogdXNlIHBtX3J1bnRpbWVfcmVzdW1lX2FuZF9nZXQoKQo+IGFuZCBbUEFU Q0ggdjQgNzkvNzldIG1lZGlhOiBoYW50cm86IGRvIGEgUE0gcmVzdW1lIGVhcmxpZXIgYnV0IGtl ZXBpbmcgcG1fcnVudGltZV9nZXRfc3luYy4KPiAKPiBBbmQgdGhlbiB5b3UgY2FuIHJlcGxhY2Ug dGhlIHBtX3J1bnRpbWVfZ2V0X3N5bmMgd2l0aCBwbV9ydW50aW1lX3Jlc3VtZV9hbmRfZ2V0LgoK V29ya3MgZm9yIG1lLiBTbywgdGhlIGZpeGVzIHBhdGNoIHdpbGwgYmUgdGhlIGVuY2xvc2VkIG9u ZSwgcmlnaHQ/CgpCdHcsIEkgYWdyZWUgd2l0aCBKb25hdGhhbiB0aGF0IHRoZSBiZXN0IHdvdWxk IGJlIHRvIGFsc28gbW92ZSB0aGlzOgoKCWNsa19idWxrX2Rpc2FibGUodnB1LT52YXJpYW50LT5u dW1fY2xvY2tzLCB2cHUtPmNsb2Nrcyk7CgpvdXQgb2YgaGFudHJvX2pvYl9maW5pc2hfbm9fcG0o KSwgYXMsIHdoZW4gYW4gZXJyb3IgaGFwcGVucyBhdApkZXZpY2VfcnVuKCksIHRoZSBjbG9jayBs aW5lcyB3b24ndCBiZSBlbmFibGVkIGF0IHRoZSBmaXJzdCBwbGFjZS4KCj4gVGhhbmtzLAo+IEV6 ZXF1aWVsCgpUaGFua3MsCk1hdXJvCgpbUEFUQ0hdIG1lZGlhOiBoYW50cm86IGRvIGEgUE0gcmVz dW1lIGVhcmxpZXIKClRoZSBkZXZpY2VfcnVuKCkgZmlyc3QgZW5hYmxlcyB0aGUgY2xvY2sgYW5k IHRoZW4KdHJpZXMgdG8gcmVzdW1lIFBNIHJ1bnRpbWUsIGNoZWNraW5nIGZvciBlcnJvcnMuCgpX ZWxsLCBpZiBmb3Igc29tZSByZWFzb24gdGhlIHBtX3J1bnRpbWUgY2FuIG5vdCByZXN1bWUsCml0 IHdvdWxkIGJlIGJldHRlciB0byBkZXRlY3QgaXQgYmVmb3JlaGFuZC4KClNvLCBjaGFuZ2UgdGhl IG9yZGVyIGluc2lkZSBkZXZpY2VfcnVuKCkuCgpSZXZpZXdlZC1ieTogRXplcXVpZWwgR2FyY2lh IDxlemVxdWllbEBjb2xsYWJvcmEuY29tPgpGaXhlczogNzc1ZmVjNjkwMDhkICgibWVkaWE6IGFk ZCBSb2NrY2hpcCBWUFUgSlBFRyBlbmNvZGVyIGRyaXZlciIpClNpZ25lZC1vZmYtYnk6IE1hdXJv IENhcnZhbGhvIENoZWhhYiA8bWNoZWhhYitodWF3ZWlAa2VybmVsLm9yZz4KCmRpZmYgLS1naXQg YS9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvaGFudHJvL2hhbnRyb19kcnYuYyBiL2RyaXZlcnMvc3Rh Z2luZy9tZWRpYS9oYW50cm8vaGFudHJvX2Rydi5jCmluZGV4IDU5NWU4MmE4MjcyOC4uYmRiNTdm YjU2ZjQ3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvaGFudHJvL2hhbnRyb19k cnYuYworKysgYi9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvaGFudHJvL2hhbnRyb19kcnYuYwpAQCAt NTYsMTQgKzU2LDEyIEBAIGRtYV9hZGRyX3QgaGFudHJvX2dldF9yZWYoc3RydWN0IGhhbnRyb19j dHggKmN0eCwgdTY0IHRzKQogCXJldHVybiBoYW50cm9fZ2V0X2RlY19idWZfYWRkcihjdHgsIGJ1 Zik7CiB9CiAKLXN0YXRpYyB2b2lkIGhhbnRyb19qb2JfZmluaXNoKHN0cnVjdCBoYW50cm9fZGV2 ICp2cHUsCi0JCQkgICAgICBzdHJ1Y3QgaGFudHJvX2N0eCAqY3R4LAotCQkJICAgICAgZW51bSB2 YjJfYnVmZmVyX3N0YXRlIHJlc3VsdCkKK3N0YXRpYyB2b2lkIGhhbnRyb19qb2JfZmluaXNoX25v X3BtKHN0cnVjdCBoYW50cm9fZGV2ICp2cHUsCisJCQkJICAgIHN0cnVjdCBoYW50cm9fY3R4ICpj dHgsCisJCQkJICAgIGVudW0gdmIyX2J1ZmZlcl9zdGF0ZSByZXN1bHQpCiB7CiAJc3RydWN0IHZi Ml92NGwyX2J1ZmZlciAqc3JjLCAqZHN0OwogCi0JcG1fcnVudGltZV9tYXJrX2xhc3RfYnVzeSh2 cHUtPmRldik7Ci0JcG1fcnVudGltZV9wdXRfYXV0b3N1c3BlbmQodnB1LT5kZXYpOwogCWNsa19i dWxrX2Rpc2FibGUodnB1LT52YXJpYW50LT5udW1fY2xvY2tzLCB2cHUtPmNsb2Nrcyk7CiAKIAlz cmMgPSB2NGwyX20ybV9uZXh0X3NyY19idWYoY3R4LT5maC5tMm1fY3R4KTsKQEAgLTgxLDYgKzc5 LDE2IEBAIHN0YXRpYyB2b2lkIGhhbnRyb19qb2JfZmluaXNoKHN0cnVjdCBoYW50cm9fZGV2ICp2 cHUsCiAJCQkJCSByZXN1bHQpOwogfQogCitzdGF0aWMgdm9pZCBoYW50cm9fam9iX2ZpbmlzaChz dHJ1Y3QgaGFudHJvX2RldiAqdnB1LAorCQkJICAgICAgc3RydWN0IGhhbnRyb19jdHggKmN0eCwK KwkJCSAgICAgIGVudW0gdmIyX2J1ZmZlcl9zdGF0ZSByZXN1bHQpCit7CisJcG1fcnVudGltZV9t YXJrX2xhc3RfYnVzeSh2cHUtPmRldik7CisJcG1fcnVudGltZV9wdXRfYXV0b3N1c3BlbmQodnB1 LT5kZXYpOworCisJaGFudHJvX2pvYl9maW5pc2hfbm9fcG0odnB1LCBjdHgsIHJlc3VsdCk7Cit9 CisKIHZvaWQgaGFudHJvX2lycV9kb25lKHN0cnVjdCBoYW50cm9fZGV2ICp2cHUsCiAJCSAgICAg ZW51bSB2YjJfYnVmZmVyX3N0YXRlIHJlc3VsdCkKIHsKQEAgLTE1MiwxMiArMTYwLDE1IEBAIHN0 YXRpYyB2b2lkIGRldmljZV9ydW4odm9pZCAqcHJpdikKIAlzcmMgPSBoYW50cm9fZ2V0X3NyY19i dWYoY3R4KTsKIAlkc3QgPSBoYW50cm9fZ2V0X2RzdF9idWYoY3R4KTsKIAorCXJldCA9IHBtX3J1 bnRpbWVfZ2V0X3N5bmMoY3R4LT5kZXYtPmRldik7CisJaWYgKHJldCA8IDApIHsKKwkJcG1fcnVu dGltZV9wdXRfbm9pZGxlKGN0eC0+ZGV2LT5kZXYpOworCQlnb3RvIGVycl9jYW5jZWxfam9iOwor CX0KKwogCXJldCA9IGNsa19idWxrX2VuYWJsZShjdHgtPmRldi0+dmFyaWFudC0+bnVtX2Nsb2Nr cywgY3R4LT5kZXYtPmNsb2Nrcyk7CiAJaWYgKHJldCkKIAkJZ290byBlcnJfY2FuY2VsX2pvYjsK LQlyZXQgPSBwbV9ydW50aW1lX2dldF9zeW5jKGN0eC0+ZGV2LT5kZXYpOwotCWlmIChyZXQgPCAw KQotCQlnb3RvIGVycl9jYW5jZWxfam9iOwogCiAJdjRsMl9tMm1fYnVmX2NvcHlfbWV0YWRhdGEo c3JjLCBkc3QsIHRydWUpOwogCkBAIC0xNjUsNyArMTc2LDcgQEAgc3RhdGljIHZvaWQgZGV2aWNl X3J1bih2b2lkICpwcml2KQogCXJldHVybjsKIAogZXJyX2NhbmNlbF9qb2I6Ci0JaGFudHJvX2pv Yl9maW5pc2goY3R4LT5kZXYsIGN0eCwgVkIyX0JVRl9TVEFURV9FUlJPUik7CisJaGFudHJvX2pv Yl9maW5pc2hfbm9fcG0oY3R4LT5kZXYsIGN0eCwgVkIyX0JVRl9TVEFURV9FUlJPUik7CiB9CiAK IHN0YXRpYyBzdHJ1Y3QgdjRsMl9tMm1fb3BzIHZwdV9tMm1fb3BzID0gewoKCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eC1yb2NrY2hpcCBtYWls aW5nIGxpc3QKTGludXgtcm9ja2NoaXBAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMu aW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJvY2tjaGlwCg==