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=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=unavailable 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 CCFC4C43216 for ; Tue, 3 Aug 2021 09:07:20 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 9ADF760C3F for ; Tue, 3 Aug 2021 09:07:20 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 9ADF760C3F Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.de Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id E05C26E4B1; Tue, 3 Aug 2021 09:07:10 +0000 (UTC) Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by gabe.freedesktop.org (Postfix) with ESMTPS id B49B76E499; Tue, 3 Aug 2021 09:07:09 +0000 (UTC) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 309FD200B7; Tue, 3 Aug 2021 09:07:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1627981628; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=BOCosVdfAMT8o2qJiRwG3FOrw3/tjUGJlzM26XpEIRk=; b=iRZ6xy/VvfwSvlehBpOsSu3S2UuMJxmGyZVt3u7OIWhjMecfxRi0X0SMMx3jzmGALaOKAO XMszODlWdIOQEyH+KEBR+PRDhEJ5R7JLEsAM7L1hSvjZlZwJpJ+BtB/YlZXGkYGOnTRo7v ogbQgIjpz3gu+w+GnElZ8A8aRNNOHSM= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1627981628; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=BOCosVdfAMT8o2qJiRwG3FOrw3/tjUGJlzM26XpEIRk=; b=V0dU0KdR54hGGkTTPFefC5vADK5QwDSKY9imvvDnzP4nBTx5mPbrY23RH9mI0NjCAtu632 FlYzAICPQ7JAgzCQ== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 7128213CCA; Tue, 3 Aug 2021 09:07:07 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id ANxjGjsHCWFVJQAAMHmgww (envelope-from ); Tue, 03 Aug 2021 09:07:07 +0000 From: Thomas Zimmermann To: daniel@ffwll.ch, airlied@linux.ie, alexander.deucher@amd.com, christian.koenig@amd.com, liviu.dudau@arm.com, brian.starkey@arm.com, sam@ravnborg.org, bbrezillon@kernel.org, nicolas.ferre@microchip.com, maarten.lankhorst@linux.intel.com, mripard@kernel.org, stefan@agner.ch, alison.wang@nxp.com, patrik.r.jakobsson@gmail.com, anitha.chrisanthus@intel.com, robdclark@gmail.com, edmund.j.dea@intel.com, sean@poorly.run, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, jyri.sarha@iki.fi, tomba@kernel.org, Dan.Sneddon@microchip.com, tomi.valkeinen@ideasonboard.com Cc: amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org, Thomas Zimmermann Subject: [PATCH v2 01/14] drm/amdgpu: Convert to Linux IRQ interfaces Date: Tue, 3 Aug 2021 11:06:51 +0200 Message-Id: <20210803090704.32152-2-tzimmermann@suse.de> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210803090704.32152-1-tzimmermann@suse.de> References: <20210803090704.32152-1-tzimmermann@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: amd-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces@lists.freedesktop.org Sender: "amd-gfx" Drop the DRM IRQ midlayer in favor of Linux IRQ interfaces. DRM's IRQ helpers are mostly useful for UMS drivers. Modern KMS drivers don't benefit from using it. DRM IRQ callbacks are now being called directly or inlined. The interrupt number returned by pci_msi_vector() is now stored in struct amdgpu_irq. Calls to pci_msi_vector() can fail and return a negative errno code. Abort initlaizaton in thi case. The DRM IRQ midlayer does not handle this correctly. Signed-off-by: Thomas Zimmermann Reviewed-by: Alex Deucher Acked-by: Christian König --- drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 1 - drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c | 21 ++++++++++++++------- drivers/gpu/drm/amd/amdgpu/amdgpu_irq.h | 2 +- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c index d637b0536f84..2b0b0e8a6acb 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c @@ -1777,7 +1777,6 @@ static const struct drm_driver amdgpu_kms_driver = { .open = amdgpu_driver_open_kms, .postclose = amdgpu_driver_postclose_kms, .lastclose = amdgpu_driver_lastclose_kms, - .irq_handler = amdgpu_irq_handler, .ioctls = amdgpu_ioctls_kms, .num_ioctls = ARRAY_SIZE(amdgpu_ioctls_kms), .dumb_create = amdgpu_mode_dumb_create, diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c index 7dfdabe1cdf9..3ac39b44a211 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c @@ -46,7 +46,6 @@ #include #include -#include #include #include #include @@ -184,7 +183,7 @@ void amdgpu_irq_disable_all(struct amdgpu_device *adev) * Returns: * result of handling the IRQ, as defined by &irqreturn_t */ -irqreturn_t amdgpu_irq_handler(int irq, void *arg) +static irqreturn_t amdgpu_irq_handler(int irq, void *arg) { struct drm_device *dev = (struct drm_device *) arg; struct amdgpu_device *adev = drm_to_adev(dev); @@ -307,6 +306,7 @@ static void amdgpu_restore_msix(struct amdgpu_device *adev) int amdgpu_irq_init(struct amdgpu_device *adev) { int r = 0; + unsigned int irq; spin_lock_init(&adev->irq.lock); @@ -349,15 +349,22 @@ int amdgpu_irq_init(struct amdgpu_device *adev) INIT_WORK(&adev->irq.ih2_work, amdgpu_irq_handle_ih2); INIT_WORK(&adev->irq.ih_soft_work, amdgpu_irq_handle_ih_soft); - adev->irq.installed = true; - /* Use vector 0 for MSI-X */ - r = drm_irq_install(adev_to_drm(adev), pci_irq_vector(adev->pdev, 0)); + /* Use vector 0 for MSI-X. */ + r = pci_irq_vector(adev->pdev, 0); + if (r < 0) + return r; + irq = r; + + /* PCI devices require shared interrupts. */ + r = request_irq(irq, amdgpu_irq_handler, IRQF_SHARED, adev_to_drm(adev)->driver->name, + adev_to_drm(adev)); if (r) { - adev->irq.installed = false; if (!amdgpu_device_has_dc_support(adev)) flush_work(&adev->hotplug_work); return r; } + adev->irq.installed = true; + adev->irq.irq = irq; adev_to_drm(adev)->max_vblank_count = 0x00ffffff; DRM_DEBUG("amdgpu: irq initialized.\n"); @@ -368,7 +375,7 @@ int amdgpu_irq_init(struct amdgpu_device *adev) void amdgpu_irq_fini_hw(struct amdgpu_device *adev) { if (adev->irq.installed) { - drm_irq_uninstall(&adev->ddev); + free_irq(adev->irq.irq, adev_to_drm(adev)); adev->irq.installed = false; if (adev->irq.msi_enabled) pci_free_irq_vectors(adev->pdev); diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.h index 78ad4784cc74..e9f2c11ea416 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.h @@ -80,6 +80,7 @@ struct amdgpu_irq_src_funcs { struct amdgpu_irq { bool installed; + unsigned int irq; spinlock_t lock; /* interrupt sources */ struct amdgpu_irq_client client[AMDGPU_IRQ_CLIENTID_MAX]; @@ -100,7 +101,6 @@ struct amdgpu_irq { }; void amdgpu_irq_disable_all(struct amdgpu_device *adev); -irqreturn_t amdgpu_irq_handler(int irq, void *arg); int amdgpu_irq_init(struct amdgpu_device *adev); void amdgpu_irq_fini_sw(struct amdgpu_device *adev); -- 2.32.0 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=-17.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT 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 DC742C4338F for ; Tue, 3 Aug 2021 09:10:30 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 A853460EFD for ; Tue, 3 Aug 2021 09:10:30 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org A853460EFD Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.de Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; 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:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=770RkELvshP7bj8x/3LTcYuCSrbGpZmYH0eFxgk6ZsM=; b=ginKjcVxTayCUp o2CONC8kwJNXmv9/jXN9egaOUGR1lRYz90yLAGqGU1hgTt6xbOWzenPNkHv3rsV0UJcO/UFF12WGE VHOxp0FdXpFt02Npy07wkCmQy+h7nA3PLAsldeaNkmAe3T7BKeMSxmyRtmABfBzZ5zpAN4T2G4MB8 H7fDhnmoHtVuMjPt2FGoRZyQFfvQt1ZDEpA4dXFOe0a9ryktOfAzj77tpNWuFPDjTLCjfDJgoM5AS P4ByUg1ocd3kBNGQ357mdYm6h1jGRiTBnzmdKTbYuv8BqsizFjpNRcbt2RxghGJFisRVy3JVzhLDK Uz8NjrqijdWU7iCIjaIg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mAqP1-001hDZ-31; Tue, 03 Aug 2021 09:07:59 +0000 Received: from smtp-out2.suse.de ([195.135.220.29]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mAqOF-001gop-Ay for linux-arm-kernel@lists.infradead.org; Tue, 03 Aug 2021 09:07:14 +0000 Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 309FD200B7; Tue, 3 Aug 2021 09:07:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1627981628; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=BOCosVdfAMT8o2qJiRwG3FOrw3/tjUGJlzM26XpEIRk=; b=iRZ6xy/VvfwSvlehBpOsSu3S2UuMJxmGyZVt3u7OIWhjMecfxRi0X0SMMx3jzmGALaOKAO XMszODlWdIOQEyH+KEBR+PRDhEJ5R7JLEsAM7L1hSvjZlZwJpJ+BtB/YlZXGkYGOnTRo7v ogbQgIjpz3gu+w+GnElZ8A8aRNNOHSM= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1627981628; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=BOCosVdfAMT8o2qJiRwG3FOrw3/tjUGJlzM26XpEIRk=; b=V0dU0KdR54hGGkTTPFefC5vADK5QwDSKY9imvvDnzP4nBTx5mPbrY23RH9mI0NjCAtu632 FlYzAICPQ7JAgzCQ== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 7128213CCA; Tue, 3 Aug 2021 09:07:07 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id ANxjGjsHCWFVJQAAMHmgww (envelope-from ); Tue, 03 Aug 2021 09:07:07 +0000 From: Thomas Zimmermann To: daniel@ffwll.ch, airlied@linux.ie, alexander.deucher@amd.com, christian.koenig@amd.com, liviu.dudau@arm.com, brian.starkey@arm.com, sam@ravnborg.org, bbrezillon@kernel.org, nicolas.ferre@microchip.com, maarten.lankhorst@linux.intel.com, mripard@kernel.org, stefan@agner.ch, alison.wang@nxp.com, patrik.r.jakobsson@gmail.com, anitha.chrisanthus@intel.com, robdclark@gmail.com, edmund.j.dea@intel.com, sean@poorly.run, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, jyri.sarha@iki.fi, tomba@kernel.org, Dan.Sneddon@microchip.com, tomi.valkeinen@ideasonboard.com Cc: amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org, Thomas Zimmermann Subject: [PATCH v2 01/14] drm/amdgpu: Convert to Linux IRQ interfaces Date: Tue, 3 Aug 2021 11:06:51 +0200 Message-Id: <20210803090704.32152-2-tzimmermann@suse.de> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210803090704.32152-1-tzimmermann@suse.de> References: <20210803090704.32152-1-tzimmermann@suse.de> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210803_020711_754133_9CB3E6F4 X-CRM114-Status: GOOD ( 19.65 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org RHJvcCB0aGUgRFJNIElSUSBtaWRsYXllciBpbiBmYXZvciBvZiBMaW51eCBJUlEgaW50ZXJmYWNl cy4gRFJNJ3MKSVJRIGhlbHBlcnMgYXJlIG1vc3RseSB1c2VmdWwgZm9yIFVNUyBkcml2ZXJzLiBN b2Rlcm4gS01TIGRyaXZlcnMKZG9uJ3QgYmVuZWZpdCBmcm9tIHVzaW5nIGl0LgoKRFJNIElSUSBj YWxsYmFja3MgYXJlIG5vdyBiZWluZyBjYWxsZWQgZGlyZWN0bHkgb3IgaW5saW5lZC4KClRoZSBp bnRlcnJ1cHQgbnVtYmVyIHJldHVybmVkIGJ5IHBjaV9tc2lfdmVjdG9yKCkgaXMgbm93IHN0b3Jl ZAppbiBzdHJ1Y3QgYW1kZ3B1X2lycS4gQ2FsbHMgdG8gcGNpX21zaV92ZWN0b3IoKSBjYW4gZmFp bCBhbmQgcmV0dXJuCmEgbmVnYXRpdmUgZXJybm8gY29kZS4gQWJvcnQgaW5pdGxhaXphdG9uIGlu IHRoaSBjYXNlLiBUaGUgRFJNIElSUQptaWRsYXllciBkb2VzIG5vdCBoYW5kbGUgdGhpcyBjb3Jy ZWN0bHkuCgpTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgWmltbWVybWFubiA8dHppbW1lcm1hbm5Ac3Vz ZS5kZT4KUmV2aWV3ZWQtYnk6IEFsZXggRGV1Y2hlciA8YWxleGFuZGVyLmRldWNoZXJAYW1kLmNv bT4KQWNrZWQtYnk6IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4K LS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZHJ2LmMgfCAgMSAtCiBkcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfaXJxLmMgfCAyMSArKysrKysrKysrKysrKy0t LS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9pcnEuaCB8ICAyICstCiAz IGZpbGVzIGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rydi5jIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rydi5jCmluZGV4IGQ2MzdiMDUzNmY4NC4uMmIwYjBl OGE2YWNiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZHJ2 LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rydi5jCkBAIC0xNzc3 LDcgKzE3NzcsNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9kcml2ZXIgYW1kZ3B1X2ttc19k cml2ZXIgPSB7CiAJLm9wZW4gPSBhbWRncHVfZHJpdmVyX29wZW5fa21zLAogCS5wb3N0Y2xvc2Ug PSBhbWRncHVfZHJpdmVyX3Bvc3RjbG9zZV9rbXMsCiAJLmxhc3RjbG9zZSA9IGFtZGdwdV9kcml2 ZXJfbGFzdGNsb3NlX2ttcywKLQkuaXJxX2hhbmRsZXIgPSBhbWRncHVfaXJxX2hhbmRsZXIsCiAJ LmlvY3RscyA9IGFtZGdwdV9pb2N0bHNfa21zLAogCS5udW1faW9jdGxzID0gQVJSQVlfU0laRShh bWRncHVfaW9jdGxzX2ttcyksCiAJLmR1bWJfY3JlYXRlID0gYW1kZ3B1X21vZGVfZHVtYl9jcmVh dGUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfaXJxLmMg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfaXJxLmMKaW5kZXggN2RmZGFiZTFj ZGY5Li4zYWMzOWI0NGEyMTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9pcnEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfaXJx LmMKQEAgLTQ2LDcgKzQ2LDYgQEAKICNpbmNsdWRlIDxsaW51eC9wY2kuaD4KIAogI2luY2x1ZGUg PGRybS9kcm1fY3J0Y19oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2lycS5oPgogI2luY2x1 ZGUgPGRybS9kcm1fdmJsYW5rLmg+CiAjaW5jbHVkZSA8ZHJtL2FtZGdwdV9kcm0uaD4KICNpbmNs dWRlIDxkcm0vZHJtX2Rydi5oPgpAQCAtMTg0LDcgKzE4Myw3IEBAIHZvaWQgYW1kZ3B1X2lycV9k aXNhYmxlX2FsbChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKICAqIFJldHVybnM6CiAgKiBy ZXN1bHQgb2YgaGFuZGxpbmcgdGhlIElSUSwgYXMgZGVmaW5lZCBieSAmaXJxcmV0dXJuX3QKICAq LwotaXJxcmV0dXJuX3QgYW1kZ3B1X2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZykKK3N0 YXRpYyBpcnFyZXR1cm5fdCBhbWRncHVfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqYXJnKQog ewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAoc3RydWN0IGRybV9kZXZpY2UgKikgYXJnOwog CXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gZHJtX3RvX2FkZXYoZGV2KTsKQEAgLTMwNyw2 ICszMDYsNyBAQCBzdGF0aWMgdm9pZCBhbWRncHVfcmVzdG9yZV9tc2l4KHN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2KQogaW50IGFtZGdwdV9pcnFfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldikKIHsKIAlpbnQgciA9IDA7CisJdW5zaWduZWQgaW50IGlycTsKIAogCXNwaW5fbG9ja19p bml0KCZhZGV2LT5pcnEubG9jayk7CiAKQEAgLTM0OSwxNSArMzQ5LDIyIEBAIGludCBhbWRncHVf aXJxX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJSU5JVF9XT1JLKCZhZGV2LT5p cnEuaWgyX3dvcmssIGFtZGdwdV9pcnFfaGFuZGxlX2loMik7CiAJSU5JVF9XT1JLKCZhZGV2LT5p cnEuaWhfc29mdF93b3JrLCBhbWRncHVfaXJxX2hhbmRsZV9paF9zb2Z0KTsKIAotCWFkZXYtPmly cS5pbnN0YWxsZWQgPSB0cnVlOwotCS8qIFVzZSB2ZWN0b3IgMCBmb3IgTVNJLVggKi8KLQlyID0g ZHJtX2lycV9pbnN0YWxsKGFkZXZfdG9fZHJtKGFkZXYpLCBwY2lfaXJxX3ZlY3RvcihhZGV2LT5w ZGV2LCAwKSk7CisJLyogVXNlIHZlY3RvciAwIGZvciBNU0ktWC4gKi8KKwlyID0gcGNpX2lycV92 ZWN0b3IoYWRldi0+cGRldiwgMCk7CisJaWYgKHIgPCAwKQorCQlyZXR1cm4gcjsKKwlpcnEgPSBy OworCisJLyogUENJIGRldmljZXMgcmVxdWlyZSBzaGFyZWQgaW50ZXJydXB0cy4gKi8KKwlyID0g cmVxdWVzdF9pcnEoaXJxLCBhbWRncHVfaXJxX2hhbmRsZXIsIElSUUZfU0hBUkVELCBhZGV2X3Rv X2RybShhZGV2KS0+ZHJpdmVyLT5uYW1lLAorCQkJYWRldl90b19kcm0oYWRldikpOwogCWlmIChy KSB7Ci0JCWFkZXYtPmlycS5pbnN0YWxsZWQgPSBmYWxzZTsKIAkJaWYgKCFhbWRncHVfZGV2aWNl X2hhc19kY19zdXBwb3J0KGFkZXYpKQogCQkJZmx1c2hfd29yaygmYWRldi0+aG90cGx1Z193b3Jr KTsKIAkJcmV0dXJuIHI7CiAJfQorCWFkZXYtPmlycS5pbnN0YWxsZWQgPSB0cnVlOworCWFkZXYt PmlycS5pcnEgPSBpcnE7CiAJYWRldl90b19kcm0oYWRldiktPm1heF92YmxhbmtfY291bnQgPSAw eDAwZmZmZmZmOwogCiAJRFJNX0RFQlVHKCJhbWRncHU6IGlycSBpbml0aWFsaXplZC5cbiIpOwpA QCAtMzY4LDcgKzM3NSw3IEBAIGludCBhbWRncHVfaXJxX2luaXQoc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYpCiB2b2lkIGFtZGdwdV9pcnFfZmluaV9odyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldikKIHsKIAlpZiAoYWRldi0+aXJxLmluc3RhbGxlZCkgewotCQlkcm1faXJxX3VuaW5zdGFs bCgmYWRldi0+ZGRldik7CisJCWZyZWVfaXJxKGFkZXYtPmlycS5pcnEsIGFkZXZfdG9fZHJtKGFk ZXYpKTsKIAkJYWRldi0+aXJxLmluc3RhbGxlZCA9IGZhbHNlOwogCQlpZiAoYWRldi0+aXJxLm1z aV9lbmFibGVkKQogCQkJcGNpX2ZyZWVfaXJxX3ZlY3RvcnMoYWRldi0+cGRldik7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfaXJxLmggYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfaXJxLmgKaW5kZXggNzhhZDQ3ODRjYzc0Li5lOWYyYzEx ZWE0MTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9pcnEu aAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfaXJxLmgKQEAgLTgwLDYg KzgwLDcgQEAgc3RydWN0IGFtZGdwdV9pcnFfc3JjX2Z1bmNzIHsKIAogc3RydWN0IGFtZGdwdV9p cnEgewogCWJvb2wJCQkJaW5zdGFsbGVkOworCXVuc2lnbmVkIGludAkJCWlycTsKIAlzcGlubG9j a190CQkJbG9jazsKIAkvKiBpbnRlcnJ1cHQgc291cmNlcyAqLwogCXN0cnVjdCBhbWRncHVfaXJx X2NsaWVudAljbGllbnRbQU1ER1BVX0lSUV9DTElFTlRJRF9NQVhdOwpAQCAtMTAwLDcgKzEwMSw2 IEBAIHN0cnVjdCBhbWRncHVfaXJxIHsKIH07CiAKIHZvaWQgYW1kZ3B1X2lycV9kaXNhYmxlX2Fs bChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7Ci1pcnFyZXR1cm5fdCBhbWRncHVfaXJxX2hh bmRsZXIoaW50IGlycSwgdm9pZCAqYXJnKTsKIAogaW50IGFtZGdwdV9pcnFfaW5pdChzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldik7CiB2b2lkIGFtZGdwdV9pcnFfZmluaV9zdyhzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldik7Ci0tIAoyLjMyLjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51 eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5v cmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==