From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr1-f49.google.com (mail-wr1-f49.google.com [209.85.221.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6542A264609; Mon, 10 Feb 2025 20:50:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.49 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739220610; cv=none; b=f+DiTmHgLQN7HZRiWZhoPMHHbb47BcpEoSDpjHdCWFJ68qssJZprPtNIi54CNoefaxSpVX8ESqlAUE31CrXKBjeYmI5RjqTpCnmC0W5b4dWvpH8OQSG3Dwnt8joHeGsHOQeEDARQLcdaU9iCZzRyBtnAPTCizsvsisgk9ctYQGo= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739220610; c=relaxed/simple; bh=8PdGzdMAw141j5O17SG3txWU1gZMeelmxkXkuHaKQdU=; h=Message-ID:Date:From:To:Cc:Subject:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=PKmOHylujxyGZCXa3w0DUJ4Dk/eattt7/dOpv1NB553P/ArV+ClvCLi2uWQSGemDE9Chx7qbYmOZ2P+ok3nXzGgXmz0YSFUg+mV62HKq/D3hoj5vovVG5GbMyQdv+sCuJt92f+/0LxgX5TGZ2TKCzMwx7PQ8uPicGsLALMRNmt4= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=guHJ8h9a; arc=none smtp.client-ip=209.85.221.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="guHJ8h9a" Received: by mail-wr1-f49.google.com with SMTP id ffacd0b85a97d-38a25d4b9d4so2535501f8f.0; Mon, 10 Feb 2025 12:50:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739220607; x=1739825407; darn=vger.kernel.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:subject:cc:to:from:date:message-id:from:to :cc:subject:date:message-id:reply-to; bh=2dJefyF8Ntih0gd63NWW8Bntajol0MzpM/Fx+CJZc70=; b=guHJ8h9a5Ip2Cm4HT3us7CIF+CMtMvBJyzLDwxku9KmAhFzFi00b6zfieaiqFfg1Ix AQWYU11Oumxy9Izbcdg9iAyo8S+MT1ct36cYtep8V97rJ9h6tNR51l98ttbkYqp0oIIT FWcOIiC+nDkmadWI6oHf/6+d866LCm/HfkN7obroPTa/3D2daobXEJ91+84a2Ne0cxx7 0r4aWoMeEgH/Rm9EBFVN9ecX3BwDIw59bS77YeACjnwtkgmZc/7QbwDT3BCGBbH079kk q8htIM83OeJNMg5FqElsluD7k++/Gf/fiCbev7pdwodz82Np2uj8wFljN/vgtbY43WIe nXMA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739220607; x=1739825407; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:subject:cc:to:from:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=2dJefyF8Ntih0gd63NWW8Bntajol0MzpM/Fx+CJZc70=; b=S+u22TlE8BDmZ6qq8leS7Jy97TDR3K+MZ9mPMyTaMs6c0+vsF8++mWZT2i69WtajQs HqdSOK0zIg5xxa/q2O6qMDwPP8GkKH+YGZ4ErAqyj7F9Dh1AvclYEOsE5toTFEOxOnFn tSMALGcZTFOxb+2vIVlR29jSjp9ezt5lgDxeZ26Es0SgWb67GbKiaCfSnzTYkKLPEAOH 8RnIEU/9DhpHOheGTAc9ukBcmWkf8OHkVHFXAKOi/bkf2SyNkkseU+6yFKx2pEO73oIk JOireXUQErN5X21fRXTE4X6lHIows9mwk3gDpZg6Velqcxq70ZmtJIhcv2GdebwY8W6e SDdA== X-Forwarded-Encrypted: i=1; AJvYcCVefL2Daz+rrwh2I3X4Y+F3f4bwtZVtdAI84euI16fq28cnB/vjgYgLWgRGYl6rhrk4TCFd5GYhz9GbEl5n@vger.kernel.org, AJvYcCW8XBcVlkXsMyP7M8szSVrPjfdtSGZVy3BLlOsyEDIc7dMrpbRDmdVyoBEUTCWORlIZ+KKjdOCu@vger.kernel.org, AJvYcCXOP64VJCeu3XfvxnY+kUin8smQggZX1/Y/rV6zF5DJ6+rE4FKBFB1ylpa5dM7w20OxgJe7gIPLojuuotwA@vger.kernel.org X-Gm-Message-State: AOJu0YymK6waKpvl0sLpss74o4iApeFRv4N8PmM5YGGt015Z+wndvQqW lLrZKslfYWhbyLIQccpbr/HJN9/YWqipHxGaFdjaYCSCCSuZHWkK X-Gm-Gg: ASbGncstu9naD7CXBVkehvdqKZX8LOJcZRUzTmZD4AQWSoZILjzwQ7/Q5z6TG46s+aT ZI379lQysqR2gFhPKuYeK38PmJYLJLh+PYGUShTQ7MM/FL65oEzUz5cOMoho2QxskB+bQi86WD7 IFCNwQ/FlOQ7KOdGp2NUI/DwxfDYgPAqXEAzdgdOGTUXEzK4RGhzoACMwTbNgDA9siSFCgt/t7q KpVxOv13aoYIWHLbNRrl+Dd/mWgdQOVS+qVpPtskx93EozZ5oVWwOulfaqBiwIZnxvnnvR8kQXM 6qWvrmj4nPCE/iQP0eOWtnhAUfs5EovCSOsp8m7PfUzKLAs= X-Google-Smtp-Source: AGHT+IFIiQmFF40j4k+DZN1cv4CpJRfjsukU/nNRgBxij1fWcbwCzmkxQC0FA+Nto3thlx1zvIp20g== X-Received: by 2002:a5d:6da6:0:b0:38d:e0d2:55c6 with SMTP id ffacd0b85a97d-38de0d256bdmr3397519f8f.17.1739220606489; Mon, 10 Feb 2025 12:50:06 -0800 (PST) Received: from Ansuel-XPS. (93-34-91-161.ip49.fastwebnet.it. [93.34.91.161]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-38dd02e2a90sm9105954f8f.98.2025.02.10.12.50.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Feb 2025 12:50:06 -0800 (PST) Message-ID: <67aa667e.5d0a0220.10ff3e.24a6@mx.google.com> X-Google-Original-Message-ID: Date: Mon, 10 Feb 2025 21:50:03 +0100 From: Christian Marangi To: Manivannan Sadhasivam Cc: Miquel Raynal , Richard Weinberger , Vignesh Raghavendra , Md Sadre Alam , Konrad Dybcio , linux-mtd@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org, Robert Marko Subject: Re: [PATCH v2] mtd: rawnand: qcom: fix broken config in qcom_param_page_type_exec References: <20250209140941.16627-1-ansuelsmth@gmail.com> <20250210170950.zxgm5hjeb2a4evfn@thinkpad> Precedence: bulk X-Mailing-List: linux-arm-msm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20250210170950.zxgm5hjeb2a4evfn@thinkpad> On Mon, Feb 10, 2025 at 10:39:50PM +0530, Manivannan Sadhasivam wrote: > On Sun, Feb 09, 2025 at 03:09:38PM +0100, Christian Marangi wrote: > > Fix broken config in qcom_param_page_type_exec caused by copy-paste error > > from commit 0c08080fd71c ("mtd: rawnand: qcom: use FIELD_PREP and GENMASK") > > > > In qcom_param_page_type_exec the value needs to be set to > > nandc->regs->cfg0 instead of host->cfg0. This wrong configuration caused > > the Qcom NANDC driver to malfunction on any device that makes use of it > > (IPQ806x, IPQ40xx, IPQ807x, IPQ60xx) with the following error: > > > > I'm wondering whether the offending commit was really tested or not :( > Wellllllll..... It was but it wasn't. The series where this was introduced was to push the new Qcom QPIC driver driven by a dedicated SPI controller. That part works and was probably where this was tested. What was not tested is if these changes affected SNAND driver for other devices. Saddly it's always difficult to test these changes that affects lors of devices, in OpenWrt we are working on implementing some kind of testbed to test images on real devices. (it's currently only an idea and we are far from having it but it's something I would love to have it so we could catch these kind of regression faster than getting Issue spammed with devices getting bricked) > > [ 0.885369] nand: device found, Manufacturer ID: 0x2c, Chip ID: 0xaa > > [ 0.885909] nand: Micron NAND 256MiB 1,8V 8-bit > > [ 0.892499] nand: 256 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64 > > [ 0.896823] nand: ECC (step, strength) = (512, 8) does not fit in OOB > > [ 0.896836] qcom-nandc 79b0000.nand-controller: No valid ECC settings possible > > [ 0.910996] bam-dma-engine 7984000.dma-controller: Cannot free busy channel > > [ 0.918070] qcom-nandc: probe of 79b0000.nand-controller failed with error -28 > > > > Restore original configuration fix the problem and makes the driver work > > again. > > > > Also restore the wrongly dropped cpu_to_le32 to correctly support BE > > systems. > > > > Cc: stable@vger.kernel.org > > Fixes: 0c08080fd71c ("mtd: rawnand: qcom: use FIELD_PREP and GENMASK") > > Tested-by: Robert Marko # IPQ8074 and IPQ6018 > > Signed-off-by: Christian Marangi > > Reviewed-by: Manivannan Sadhasivam > > Thanks for the fix! > > - Mani > > > --- > > Changes v2: > > - Fix smatch warning (add missing cpu_to_le32 that was also dropped > > from the FIELD_PREP patch) > > > > drivers/mtd/nand/raw/qcom_nandc.c | 24 ++++++++++++------------ > > 1 file changed, 12 insertions(+), 12 deletions(-) > > > > diff --git a/drivers/mtd/nand/raw/qcom_nandc.c b/drivers/mtd/nand/raw/qcom_nandc.c > > index d2d2aeee42a7..6720b547892b 100644 > > --- a/drivers/mtd/nand/raw/qcom_nandc.c > > +++ b/drivers/mtd/nand/raw/qcom_nandc.c > > @@ -1881,18 +1881,18 @@ static int qcom_param_page_type_exec(struct nand_chip *chip, const struct nand_ > > nandc->regs->addr0 = 0; > > nandc->regs->addr1 = 0; > > > > - host->cfg0 = FIELD_PREP(CW_PER_PAGE_MASK, 0) | > > - FIELD_PREP(UD_SIZE_BYTES_MASK, 512) | > > - FIELD_PREP(NUM_ADDR_CYCLES_MASK, 5) | > > - FIELD_PREP(SPARE_SIZE_BYTES_MASK, 0); > > - > > - host->cfg1 = FIELD_PREP(NAND_RECOVERY_CYCLES_MASK, 7) | > > - FIELD_PREP(BAD_BLOCK_BYTE_NUM_MASK, 17) | > > - FIELD_PREP(CS_ACTIVE_BSY, 0) | > > - FIELD_PREP(BAD_BLOCK_IN_SPARE_AREA, 1) | > > - FIELD_PREP(WR_RD_BSY_GAP_MASK, 2) | > > - FIELD_PREP(WIDE_FLASH, 0) | > > - FIELD_PREP(DEV0_CFG1_ECC_DISABLE, 1); > > + nandc->regs->cfg0 = cpu_to_le32(FIELD_PREP(CW_PER_PAGE_MASK, 0) | > > + FIELD_PREP(UD_SIZE_BYTES_MASK, 512) | > > + FIELD_PREP(NUM_ADDR_CYCLES_MASK, 5) | > > + FIELD_PREP(SPARE_SIZE_BYTES_MASK, 0)); > > + > > + nandc->regs->cfg1 = cpu_to_le32(FIELD_PREP(NAND_RECOVERY_CYCLES_MASK, 7) | > > + FIELD_PREP(BAD_BLOCK_BYTE_NUM_MASK, 17) | > > + FIELD_PREP(CS_ACTIVE_BSY, 0) | > > + FIELD_PREP(BAD_BLOCK_IN_SPARE_AREA, 1) | > > + FIELD_PREP(WR_RD_BSY_GAP_MASK, 2) | > > + FIELD_PREP(WIDE_FLASH, 0) | > > + FIELD_PREP(DEV0_CFG1_ECC_DISABLE, 1)); > > > > if (!nandc->props->qpic_version2) > > nandc->regs->ecc_buf_cfg = cpu_to_le32(ECC_CFG_ECC_DISABLE); > > -- > > 2.47.1 > > > > -- > மணிவண்ணன் சதாசிவம் -- Ansuel 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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 0AAB7C0219E for ; Mon, 10 Feb 2025 21:55:53 +0000 (UTC) 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:In-Reply-To:MIME-Version:References: Subject:Cc:To:From:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=puI9DZQVy/1MSJ8ebO2LM6o3bImLKPNaLU6gdhjfsu4=; b=smEn3WVDxyX4VU 152s5F62E5BiS5tVYLRU3Ibuqi5VKBUpwWwRKgC3Sei3JH1aL115ztdUcb7egJSkdbC04hjACh6p3 XwiOD8QIPr2mOhA04befxw44aA3qggHJnzNv3ZLWEL8oAtQr6ChPMPIPqi13sD10whGc8vHhkkmTa VyETfIxG9TNIg6lKBLUaq/Pls3ngaWk/mGF5bFVS50nDUT6lpQwCs0pvTYEB9+FsjZ6oP6yz9nXyX 2D5RFcMCMWyjMNLU780+UE9HmOwjxcUWpx/zMyL0BPOaeYi8j497AVft2hQVeNXqyCLo3cX2/wQcd 719WIR8GzRXBWUPDw/og==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1thbkr-00000001ZlY-17EB; Mon, 10 Feb 2025 21:55:49 +0000 Received: from mail-wr1-x432.google.com ([2a00:1450:4864:20::432]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1thajI-00000001PBp-3kux for linux-mtd@lists.infradead.org; Mon, 10 Feb 2025 20:50:10 +0000 Received: by mail-wr1-x432.google.com with SMTP id ffacd0b85a97d-388cae9eb9fso2530236f8f.3 for ; Mon, 10 Feb 2025 12:50:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739220607; x=1739825407; darn=lists.infradead.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:subject:cc:to:from:date:message-id:from:to :cc:subject:date:message-id:reply-to; bh=2dJefyF8Ntih0gd63NWW8Bntajol0MzpM/Fx+CJZc70=; b=k/0xiHCcjild0cuTP3lgHz4/ZeIh1osGbR+TyZCe3NOz2NHbbbUWdfBsTwRtsILb+s F3QhViYs8tCBENGCoywp2RklzCDnbnrUHuW4+eFtju0q2qgcJfz61aezzLm3qlp962Tg 4O0WDAjgLRL7Yel1aZnQOn+E/xOLcuf3asDXA3Jj67ipmd8YJUiQF6LZCdVL/24qoOXZ ZpTdq0ILCR4BHFEFGsQVkhYuhhPbjnfOa8iK7XGTsvouUl8W5V+zwowQAATRnB895LLw gG+86D9XsMu/pUwagF7Z6VxRTfVunxG8PWGvdzkXxxDBripbxZ62ljTJv1ooEXgXNJzz OxAQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739220607; x=1739825407; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:subject:cc:to:from:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=2dJefyF8Ntih0gd63NWW8Bntajol0MzpM/Fx+CJZc70=; b=q0ndOngPmhugXqI426poe16iqbZsog86RFhN8n5lrH8eG5pZsy5jYyGnoCDAAd856h tQSW3Rqiw9cmbrQ+3xXuGovgTNBk1SiZeS8//KII35F7OBsl1F67CJLEHc6M6nPqNW8q l5cOnOh+Cb37raBX+HJdCHFEymi4osy6hqeBlGwMA6qJEGf2eMdgreuHdnIMi3gNFEsc DClOD/7m/60mfCYQ4FukEx8SbHxfIkZqDX7P5oJ9LeBNor5tLn+XeF3ApEGAM3td2mML b8UUyqAvKJHBxTVQcPXAUzeGVutuP6gwKsV2P9VgYAtep7/LhBPMJvMxt0l9OXUXRwry lhAA== X-Forwarded-Encrypted: i=1; AJvYcCXbK8jHEH108Sw2YkfH5pbc8E86fw056xw8qTYarbIpo26RvXrgULnm7qyQVYXgtRtV1bZK55OSsHs=@lists.infradead.org X-Gm-Message-State: AOJu0YzOd+Rk8IP7I+eAveePiS7uQv/wgEa5BwsKSMchHGJNgCpMi6EY EAHIb5jwp3ZiVgmlOEdJnlVlVmT3mXJf9YLonS7Q5WtXBUrb0myt X-Gm-Gg: ASbGncszpXZf4uf4gUIdPJS50sl+zwUD+LukeEHeGY3/24u3OtaoEoI2mYwi0M390ae BK0MFt9vqkBbamGofSfaI4c4noYFAmYOx6EbbJU+N2Bmqo371RzzM1cnxNq+T3U6FC+nJO8eDzL ilQ0SfnybFThyRbZWu6EoJJbVC/jDRJeT4D8xWekf/GcIqkPaxT6nFIaTeutle8oiSSmmjnCNjk miai6UfBILIWN3eZEqQS+kXU7UMvBbBVtSg6oWoqxmDObBAeHZUma161uRG3DA6IDPWN0XnOWyW keDzk9cSnM25WZ6QrjX6MerXaqCJ0F06HXoJVaPK8F4ereo= X-Google-Smtp-Source: AGHT+IFIiQmFF40j4k+DZN1cv4CpJRfjsukU/nNRgBxij1fWcbwCzmkxQC0FA+Nto3thlx1zvIp20g== X-Received: by 2002:a5d:6da6:0:b0:38d:e0d2:55c6 with SMTP id ffacd0b85a97d-38de0d256bdmr3397519f8f.17.1739220606489; Mon, 10 Feb 2025 12:50:06 -0800 (PST) Received: from Ansuel-XPS. (93-34-91-161.ip49.fastwebnet.it. [93.34.91.161]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-38dd02e2a90sm9105954f8f.98.2025.02.10.12.50.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Feb 2025 12:50:06 -0800 (PST) Message-ID: <67aa667e.5d0a0220.10ff3e.24a6@mx.google.com> X-Google-Original-Message-ID: Date: Mon, 10 Feb 2025 21:50:03 +0100 From: Christian Marangi To: Manivannan Sadhasivam Cc: Miquel Raynal , Richard Weinberger , Vignesh Raghavendra , Md Sadre Alam , Konrad Dybcio , linux-mtd@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org, Robert Marko Subject: Re: [PATCH v2] mtd: rawnand: qcom: fix broken config in qcom_param_page_type_exec References: <20250209140941.16627-1-ansuelsmth@gmail.com> <20250210170950.zxgm5hjeb2a4evfn@thinkpad> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20250210170950.zxgm5hjeb2a4evfn@thinkpad> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250210_125008_940280_4F1B06B3 X-CRM114-Status: GOOD ( 28.81 ) X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+linux-mtd=archiver.kernel.org@lists.infradead.org T24gTW9uLCBGZWIgMTAsIDIwMjUgYXQgMTA6Mzk6NTBQTSArMDUzMCwgTWFuaXZhbm5hbiBTYWRo YXNpdmFtIHdyb3RlOgo+IE9uIFN1biwgRmViIDA5LCAyMDI1IGF0IDAzOjA5OjM4UE0gKzAxMDAs IENocmlzdGlhbiBNYXJhbmdpIHdyb3RlOgo+ID4gRml4IGJyb2tlbiBjb25maWcgaW4gcWNvbV9w YXJhbV9wYWdlX3R5cGVfZXhlYyBjYXVzZWQgYnkgY29weS1wYXN0ZSBlcnJvcgo+ID4gZnJvbSBj b21taXQgMGMwODA4MGZkNzFjICgibXRkOiByYXduYW5kOiBxY29tOiB1c2UgRklFTERfUFJFUCBh bmQgR0VOTUFTSyIpCj4gPiAKPiA+IEluIHFjb21fcGFyYW1fcGFnZV90eXBlX2V4ZWMgdGhlIHZh bHVlIG5lZWRzIHRvIGJlIHNldCB0bwo+ID4gbmFuZGMtPnJlZ3MtPmNmZzAgaW5zdGVhZCBvZiBo b3N0LT5jZmcwLiBUaGlzIHdyb25nIGNvbmZpZ3VyYXRpb24gY2F1c2VkCj4gPiB0aGUgUWNvbSBO QU5EQyBkcml2ZXIgdG8gbWFsZnVuY3Rpb24gb24gYW55IGRldmljZSB0aGF0IG1ha2VzIHVzZSBv ZiBpdAo+ID4gKElQUTgwNngsIElQUTQweHgsIElQUTgwN3gsIElQUTYweHgpIHdpdGggdGhlIGZv bGxvd2luZyBlcnJvcjoKPiA+IAo+IAo+IEknbSB3b25kZXJpbmcgd2hldGhlciB0aGUgb2ZmZW5k aW5nIGNvbW1pdCB3YXMgcmVhbGx5IHRlc3RlZCBvciBub3QgOigKPgoKV2VsbGxsbGxsbC4uLi4u IEl0IHdhcyBidXQgaXQgd2Fzbid0LiBUaGUgc2VyaWVzIHdoZXJlIHRoaXMgd2FzCmludHJvZHVj ZWQgd2FzIHRvIHB1c2ggdGhlIG5ldyBRY29tIFFQSUMgZHJpdmVyIGRyaXZlbiBieSBhIGRlZGlj YXRlZApTUEkgY29udHJvbGxlci4gVGhhdCBwYXJ0IHdvcmtzIGFuZCB3YXMgcHJvYmFibHkgd2hl cmUgdGhpcyB3YXMgdGVzdGVkLgpXaGF0IHdhcyBub3QgdGVzdGVkIGlzIGlmIHRoZXNlIGNoYW5n ZXMgYWZmZWN0ZWQgU05BTkQgZHJpdmVyIGZvciBvdGhlcgpkZXZpY2VzLiBTYWRkbHkgaXQncyBh bHdheXMgZGlmZmljdWx0IHRvIHRlc3QgdGhlc2UgY2hhbmdlcyB0aGF0IGFmZmVjdHMKbG9ycyBv ZiBkZXZpY2VzLCBpbiBPcGVuV3J0IHdlIGFyZSB3b3JraW5nIG9uIGltcGxlbWVudGluZyBzb21l IGtpbmQgb2YgdGVzdGJlZAp0byB0ZXN0IGltYWdlcyBvbiByZWFsIGRldmljZXMuIChpdCdzIGN1 cnJlbnRseSBvbmx5IGFuIGlkZWEgYW5kIHdlIGFyZQpmYXIgZnJvbSBoYXZpbmcgaXQgYnV0IGl0 J3Mgc29tZXRoaW5nIEkgd291bGQgbG92ZSB0byBoYXZlIGl0IHNvIHdlCmNvdWxkIGNhdGNoIHRo ZXNlIGtpbmQgb2YgcmVncmVzc2lvbiBmYXN0ZXIgdGhhbiBnZXR0aW5nIElzc3VlIHNwYW1tZWQK d2l0aCBkZXZpY2VzIGdldHRpbmcgYnJpY2tlZCkKCj4gPiBbICAgIDAuODg1MzY5XSBuYW5kOiBk ZXZpY2UgZm91bmQsIE1hbnVmYWN0dXJlciBJRDogMHgyYywgQ2hpcCBJRDogMHhhYQo+ID4gWyAg ICAwLjg4NTkwOV0gbmFuZDogTWljcm9uIE5BTkQgMjU2TWlCIDEsOFYgOC1iaXQKPiA+IFsgICAg MC44OTI0OTldIG5hbmQ6IDI1NiBNaUIsIFNMQywgZXJhc2Ugc2l6ZTogMTI4IEtpQiwgcGFnZSBz aXplOiAyMDQ4LCBPT0Igc2l6ZTogNjQKPiA+IFsgICAgMC44OTY4MjNdIG5hbmQ6IEVDQyAoc3Rl cCwgc3RyZW5ndGgpID0gKDUxMiwgOCkgZG9lcyBub3QgZml0IGluIE9PQgo+ID4gWyAgICAwLjg5 NjgzNl0gcWNvbS1uYW5kYyA3OWIwMDAwLm5hbmQtY29udHJvbGxlcjogTm8gdmFsaWQgRUNDIHNl dHRpbmdzIHBvc3NpYmxlCj4gPiBbICAgIDAuOTEwOTk2XSBiYW0tZG1hLWVuZ2luZSA3OTg0MDAw LmRtYS1jb250cm9sbGVyOiBDYW5ub3QgZnJlZSBidXN5IGNoYW5uZWwKPiA+IFsgICAgMC45MTgw NzBdIHFjb20tbmFuZGM6IHByb2JlIG9mIDc5YjAwMDAubmFuZC1jb250cm9sbGVyIGZhaWxlZCB3 aXRoIGVycm9yIC0yOAo+ID4gCj4gPiBSZXN0b3JlIG9yaWdpbmFsIGNvbmZpZ3VyYXRpb24gZml4 IHRoZSBwcm9ibGVtIGFuZCBtYWtlcyB0aGUgZHJpdmVyIHdvcmsKPiA+IGFnYWluLgo+ID4gCj4g PiBBbHNvIHJlc3RvcmUgdGhlIHdyb25nbHkgZHJvcHBlZCBjcHVfdG9fbGUzMiB0byBjb3JyZWN0 bHkgc3VwcG9ydCBCRQo+ID4gc3lzdGVtcy4KPiA+IAo+ID4gQ2M6IHN0YWJsZUB2Z2VyLmtlcm5l bC5vcmcKPiA+IEZpeGVzOiAwYzA4MDgwZmQ3MWMgKCJtdGQ6IHJhd25hbmQ6IHFjb206IHVzZSBG SUVMRF9QUkVQIGFuZCBHRU5NQVNLIikKPiA+IFRlc3RlZC1ieTogUm9iZXJ0IE1hcmtvIDxyb2Jp bWFya29AZ21haWwuY29tPiAjIElQUTgwNzQgYW5kIElQUTYwMTgKPiA+IFNpZ25lZC1vZmYtYnk6 IENocmlzdGlhbiBNYXJhbmdpIDxhbnN1ZWxzbXRoQGdtYWlsLmNvbT4KPiAKPiBSZXZpZXdlZC1i eTogTWFuaXZhbm5hbiBTYWRoYXNpdmFtIDxtYW5pdmFubmFuLnNhZGhhc2l2YW1AbGluYXJvLm9y Zz4KPiAKPiBUaGFua3MgZm9yIHRoZSBmaXghCj4gCj4gLSBNYW5pCj4gCj4gPiAtLS0KPiA+IENo YW5nZXMgdjI6Cj4gPiAtIEZpeCBzbWF0Y2ggd2FybmluZyAoYWRkIG1pc3NpbmcgY3B1X3RvX2xl MzIgdGhhdCB3YXMgYWxzbyBkcm9wcGVkCj4gPiAgIGZyb20gdGhlIEZJRUxEX1BSRVAgcGF0Y2gp Cj4gPiAKPiA+ICBkcml2ZXJzL210ZC9uYW5kL3Jhdy9xY29tX25hbmRjLmMgfCAyNCArKysrKysr KysrKystLS0tLS0tLS0tLS0KPiA+ICAxIGZpbGUgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwg MTIgZGVsZXRpb25zKC0pCj4gPiAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9uYW5kL3Jh dy9xY29tX25hbmRjLmMgYi9kcml2ZXJzL210ZC9uYW5kL3Jhdy9xY29tX25hbmRjLmMKPiA+IGlu ZGV4IGQyZDJhZWVlNDJhNy4uNjcyMGI1NDc4OTJiIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9t dGQvbmFuZC9yYXcvcWNvbV9uYW5kYy5jCj4gPiArKysgYi9kcml2ZXJzL210ZC9uYW5kL3Jhdy9x Y29tX25hbmRjLmMKPiA+IEBAIC0xODgxLDE4ICsxODgxLDE4IEBAIHN0YXRpYyBpbnQgcWNvbV9w YXJhbV9wYWdlX3R5cGVfZXhlYyhzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwLCAgY29uc3Qgc3RydWN0 IG5hbmRfCj4gPiAgCW5hbmRjLT5yZWdzLT5hZGRyMCA9IDA7Cj4gPiAgCW5hbmRjLT5yZWdzLT5h ZGRyMSA9IDA7Cj4gPiAgCj4gPiAtCWhvc3QtPmNmZzAgPSBGSUVMRF9QUkVQKENXX1BFUl9QQUdF X01BU0ssIDApIHwKPiA+IC0JCSAgICAgRklFTERfUFJFUChVRF9TSVpFX0JZVEVTX01BU0ssIDUx MikgfAo+ID4gLQkJICAgICBGSUVMRF9QUkVQKE5VTV9BRERSX0NZQ0xFU19NQVNLLCA1KSB8Cj4g PiAtCQkgICAgIEZJRUxEX1BSRVAoU1BBUkVfU0laRV9CWVRFU19NQVNLLCAwKTsKPiA+IC0KPiA+ IC0JaG9zdC0+Y2ZnMSA9IEZJRUxEX1BSRVAoTkFORF9SRUNPVkVSWV9DWUNMRVNfTUFTSywgNykg fAo+ID4gLQkJICAgICBGSUVMRF9QUkVQKEJBRF9CTE9DS19CWVRFX05VTV9NQVNLLCAxNykgfAo+ ID4gLQkJICAgICBGSUVMRF9QUkVQKENTX0FDVElWRV9CU1ksIDApIHwKPiA+IC0JCSAgICAgRklF TERfUFJFUChCQURfQkxPQ0tfSU5fU1BBUkVfQVJFQSwgMSkgfAo+ID4gLQkJICAgICBGSUVMRF9Q UkVQKFdSX1JEX0JTWV9HQVBfTUFTSywgMikgfAo+ID4gLQkJICAgICBGSUVMRF9QUkVQKFdJREVf RkxBU0gsIDApIHwKPiA+IC0JCSAgICAgRklFTERfUFJFUChERVYwX0NGRzFfRUNDX0RJU0FCTEUs IDEpOwo+ID4gKwluYW5kYy0+cmVncy0+Y2ZnMCA9IGNwdV90b19sZTMyKEZJRUxEX1BSRVAoQ1df UEVSX1BBR0VfTUFTSywgMCkgfAo+ID4gKwkJCQkJRklFTERfUFJFUChVRF9TSVpFX0JZVEVTX01B U0ssIDUxMikgfAo+ID4gKwkJCQkJRklFTERfUFJFUChOVU1fQUREUl9DWUNMRVNfTUFTSywgNSkg fAo+ID4gKwkJCQkJRklFTERfUFJFUChTUEFSRV9TSVpFX0JZVEVTX01BU0ssIDApKTsKPiA+ICsK PiA+ICsJbmFuZGMtPnJlZ3MtPmNmZzEgPSBjcHVfdG9fbGUzMihGSUVMRF9QUkVQKE5BTkRfUkVD T1ZFUllfQ1lDTEVTX01BU0ssIDcpIHwKPiA+ICsJCQkJCUZJRUxEX1BSRVAoQkFEX0JMT0NLX0JZ VEVfTlVNX01BU0ssIDE3KSB8Cj4gPiArCQkJCQlGSUVMRF9QUkVQKENTX0FDVElWRV9CU1ksIDAp IHwKPiA+ICsJCQkJCUZJRUxEX1BSRVAoQkFEX0JMT0NLX0lOX1NQQVJFX0FSRUEsIDEpIHwKPiA+ ICsJCQkJCUZJRUxEX1BSRVAoV1JfUkRfQlNZX0dBUF9NQVNLLCAyKSB8Cj4gPiArCQkJCQlGSUVM RF9QUkVQKFdJREVfRkxBU0gsIDApIHwKPiA+ICsJCQkJCUZJRUxEX1BSRVAoREVWMF9DRkcxX0VD Q19ESVNBQkxFLCAxKSk7Cj4gPiAgCj4gPiAgCWlmICghbmFuZGMtPnByb3BzLT5xcGljX3ZlcnNp b24yKQo+ID4gIAkJbmFuZGMtPnJlZ3MtPmVjY19idWZfY2ZnID0gY3B1X3RvX2xlMzIoRUNDX0NG R19FQ0NfRElTQUJMRSk7Cj4gPiAtLSAKPiA+IDIuNDcuMQo+ID4gCj4gCj4gLS0gCj4g4K6u4K6j 4K6/4K614K6j4K+N4K6j4K6p4K+NIOCumuCupOCuvuCumuCuv+CuteCuruCvjQoKLS0gCglBbnN1 ZWwKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpMaW51eCBNVEQgZGlzY3Vzc2lvbiBtYWlsaW5nIGxpc3QKaHR0cDovL2xpc3RzLmluZnJhZGVh ZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1tdGQvCg==