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=-6.8 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS 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 A79D7C43613 for ; Mon, 24 Jun 2019 14:51:14 +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 770642063F for ; Mon, 24 Jun 2019 14:51:14 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="NIJaBf+3"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=baylibre-com.20150623.gappssmtp.com header.i=@baylibre-com.20150623.gappssmtp.com header.b="Jwlce6dn" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 770642063F Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-amlogic-bounces+linux-amlogic=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:Reply-To:List-Subscribe:List-Help: List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-ID: References:Date:Subject:To:From:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To: List-Owner; bh=7QtK698x1Pig39FNJ4bcwLppsahm9nuDyk+tnT9Qt4M=; b=NIJaBf+34iViEX e7SMWS86qjxpuS+wL0wM85LnPXkQAwdpKjtKgPmdHXqeegQv3TMhZIRh9TVmH80skL4u7NOiAdedO S1JeFiRr/LDEogKi4f5urcdSx8DAhvkK3JJ07zgSmnYarebsP7Oui/4zFckthV8oDDMr/SCYAvx/1 M1dTiIJ3yes59wgYTYz0mf3SOnh4WbrwqnOA64tItmKwQoboNWMw5B3dw9diLZWtJOl+44NOo22fW lawhg601y1jKIlGjxq87XLD9ufQRMvN2ZH5Xlwr4Skm6LiJOsu1bvd97QUsDJEqbb77HvNdvDMxRr clH7DVA66sPHDq/JR7Gg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92 #3 (Red Hat Linux)) id 1hfQJJ-0002lv-DK; Mon, 24 Jun 2019 14:51:09 +0000 Received: from mail-wr1-x441.google.com ([2a00:1450:4864:20::441]) by bombadil.infradead.org with esmtps (Exim 4.92 #3 (Red Hat Linux)) id 1hfQHD-00089j-Rx for linux-amlogic@lists.infradead.org; Mon, 24 Jun 2019 14:49:06 +0000 Received: by mail-wr1-x441.google.com with SMTP id f9so14200077wre.12 for ; Mon, 24 Jun 2019 07:48:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:references:reply-to:message-id:mime-version :content-transfer-encoding; bh=nW4tFcXbHBMTIg/w5S7RfuoRl87+LKBKlyLEwJ3UoKo=; b=Jwlce6dniDBaSP2Iht35Dow2GECXEZLf7FwLD6a+Q8ICDyHNK9orMLs27Tu0YoAGkI 6qPB+mlVtsEI5JdE+hBaxPSKoK6u+nMrQplViAY2fNBmpeGkAmQfqNdZ4IrvzmY054XN P63/GMRNCF1GDpoR72iPC452kClNoVMiD2JoUn/7Q904QPBXmmbmMPrmRj4zyZfR0GoT 03eXJBNrApmLzw1oSIdN+PeCdoXge1+yeLLeDEgHkYvvIMGOn20lN6lVGibBfK7Eg4yc UCdcJUKvFH76nOfk8+dfbVFpVBhR11NUCraNJoMJQah5FsGro40h7J7cjoa3H1/8H983 wpCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:references:reply-to :message-id:mime-version:content-transfer-encoding; bh=nW4tFcXbHBMTIg/w5S7RfuoRl87+LKBKlyLEwJ3UoKo=; b=cdr4BvKUpFpgEipZp21jcTbAA6WmK6ieamOfKbpvTjZQts8jl2GupO0/VvgGU2y4sr gaKYv3SVxgTDWN2OxHspS6Oxofll07oUSvE7PVbJncFMU4y0Rr2bXTv+DCZ7NFzAalJe vYj/M4jdyacVdfOpao0dMYqcc5LVff4Yoi8jS58dhLnpVPhhLwMwIG/pwQDfH0vbACKR Tls+ZByl50zeRU+rJe5WKS091IZ9Q2k5z8e62/mGtYD08rnZ7Cs8lUVKzoTYz4bY2cvU 1UodRve5o8H9a/0NnARRoRJJr3GhPUK1T21rUeqKLh+n1uQyKY8bRYlSCG2iZJvBzDY9 zpig== X-Gm-Message-State: APjAAAWeRT2yEMjmK1DquL2BXSEPfTYkMTxr6dn9/1AJYSDo2b/m/Red B4ykGl9i1vVrLDc8YbbObKsMeg== X-Google-Smtp-Source: APXvYqw+YdXm1v/OThR+zY2Crq27IN7DFhjrgL9agzw9RhMlL/4pCnTVQeR7vjqzydwkYIJBLrk2Rw== X-Received: by 2002:adf:deca:: with SMTP id i10mr282323wrn.313.1561387737765; Mon, 24 Jun 2019 07:48:57 -0700 (PDT) Received: from localhost (lmontsouris-657-1-212-31.w90-63.abo.wanadoo.fr. [90.63.244.31]) by smtp.gmail.com with ESMTPSA id 203sm8274429wmc.30.2019.06.24.07.48.57 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 24 Jun 2019 07:48:57 -0700 (PDT) From: Julien Masson To: Neil Armstrong Subject: [PATCH 6/9] drm: meson: venc: use proper macros instead of magic constants Date: Mon, 24 Jun 2019 16:48:50 +0200 References: <86zhm782g5.fsf@baylibre.com> Message-ID: <86r27j82ef.fsf@baylibre.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190624_074900_116241_1D290E88 X-CRM114-Status: GOOD ( 11.35 ) X-BeenThere: linux-amlogic@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: 86zhm782g5.fsf@baylibre.com Cc: Julien Masson , linux-amlogic@lists.infradead.org, dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-amlogic" Errors-To: linux-amlogic-bounces+linux-amlogic=archiver.kernel.org@lists.infradead.org VGhpcyBwYXRjaCBhZGQgbmV3IG1hY3JvcyB3aGljaCBhcmUgdXNlZCB0byBzZXQgdGhlIGZvbGxv d2luZwpyZWdpc3RlcnM6Ci0gRU5DSV9DRklMVF9DVFJMCi0gRU5DSV9DRklMVF9DVFJMMgotIEVO Q0lfTUFDVl9NQVhfQU1QCi0gRU5DSV9WSURFT19NT0RFX0FEVgotIEVOQ0lfVkZJRk8yVkRfQ1RM Ci0gRU5DSV9WSURFT19FTgotIEVOQ1BfVklERU9fTU9ERQotIFZQVV9IRE1JX1NFVFRJTkcKLSBW RU5DX1VQU0FNUExFX0NUUkwwCi0gVkVOQ19VUFNBTVBMRV9DVFJMMQotIFZFTkNfVVBTQU1QTEVf Q1RSTDIKLSBWRU5DX1ZEQUNfRklGT19DVFJMCi0gVkVOQ19WREFDX0RBQzBfRklMVF9DVFJMMAot IFZFTkNfSU5UQ1RSTAoKU2lnbmVkLW9mZi1ieTogSnVsaWVuIE1hc3NvbiA8am1hc3NvbkBiYXls aWJyZS5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX3JlZ2lzdGVycy5oIHwg IDUxICsrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25fdmVuYy5jICAgICAgfCAx NTUgKysrKysrKysrKysrKysrKysrKy0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25f dmVuY19jdmJzLmMgfCAgIDMgKy0KIDMgZmlsZXMgY2hhbmdlZCwgMTc3IGluc2VydGlvbnMoKyks IDMyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZXNvbi9tZXNv bl9yZWdpc3RlcnMuaCBiL2RyaXZlcnMvZ3B1L2RybS9tZXNvbi9tZXNvbl9yZWdpc3RlcnMuaApp bmRleCA3YTUyYWFjN2UyOGEuLjUzN2E3Nzk0OTJiZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL21lc29uL21lc29uX3JlZ2lzdGVycy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZXNvbi9t ZXNvbl9yZWdpc3RlcnMuaApAQCAtNzQyLDYgKzc0MiwyNSBAQAogI2RlZmluZSBWRU5DX1VQU0FN UExFX0NUUkwwIDB4MWI2NAogI2RlZmluZSBWRU5DX1VQU0FNUExFX0NUUkwxIDB4MWI2NQogI2Rl ZmluZSBWRU5DX1VQU0FNUExFX0NUUkwyIDB4MWI2NgorI2RlZmluZQkJVkVOQ19VUFNBTVBMRV9D VFJMX0YwXzJfQ0xLX1JBVElPICAgICAgICBCSVQoMCkKKyNkZWZpbmUJCVZFTkNfVVBTQU1QTEVf Q1RSTF9GMV9FTiAgICAgICAgICAgICAgICAgQklUKDUpCisjZGVmaW5lCQlWRU5DX1VQU0FNUExF X0NUUkxfRjFfVVBTQU1QTEVfRU4gICAgICAgIEJJVCg2KQorI2RlZmluZQkJVkVOQ19VUFNBTVBM RV9DVFJMX0lOVEVSTEFDRV9ISUdIX0xVTUEgICAoMHgwIDw8IDEyKQorI2RlZmluZQkJVkVOQ19V UFNBTVBMRV9DVFJMX0NWQlMgICAgICAgICAgICAgICAgICAoMHgxIDw8IDEyKQorI2RlZmluZQkJ VkVOQ19VUFNBTVBMRV9DVFJMX1NfVklERU9fTFVNQSAgICAgICAgICAoMHgyIDw8IDEyKQorI2Rl ZmluZQkJVkVOQ19VUFNBTVBMRV9DVFJMX1NfVklERU9fQ0hST01BICAgICAgICAoMHgzIDw8IDEy KQorI2RlZmluZQkJVkVOQ19VUFNBTVBMRV9DVFJMX0lOVEVSTEFDRV9QQiAgICAgICAgICAoMHg0 IDw8IDEyKQorI2RlZmluZQkJVkVOQ19VUFNBTVBMRV9DVFJMX0lOVEVSTEFDRV9QUiAgICAgICAg ICAoMHg1IDw8IDEyKQorI2RlZmluZQkJVkVOQ19VUFNBTVBMRV9DVFJMX0lOVEVSTEFDRV9SICAg ICAgICAgICAoMHg2IDw8IDEyKQorI2RlZmluZQkJVkVOQ19VUFNBTVBMRV9DVFJMX0lOVEVSTEFD RV9HICAgICAgICAgICAoMHg3IDw8IDEyKQorI2RlZmluZQkJVkVOQ19VUFNBTVBMRV9DVFJMX0lO VEVSTEFDRV9CICAgICAgICAgICAoMHg4IDw8IDEyKQorI2RlZmluZQkJVkVOQ19VUFNBTVBMRV9D VFJMX1BST0dSRVNTSVZFX1kgICAgICAgICAoMHg5IDw8IDEyKQorI2RlZmluZQkJVkVOQ19VUFNB TVBMRV9DVFJMX1BST0dSRVNTSVZFX1BCICAgICAgICAoMHhhIDw8IDEyKQorI2RlZmluZQkJVkVO Q19VUFNBTVBMRV9DVFJMX1BST0dSRVNTSVZFX1BSICAgICAgICAoMHhiIDw8IDEyKQorI2RlZmlu ZQkJVkVOQ19VUFNBTVBMRV9DVFJMX1BST0dSRVNTSVZFX1IgICAgICAgICAoMHhjIDw8IDEyKQor I2RlZmluZQkJVkVOQ19VUFNBTVBMRV9DVFJMX1BST0dSRVNTSVZFX0cgICAgICAgICAoMHhkIDw8 IDEyKQorI2RlZmluZQkJVkVOQ19VUFNBTVBMRV9DVFJMX1BST0dSRVNTSVZFX0IgICAgICAgICAo MHhlIDw8IDEyKQorI2RlZmluZQkJVkVOQ19VUFNBTVBMRV9DVFJMX1ZEQUNfVEVTVF9WQUxVRSAg ICAgICAoMHhmIDw8IDEyKQogI2RlZmluZSBUQ09OX0lOVkVSVF9DVEwgMHgxYjY3CiAjZGVmaW5l IFZFTkNfVklERU9fUFJPR19NT0RFIDB4MWI2OAogI2RlZmluZSBWRU5DX0VOQ0lfTElORSAweDFi NjkKQEAgLTc1MCw2ICs3NjksNyBAQAogI2RlZmluZSBWRU5DX0VOQ1BfUElYRUwgMHgxYjZjCiAj ZGVmaW5lIFZFTkNfU1RBVEEgMHgxYjZkCiAjZGVmaW5lIFZFTkNfSU5UQ1RSTCAweDFiNmUKKyNk ZWZpbmUJCVZFTkNfSU5UQ1RSTF9FTkNJX0xOUlNUX0lOVF9FTiAgQklUKDEpCiAjZGVmaW5lIFZF TkNfSU5URkxBRyAweDFiNmYKICNkZWZpbmUgVkVOQ19WSURFT19UU1RfRU4gMHgxYjcwCiAjZGVm aW5lIFZFTkNfVklERU9fVFNUX01EU0VMIDB4MWI3MQpAQCAtNzYwLDYgKzc4MCw3IEBACiAjZGVm aW5lIFZFTkNfVklERU9fVFNUX0NMUkJBUl9XSURUSCAweDFiNzYKICNkZWZpbmUgVkVOQ19WSURF T19UU1RfVkRDTlRfU1RTRVQgMHgxYjc3CiAjZGVmaW5lIFZFTkNfVkRBQ19EQUNTRUwwIDB4MWI3 OAorI2RlZmluZQkJVkVOQ19WREFDX1NFTF9BVFZfRE1EICAgICAgICAgICBCSVQoNSkKICNkZWZp bmUgVkVOQ19WREFDX0RBQ1NFTDEgMHgxYjc5CiAjZGVmaW5lIFZFTkNfVkRBQ19EQUNTRUwyIDB4 MWI3YQogI2RlZmluZSBWRU5DX1ZEQUNfREFDU0VMMyAweDFiN2IKQEAgLTc4MCw2ICs4MDEsNyBA QAogI2RlZmluZSBWRU5DX1ZEQUNfREFDNV9HQUlOQ1RSTCAweDFiZmEKICNkZWZpbmUgVkVOQ19W REFDX0RBQzVfT0ZGU0VUIDB4MWJmYgogI2RlZmluZSBWRU5DX1ZEQUNfRklGT19DVFJMIDB4MWJm YworI2RlZmluZQkJVkVOQ19WREFDX0ZJRk9fRU5fRU5DSV9FTkFCTEUgICBCSVQoMTMpCiAjZGVm aW5lIEVOQ0xfVENPTl9JTlZFUlRfQ1RMIDB4MWJmZAogI2RlZmluZSBFTkNQX1ZJREVPX0VOIDB4 MWI4MAogI2RlZmluZSBFTkNQX1ZJREVPX1NZTkNfTU9ERSAweDFiODEKQEAgLTc5NSw2ICs4MTcs NyBAQAogI2RlZmluZSBFTkNQX1ZJREVPX1NZTkNfT0ZGU1QgMHgxYjhiCiAjZGVmaW5lIEVOQ1Bf VklERU9fTUFDVl9PRkZTVCAweDFiOGMKICNkZWZpbmUgRU5DUF9WSURFT19NT0RFIDB4MWI4ZAor I2RlZmluZQkJRU5DUF9WSURFT19NT0RFX0RFX1ZfSElHSCAgICAgICBCSVQoMTQpCiAjZGVmaW5l IEVOQ1BfVklERU9fTU9ERV9BRFYgMHgxYjhlCiAjZGVmaW5lIEVOQ1BfREJHX1BYX1JTVCAweDFi OTAKICNkZWZpbmUgRU5DUF9EQkdfTE5fUlNUIDB4MWI5MQpAQCAtODczLDYgKzg5NiwxMSBAQAog I2RlZmluZSBDNjU2X0ZTX0xORUQgMHgxYmU3CiAjZGVmaW5lIEVOQ0lfVklERU9fTU9ERSAweDFi MDAKICNkZWZpbmUgRU5DSV9WSURFT19NT0RFX0FEViAweDFiMDEKKyNkZWZpbmUJCUVOQ0lfVklE RU9fTU9ERV9BRFZfRE1YTUQodmFsKSAgICAgICAgICAodmFsICYgMHgzKQorI2RlZmluZQkJRU5D SV9WSURFT19NT0RFX0FEVl9WQklDVExfTElORV8xN18yMiAgIEJJVCgyKQorI2RlZmluZQkJRU5D SV9WSURFT19NT0RFX0FEVl9ZQldfTUVESVVNICAgICAgICAgICgwIDw8IDQpCisjZGVmaW5lCQlF TkNJX1ZJREVPX01PREVfQURWX1lCV19MT1cgICAgICAgICAgICAgKDB4MSA8PCA0KQorI2RlZmlu ZQkJRU5DSV9WSURFT19NT0RFX0FEVl9ZQldfSElHSCAgICAgICAgICAgICgweDIgPDwgNCkKICNk ZWZpbmUgRU5DSV9WSURFT19GU0NfQURKIDB4MWIwMgogI2RlZmluZSBFTkNJX1ZJREVPX0JSSUdI VCAweDFiMDMKICNkZWZpbmUgRU5DSV9WSURFT19DT05UIDB4MWIwNApAQCAtOTQzLDEzICs5NzEs MTcgQEAKICNkZWZpbmUgRU5DSV9EQkdfTUFYUFggMHgxYjRjCiAjZGVmaW5lIEVOQ0lfREJHX01B WExOIDB4MWI0ZAogI2RlZmluZSBFTkNJX01BQ1ZfTUFYX0FNUCAweDFiNTAKKyNkZWZpbmUJCUVO Q0lfTUFDVl9NQVhfQU1QX0VOQUJMRV9DSEFOR0UgQklUKDE1KQorI2RlZmluZQkJRU5DSV9NQUNW X01BWF9BTVBfVkFMKHZhbCkgICAgICAodmFsICYgMHg4M2ZmKQogI2RlZmluZSBFTkNJX01BQ1Zf UFVMU0VfTE8gMHgxYjUxCiAjZGVmaW5lIEVOQ0lfTUFDVl9QVUxTRV9ISSAweDFiNTIKICNkZWZp bmUgRU5DSV9NQUNWX0JLUF9NQVggMHgxYjUzCiAjZGVmaW5lIEVOQ0lfQ0ZJTFRfQ1RSTCAweDFi NTQKKyNkZWZpbmUJCUVOQ0lfQ0ZJTFRfQ01QVF9TRUxfSElHSCAgICAgICAgQklUKDEpCiAjZGVm aW5lIEVOQ0lfQ0ZJTFQ3IDB4MWI1NQogI2RlZmluZSBFTkNJX1lDX0RFTEFZIDB4MWI1NgogI2Rl ZmluZSBFTkNJX1ZJREVPX0VOIDB4MWI1NworI2RlZmluZQkJRU5DSV9WSURFT19FTl9FTkFCTEUg ICAgICAgICAgICBCSVQoMCkKICNkZWZpbmUgRU5DSV9EVklfSFNPX0JFR0lOIDB4MWMwMAogI2Rl ZmluZSBFTkNJX0RWSV9IU09fRU5EIDB4MWMwMQogI2RlZmluZSBFTkNJX0RWSV9WU09fQkxJTkVf RVZOIDB4MWMwMgpAQCAtOTYxLDYgKzk5MywxMCBAQAogI2RlZmluZSBFTkNJX0RWSV9WU09fRU5E X0VWTiAweDFjMDgKICNkZWZpbmUgRU5DSV9EVklfVlNPX0VORF9PREQgMHgxYzA5CiAjZGVmaW5l IEVOQ0lfQ0ZJTFRfQ1RSTDIgMHgxYzBhCisjZGVmaW5lCQlFTkNJX0NGSUxUX0NNUFRfQ1JfRExZ KGRlbGF5KSAgIChkZWxheSAmIDB4ZikKKyNkZWZpbmUJCUVOQ0lfQ0ZJTFRfQ01QVF9DQl9ETFko ZGVsYXkpICAgKChkZWxheSAmIDB4ZikgPDwgNCkKKyNkZWZpbmUJCUVOQ0lfQ0ZJTFRfQ1ZCU19D Ul9ETFkoZGVsYXkpICAgKChkZWxheSAmIDB4ZikgPDwgOCkKKyNkZWZpbmUJCUVOQ0lfQ0ZJTFRf Q1ZCU19DQl9ETFkoZGVsYXkpICAgKChkZWxheSAmIDB4ZikgPDwgMTIpCiAjZGVmaW5lIEVOQ0lf REFDU0VMXzAgMHgxYzBiCiAjZGVmaW5lIEVOQ0lfREFDU0VMXzEgMHgxYzBjCiAjZGVmaW5lIEVO Q1BfREFDU0VMXzAgMHgxYzBkCkBAIC05NzUsNiArMTAxMSw4IEBACiAjZGVmaW5lIEVOQ0lfVFNU X0NMUkJBUl9XSURUSCAweDFjMTYKICNkZWZpbmUgRU5DSV9UU1RfVkRDTlRfU1RTRVQgMHgxYzE3 CiAjZGVmaW5lIEVOQ0lfVkZJRk8yVkRfQ1RMIDB4MWMxOAorI2RlZmluZQkJRU5DSV9WRklGTzJW RF9DVExfRU5BQkxFICAgICAgICBCSVQoMCkKKyNkZWZpbmUJCUVOQ0lfVkZJRk8yVkRfQ1RMX1ZE X1NFTCh2YWwpICAgKCh2YWwgJiAweGZmKSA8PCA4KQogI2RlZmluZSBFTkNJX1ZGSUZPMlZEX1BJ WEVMX1NUQVJUIDB4MWMxOQogI2RlZmluZSBFTkNJX1ZGSUZPMlZEX1BJWEVMX0VORCAweDFjMWEK ICNkZWZpbmUgRU5DSV9WRklGTzJWRF9MSU5FX1RPUF9TVEFSVCAweDFjMWIKQEAgLTEwMzcsNiAr MTA3NSw3IEBACiAjZGVmaW5lIFZFTkNfVkRBQ19EQUM1X0ZJTFRfQ1RSTDAgMHgxYzU2CiAjZGVm aW5lIFZFTkNfVkRBQ19EQUM1X0ZJTFRfQ1RSTDEgMHgxYzU3CiAjZGVmaW5lIFZFTkNfVkRBQ19E QUMwX0ZJTFRfQ1RSTDAgMHgxYzU4CisjZGVmaW5lCQlWRU5DX1ZEQUNfREFDMF9GSUxUX0NUUkww X0VOICAgIEJJVCgwKQogI2RlZmluZSBWRU5DX1ZEQUNfREFDMF9GSUxUX0NUUkwxIDB4MWM1OQog I2RlZmluZSBWRU5DX1ZEQUNfREFDMV9GSUxUX0NUUkwwIDB4MWM1YQogI2RlZmluZSBWRU5DX1ZE QUNfREFDMV9GSUxUX0NUUkwxIDB4MWM1YgpAQCAtMTQ0Miw2ICsxNDgxLDE4IEBACiAjZGVmaW5l CQlWSVUyX1NFTF9WRU5DX0VOQ1AJKDIgPDwgMikKICNkZWZpbmUJCVZJVTJfU0VMX1ZFTkNfRU5D VAkoMyA8PCAyKQogI2RlZmluZSBWUFVfSERNSV9TRVRUSU5HIDB4MjcxYgorI2RlZmluZQkJVlBV X0hETUlfRU5DSV9EQVRBX1RPX0hETUkgICAgICBCSVQoMCkKKyNkZWZpbmUJCVZQVV9IRE1JX0VO Q1BfREFUQV9UT19IRE1JICAgICAgQklUKDEpCisjZGVmaW5lCQlWUFVfSERNSV9JTlZfSFNZTkMg ICAgICAgICAgICAgIEJJVCgyKQorI2RlZmluZQkJVlBVX0hETUlfSU5WX1ZTWU5DICAgICAgICAg ICAgICBCSVQoMykKKyNkZWZpbmUJCVZQVV9IRE1JX09VVFBVVF9DUllDQiAgICAgICAgICAgKDAg PDwgNSkKKyNkZWZpbmUJCVZQVV9IRE1JX09VVFBVVF9ZQ0JDUiAgICAgICAgICAgKDEgPDwgNSkK KyNkZWZpbmUJCVZQVV9IRE1JX09VVFBVVF9ZQ1JDQiAgICAgICAgICAgKDIgPDwgNSkKKyNkZWZp bmUJCVZQVV9IRE1JX09VVFBVVF9DQkNSWSAgICAgICAgICAgKDMgPDwgNSkKKyNkZWZpbmUJCVZQ VV9IRE1JX09VVFBVVF9DQllDUiAgICAgICAgICAgKDQgPDwgNSkKKyNkZWZpbmUJCVZQVV9IRE1J X09VVFBVVF9DUkNCWSAgICAgICAgICAgKDUgPDwgNSkKKyNkZWZpbmUJCVZQVV9IRE1JX1dSX1JB VEUocmF0ZSkgICAgICAgICAgKCgocmF0ZSAmIDB4MWYpIC0gMSkgPDwgOCkKKyNkZWZpbmUJCVZQ VV9IRE1JX1JEX1JBVEUocmF0ZSkgICAgICAgICAgKCgocmF0ZSAmIDB4MWYpIC0gMSkgPDwgMTIp CiAjZGVmaW5lIEVOQ0lfSU5GT19SRUFEIDB4MjcxYwogI2RlZmluZSBFTkNQX0lORk9fUkVBRCAw eDI3MWQKICNkZWZpbmUgRU5DVF9JTkZPX1JFQUQgMHgyNzFlCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vbWVzb24vbWVzb25fdmVuYy5jIGIvZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29u X3ZlbmMuYwppbmRleCA3YjdhMGQ4ZDczN2MuLjkxOGRmMDJkMmFlZiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL21lc29uL21lc29uX3ZlbmMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVz b24vbWVzb25fdmVuYy5jCkBAIC05NzYsNiArOTc2LDcgQEAgdm9pZCBtZXNvbl92ZW5jX2hkbWlf bW9kZV9zZXQoc3RydWN0IG1lc29uX2RybSAqcHJpdiwgaW50IHZpYywKIAl1bnNpZ25lZCBpbnQg ZW9mX2xpbmVzOwogCXVuc2lnbmVkIGludCBzb2ZfbGluZXM7CiAJdW5zaWduZWQgaW50IHZzeW5j X2xpbmVzOworCXUzMiByZWc7CiAKIAkvKiBVc2UgVkVOQ0kgZm9yIDQ4MGkgYW5kIDU3NmkgYW5k IGRvdWJsZSBIRE1JIHBpeGVscyAqLwogCWlmIChtb2RlLT5mbGFncyAmIERSTV9NT0RFX0ZMQUdf REJMQ0xLKSB7CkBAIC0xMDQ4LDggKzEwNDksMTEgQEAgdm9pZCBtZXNvbl92ZW5jX2hkbWlfbW9k ZV9zZXQoc3RydWN0IG1lc29uX2RybSAqcHJpdiwgaW50IHZpYywKIAkJdW5zaWduZWQgaW50IGxp bmVzX2YxOwogCiAJCS8qIENWQlMgRmlsdGVyIHNldHRpbmdzICovCi0JCXdyaXRlbF9yZWxheGVk KDB4MTIsIHByaXYtPmlvX2Jhc2UgKyBfUkVHKEVOQ0lfQ0ZJTFRfQ1RSTCkpOwotCQl3cml0ZWxf cmVsYXhlZCgweDEyLCBwcml2LT5pb19iYXNlICsgX1JFRyhFTkNJX0NGSUxUX0NUUkwyKSk7CisJ CXdyaXRlbF9yZWxheGVkKEVOQ0lfQ0ZJTFRfQ01QVF9TRUxfSElHSCB8IDB4MTAsCisJCQkgICAg ICAgcHJpdi0+aW9fYmFzZSArIF9SRUcoRU5DSV9DRklMVF9DVFJMKSk7CisJCXdyaXRlbF9yZWxh eGVkKEVOQ0lfQ0ZJTFRfQ01QVF9DUl9ETFkoMikgfAorCQkJICAgICAgIEVOQ0lfQ0ZJTFRfQ01Q VF9DQl9ETFkoMSksCisJCQkgICAgICAgcHJpdi0+aW9fYmFzZSArIF9SRUcoRU5DSV9DRklMVF9D VFJMMikpOwogCiAJCS8qIERpZ2l0YWwgVmlkZW8gU2VsZWN0IDogSW50ZXJsYWNlLCBjbGsyNyBj bGssIGV4dGVybmFsICovCiAJCXdyaXRlbF9yZWxheGVkKDAsIHByaXYtPmlvX2Jhc2UgKyBfUkVH KFZFTkNfRFZJX1NFVFRJTkcpKTsKQEAgLTEwNzEsOCArMTA3NSw5IEBAIHZvaWQgbWVzb25fdmVu Y19oZG1pX21vZGVfc2V0KHN0cnVjdCBtZXNvbl9kcm0gKnByaXYsIGludCB2aWMsCiAJCQkJcHJp di0+aW9fYmFzZSArIF9SRUcoRU5DSV9TWU5DX1ZTT19PRERMTikpOwogCiAJCS8qIE1hY3Jvdmlz aW9uIG1heCBhbXBsaXR1ZGUgY2hhbmdlICovCi0JCXdyaXRlbF9yZWxheGVkKHZtb2RlLT5lbmNp Lm1hY3ZfbWF4X2FtcCwKLQkJCQlwcml2LT5pb19iYXNlICsgX1JFRyhFTkNJX01BQ1ZfTUFYX0FN UCkpOworCQl3cml0ZWxfcmVsYXhlZChFTkNJX01BQ1ZfTUFYX0FNUF9FTkFCTEVfQ0hBTkdFIHwK KwkJCSAgICAgICBFTkNJX01BQ1ZfTUFYX0FNUF9WQUwodm1vZGUtPmVuY2kubWFjdl9tYXhfYW1w KSwKKwkJCSAgICAgICBwcml2LT5pb19iYXNlICsgX1JFRyhFTkNJX01BQ1ZfTUFYX0FNUCkpOwog CiAJCS8qIFZpZGVvIG1vZGUgKi8KIAkJd3JpdGVsX3JlbGF4ZWQodm1vZGUtPmVuY2kudmlkZW9f cHJvZ19tb2RlLApAQCAtMTA4OCw3ICsxMDkzLDEwIEBAIHZvaWQgbWVzb25fdmVuY19oZG1pX21v ZGVfc2V0KHN0cnVjdCBtZXNvbl9kcm0gKnByaXYsIGludCB2aWMsCiAJCSAqIEJ5cGFzcyBsdW1h IGxvdyBwYXNzIGZpbHRlcgogCQkgKiBObyBtYWNyb3Zpc2lvbiBvbiBDU1lOQwogCQkgKi8KLQkJ d3JpdGVsX3JlbGF4ZWQoMHgyNiwgcHJpdi0+aW9fYmFzZSArIF9SRUcoRU5DSV9WSURFT19NT0RF X0FEVikpOworCQl3cml0ZWxfcmVsYXhlZChFTkNJX1ZJREVPX01PREVfQURWX0RNWE1EKDIpIHwK KwkJCSAgICAgICBFTkNJX1ZJREVPX01PREVfQURWX1ZCSUNUTF9MSU5FXzE3XzIyIHwKKwkJCSAg ICAgICBFTkNJX1ZJREVPX01PREVfQURWX1lCV19ISUdILAorCQkJICAgICAgIHByaXYtPmlvX2Jh c2UgKyBfUkVHKEVOQ0lfVklERU9fTU9ERV9BRFYpKTsKIAogCQl3cml0ZWwodm1vZGUtPmVuY2ku c2NoX2FkanVzdCwKIAkJCQlwcml2LT5pb19iYXNlICsgX1JFRyhFTkNJX1ZJREVPX1NDSCkpOwpA QCAtMTEwNCw4ICsxMTEyLDE3IEBAIHZvaWQgbWVzb25fdmVuY19oZG1pX21vZGVfc2V0KHN0cnVj dCBtZXNvbl9kcm0gKnByaXYsIGludCB2aWMsCiAJCS8qIFVOcmVzZXQgSW50ZXJsYWNlZCBUViBF bmNvZGVyICovCiAJCXdyaXRlbF9yZWxheGVkKDAsIHByaXYtPmlvX2Jhc2UgKyBfUkVHKEVOQ0lf REJHX1BYX1JTVCkpOwogCi0JCS8qIEVuYWJsZSBWZmlmbzJ2ZCwgWV9DYl9ZX0NyIHNlbGVjdCAq LwotCQl3cml0ZWxfcmVsYXhlZCgweDRlMDEsIHByaXYtPmlvX2Jhc2UgKyBfUkVHKEVOQ0lfVkZJ Rk8yVkRfQ1RMKSk7CisJCS8qCisJCSAqIEVuYWJsZSBWZmlmbzJ2ZCBhbmQgc2V0IFlfQ2JfWV9D cjoKKwkJICogQ29ycmVzcG9uZGluZyB2YWx1ZToKKwkJICogWSAgPT4gMDAgb3IgMTAKKwkJICog Q2IgPT4gMDEKKwkJICogQ3IgPT4gMTEKKwkJICogRXg6IDB4NGUgPT4gMDEwMDExMTAgd291bGQg bWVhbiBDYi9ZL0NyL1kKKwkJICovCisJCXdyaXRlbF9yZWxheGVkKEVOQ0lfVkZJRk8yVkRfQ1RM X0VOQUJMRSB8CisJCQkgICAgICAgRU5DSV9WRklGTzJWRF9DVExfVkRfU0VMKDB4NGUpLAorCQkJ ICAgICAgIHByaXYtPmlvX2Jhc2UgKyBfUkVHKEVOQ0lfVkZJRk8yVkRfQ1RMKSk7CiAKIAkJLyog VGltaW5ncyAqLwogCQl3cml0ZWxfcmVsYXhlZCh2bW9kZS0+ZW5jaS5waXhlbF9zdGFydCwKQEAg LTExMjcsNyArMTE0NCw4IEBAIHZvaWQgbWVzb25fdmVuY19oZG1pX21vZGVfc2V0KHN0cnVjdCBt ZXNvbl9kcm0gKnByaXYsIGludCB2aWMsCiAJCW1lc29uX3ZwcF9zZXR1cF9tdXgocHJpdiwgTUVT T05fVklVX1ZQUF9NVVhfRU5DSSk7CiAKIAkJLyogSW50ZXJsYWNlIHZpZGVvIGVuYWJsZSAqLwot CQl3cml0ZWxfcmVsYXhlZCgxLCBwcml2LT5pb19iYXNlICsgX1JFRyhFTkNJX1ZJREVPX0VOKSk7 CisJCXdyaXRlbF9yZWxheGVkKEVOQ0lfVklERU9fRU5fRU5BQkxFLAorCQkJICAgICAgIHByaXYt PmlvX2Jhc2UgKyBfUkVHKEVOQ0lfVklERU9fRU4pKTsKIAogCQlsaW5lc19mMCA9IG1vZGUtPnZ0 b3RhbCA+PiAxOwogCQlsaW5lc19mMSA9IGxpbmVzX2YwICsgMTsKQEAgLTEzNzQsNyArMTM5Miw4 IEBAIHZvaWQgbWVzb25fdmVuY19oZG1pX21vZGVfc2V0KHN0cnVjdCBtZXNvbl9kcm0gKnByaXYs IGludCB2aWMsCiAJCXdyaXRlbF9yZWxheGVkKDEsIHByaXYtPmlvX2Jhc2UgKyBfUkVHKEVOQ1Bf VklERU9fRU4pKTsKIAogCQkvKiBTZXQgREUgc2lnbmFs4oCZcyBwb2xhcml0eSBpcyBhY3RpdmUg aGlnaCAqLwotCQl3cml0ZWxfYml0c19yZWxheGVkKEJJVCgxNCksIEJJVCgxNCksCisJCXdyaXRl bF9iaXRzX3JlbGF4ZWQoRU5DUF9WSURFT19NT0RFX0RFX1ZfSElHSCwKKwkJCQkgICAgRU5DUF9W SURFT19NT0RFX0RFX1ZfSElHSCwKIAkJCQkgICAgcHJpdi0+aW9fYmFzZSArIF9SRUcoRU5DUF9W SURFT19NT0RFKSk7CiAKIAkJLyogUHJvZ3JhbSBERSB0aW1pbmcgKi8KQEAgLTE0OTMsMTMgKzE1 MTIsMzkgQEAgdm9pZCBtZXNvbl92ZW5jX2hkbWlfbW9kZV9zZXQoc3RydWN0IG1lc29uX2RybSAq cHJpdiwgaW50IHZpYywKIAkJbWVzb25fdnBwX3NldHVwX211eChwcml2LCBNRVNPTl9WSVVfVlBQ X01VWF9FTkNQKTsKIAl9CiAKLQl3cml0ZWxfcmVsYXhlZCgodXNlX2VuY2kgPyAxIDogMikgfAot CQkgICAgICAgKG1vZGUtPmZsYWdzICYgRFJNX01PREVfRkxBR19QSFNZTkMgPyAxIDw8IDIgOiAw KSB8Ci0JCSAgICAgICAobW9kZS0+ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX1BWU1lOQyA/IDEgPDwg MyA6IDApIHwKLQkJICAgICAgIDQgPDwgNSB8Ci0JCSAgICAgICAodmVuY19yZXBlYXQgPyAxIDw8 IDggOiAwKSB8Ci0JCSAgICAgICAoaGRtaV9yZXBlYXQgPyAxIDw8IDEyIDogMCksCi0JCSAgICAg ICBwcml2LT5pb19iYXNlICsgX1JFRyhWUFVfSERNSV9TRVRUSU5HKSk7CisJLyogU2V0IFZQVSBI RE1JIHNldHRpbmcgKi8KKwkvKiBTZWxlY3QgRU5DUCBvciBFTkNJIGRhdGEgdG8gSERNSSAqLwor CWlmICh1c2VfZW5jaSkKKwkJcmVnID0gVlBVX0hETUlfRU5DSV9EQVRBX1RPX0hETUk7CisJZWxz ZQorCQlyZWcgPSBWUFVfSERNSV9FTkNQX0RBVEFfVE9fSERNSTsKKworCS8qIEludmVydCBwb2xh cml0eSBvZiBIU1lOQyBmcm9tIFZFTkMgKi8KKwlpZiAobW9kZS0+ZmxhZ3MgJiBEUk1fTU9ERV9G TEFHX1BIU1lOQykKKwkJcmVnIHw9IFZQVV9IRE1JX0lOVl9IU1lOQzsKKworCS8qIEludmVydCBw b2xhcml0eSBvZiBWU1lOQyBmcm9tIFZFTkMgKi8KKwlpZiAobW9kZS0+ZmxhZ3MgJiBEUk1fTU9E RV9GTEFHX1BWU1lOQykKKwkJcmVnIHw9IFZQVV9IRE1JX0lOVl9WU1lOQzsKKworCS8qIE91dHB1 dCBkYXRhIGZvcm1hdDogQ2JZQ3IgKi8KKwlyZWcgfD0gVlBVX0hETUlfT1VUUFVUX0NCWUNSOwor CisJLyoKKwkgKiBXcml0ZSByYXRlIHRvIHRoZSBhc3luYyBGSUZPIGJldHdlZW4gVkVOQyBhbmQg SERNSS4KKwkgKiBPbmUgd3JpdGUgZXZlcnkgMiB3cl9jbGsuCisJICovCisJaWYgKHZlbmNfcmVw ZWF0KQorCQlyZWcgfD0gVlBVX0hETUlfV1JfUkFURSgyKTsKKworCS8qCisJICogUmVhZCByYXRl IHRvIHRoZSBhc3luYyBGSUZPIGJldHdlZW4gVkVOQyBhbmQgSERNSS4KKwkgKiBPbmUgcmVhZCBl dmVyeSAyIHdyX2Nsay4KKwkgKi8KKwlpZiAoaGRtaV9yZXBlYXQpCisJCXJlZyB8PSBWUFVfSERN SV9SRF9SQVRFKDIpOworCisJd3JpdGVsX3JlbGF4ZWQocmVnLCBwcml2LT5pb19iYXNlICsgX1JF RyhWUFVfSERNSV9TRVRUSU5HKSk7CiAKIAlwcml2LT52ZW5jLmhkbWlfcmVwZWF0ID0gaGRtaV9y ZXBlYXQ7CiAJcHJpdi0+dmVuYy52ZW5jX3JlcGVhdCA9IHZlbmNfcmVwZWF0OwpAQCAtMTUxMiwx MiArMTU1NywxNyBAQCBFWFBPUlRfU1lNQk9MX0dQTChtZXNvbl92ZW5jX2hkbWlfbW9kZV9zZXQp Owogdm9pZCBtZXNvbl92ZW5jaV9jdmJzX21vZGVfc2V0KHN0cnVjdCBtZXNvbl9kcm0gKnByaXYs CiAJCQkgICAgICAgc3RydWN0IG1lc29uX2N2YnNfZW5jaV9tb2RlICptb2RlKQogeworCXUzMiBy ZWc7CisKIAlpZiAobW9kZS0+bW9kZV90YWcgPT0gcHJpdi0+dmVuYy5jdXJyZW50X21vZGUpCiAJ CXJldHVybjsKIAogCS8qIENWQlMgRmlsdGVyIHNldHRpbmdzICovCi0Jd3JpdGVsX3JlbGF4ZWQo MHgxMiwgcHJpdi0+aW9fYmFzZSArIF9SRUcoRU5DSV9DRklMVF9DVFJMKSk7Ci0Jd3JpdGVsX3Jl bGF4ZWQoMHgxMiwgcHJpdi0+aW9fYmFzZSArIF9SRUcoRU5DSV9DRklMVF9DVFJMMikpOworCXdy aXRlbF9yZWxheGVkKEVOQ0lfQ0ZJTFRfQ01QVF9TRUxfSElHSCB8IDB4MTAsCisJCSAgICAgICBw cml2LT5pb19iYXNlICsgX1JFRyhFTkNJX0NGSUxUX0NUUkwpKTsKKwl3cml0ZWxfcmVsYXhlZChF TkNJX0NGSUxUX0NNUFRfQ1JfRExZKDIpIHwKKwkJICAgICAgIEVOQ0lfQ0ZJTFRfQ01QVF9DQl9E TFkoMSksCisJCSAgICAgICBwcml2LT5pb19iYXNlICsgX1JFRyhFTkNJX0NGSUxUX0NUUkwyKSk7 CiAKIAkvKiBEaWdpdGFsIFZpZGVvIFNlbGVjdCA6IEludGVybGFjZSwgY2xrMjcgY2xrLCBleHRl cm5hbCAqLwogCXdyaXRlbF9yZWxheGVkKDAsIHByaXYtPmlvX2Jhc2UgKyBfUkVHKFZFTkNfRFZJ X1NFVFRJTkcpKTsKQEAgLTE1MzksOCArMTU4OSw5IEBAIHZvaWQgbWVzb25fdmVuY2lfY3Zic19t b2RlX3NldChzdHJ1Y3QgbWVzb25fZHJtICpwcml2LAogCQkJcHJpdi0+aW9fYmFzZSArIF9SRUco RU5DSV9TWU5DX1ZTT19PRERMTikpOwogCiAJLyogTWFjcm92aXNpb24gbWF4IGFtcGxpdHVkZSBj aGFuZ2UgKi8KLQl3cml0ZWxfcmVsYXhlZCgweDgxMDAgKyBtb2RlLT5tYWN2X21heF9hbXAsCi0J CQlwcml2LT5pb19iYXNlICsgX1JFRyhFTkNJX01BQ1ZfTUFYX0FNUCkpOworCXdyaXRlbF9yZWxh eGVkKEVOQ0lfTUFDVl9NQVhfQU1QX0VOQUJMRV9DSEFOR0UgfAorCQkgICAgICAgRU5DSV9NQUNW X01BWF9BTVBfVkFMKG1vZGUtPm1hY3ZfbWF4X2FtcCksCisJCSAgICAgICBwcml2LT5pb19iYXNl ICsgX1JFRyhFTkNJX01BQ1ZfTUFYX0FNUCkpOwogCiAJLyogVmlkZW8gbW9kZSAqLwogCXdyaXRl bF9yZWxheGVkKG1vZGUtPnZpZGVvX3Byb2dfbW9kZSwKQEAgLTE1NTYsNyArMTYwNywxMCBAQCB2 b2lkIG1lc29uX3ZlbmNpX2N2YnNfbW9kZV9zZXQoc3RydWN0IG1lc29uX2RybSAqcHJpdiwKIAkg KiBCeXBhc3MgbHVtYSBsb3cgcGFzcyBmaWx0ZXIKIAkgKiBObyBtYWNyb3Zpc2lvbiBvbiBDU1lO QwogCSAqLwotCXdyaXRlbF9yZWxheGVkKDB4MjYsIHByaXYtPmlvX2Jhc2UgKyBfUkVHKEVOQ0lf VklERU9fTU9ERV9BRFYpKTsKKwl3cml0ZWxfcmVsYXhlZChFTkNJX1ZJREVPX01PREVfQURWX0RN WE1EKDIpIHwKKwkJICAgICAgIEVOQ0lfVklERU9fTU9ERV9BRFZfVkJJQ1RMX0xJTkVfMTdfMjIg fAorCQkgICAgICAgRU5DSV9WSURFT19NT0RFX0FEVl9ZQldfSElHSCwKKwkJICAgICAgIHByaXYt PmlvX2Jhc2UgKyBfUkVHKEVOQ0lfVklERU9fTU9ERV9BRFYpKTsKIAogCXdyaXRlbChtb2RlLT5z Y2hfYWRqdXN0LCBwcml2LT5pb19iYXNlICsgX1JFRyhFTkNJX1ZJREVPX1NDSCkpOwogCkBAIC0x NTg4LDE2ICsxNjQyLDUwIEBAIHZvaWQgbWVzb25fdmVuY2lfY3Zic19tb2RlX3NldChzdHJ1Y3Qg bWVzb25fZHJtICpwcml2LAogCS8qIFVOcmVzZXQgSW50ZXJsYWNlZCBUViBFbmNvZGVyICovCiAJ d3JpdGVsX3JlbGF4ZWQoMCwgcHJpdi0+aW9fYmFzZSArIF9SRUcoRU5DSV9EQkdfUFhfUlNUKSk7 CiAKLQkvKiBFbmFibGUgVmZpZm8ydmQsIFlfQ2JfWV9DciBzZWxlY3QgKi8KLQl3cml0ZWxfcmVs YXhlZCgweDRlMDEsIHByaXYtPmlvX2Jhc2UgKyBfUkVHKEVOQ0lfVkZJRk8yVkRfQ1RMKSk7CisJ LyoKKwkgKiBFbmFibGUgVmZpZm8ydmQgYW5kIHNldCBZX0NiX1lfQ3I6CisJICogQ29ycmVzcG9u ZGluZyB2YWx1ZToKKwkgKiBZICA9PiAwMCBvciAxMAorCSAqIENiID0+IDAxCisJICogQ3IgPT4g MTEKKwkgKiBFeDogMHg0ZSA9PiAwMTAwMTExMCB3b3VsZCBtZWFuIENiL1kvQ3IvWQorCSAqLwor CXdyaXRlbF9yZWxheGVkKEVOQ0lfVkZJRk8yVkRfQ1RMX0VOQUJMRSB8CisJCSAgICAgICBFTkNJ X1ZGSUZPMlZEX0NUTF9WRF9TRUwoMHg0ZSksCisJCSAgICAgICBwcml2LT5pb19iYXNlICsgX1JF RyhFTkNJX1ZGSUZPMlZEX0NUTCkpOwogCiAJLyogUG93ZXIgVVAgRGFjcyAqLwogCXdyaXRlbF9y ZWxheGVkKDAsIHByaXYtPmlvX2Jhc2UgKyBfUkVHKFZFTkNfVkRBQ19TRVRUSU5HKSk7CiAKIAkv KiBWaWRlbyBVcHNhbXBsaW5nICovCi0Jd3JpdGVsX3JlbGF4ZWQoMHgwMDYxLCBwcml2LT5pb19i YXNlICsgX1JFRyhWRU5DX1VQU0FNUExFX0NUUkwwKSk7Ci0Jd3JpdGVsX3JlbGF4ZWQoMHg0MDYx LCBwcml2LT5pb19iYXNlICsgX1JFRyhWRU5DX1VQU0FNUExFX0NUUkwxKSk7Ci0Jd3JpdGVsX3Jl bGF4ZWQoMHg1MDYxLCBwcml2LT5pb19iYXNlICsgX1JFRyhWRU5DX1VQU0FNUExFX0NUUkwyKSk7 CisJLyoKKwkgKiBDVFJMMCwgQ1RSTDEgYW5kIENUUkwyOgorCSAqIEZpbHRlcjA6IGlucHV0IGRh dGEgc2FtcGxlIGV2ZXJ5IDIgY2xva3MKKwkgKiBGaWx0ZXIxOiBmaWx0ZXJpbmcgYW5kIHVwc2Ft cGxlIGVuYWJsZQorCSAqLworCXJlZyA9IFZFTkNfVVBTQU1QTEVfQ1RSTF9GMF8yX0NMS19SQVRJ TyB8IFZFTkNfVVBTQU1QTEVfQ1RSTF9GMV9FTiB8CisJCVZFTkNfVVBTQU1QTEVfQ1RSTF9GMV9V UFNBTVBMRV9FTjsKKworCS8qCisJICogVXBzYW1wbGUgQ1RSTDA6CisJICogSW50ZXJsYWNlIEhp Z2ggQmFuZHdpZHRoIEx1bWEKKwkgKi8KKwl3cml0ZWxfcmVsYXhlZChWRU5DX1VQU0FNUExFX0NU UkxfSU5URVJMQUNFX0hJR0hfTFVNQSB8IHJlZywKKwkJICAgICAgIHByaXYtPmlvX2Jhc2UgKyBf UkVHKFZFTkNfVVBTQU1QTEVfQ1RSTDApKTsKKworCS8qCisJICogVXBzYW1wbGUgQ1RSTDE6CisJ ICogSW50ZXJsYWNlIFBiCisJICovCisJd3JpdGVsX3JlbGF4ZWQoVkVOQ19VUFNBTVBMRV9DVFJM X0lOVEVSTEFDRV9QQiB8IHJlZywKKwkJICAgICAgIHByaXYtPmlvX2Jhc2UgKyBfUkVHKFZFTkNf VVBTQU1QTEVfQ1RSTDEpKTsKKworCS8qCisJICogVXBzYW1wbGUgQ1RSTDI6CisJICogSW50ZXJs YWNlIFIKKwkgKi8KKwl3cml0ZWxfcmVsYXhlZChWRU5DX1VQU0FNUExFX0NUUkxfSU5URVJMQUNF X1BSIHwgcmVnLAorCQkgICAgICAgcHJpdi0+aW9fYmFzZSArIF9SRUcoVkVOQ19VUFNBTVBMRV9D VFJMMikpOwogCiAJLyogU2VsZWN0IEludGVybGFjZSBZIERBQ3MgKi8KIAl3cml0ZWxfcmVsYXhl ZCgwLCBwcml2LT5pb19iYXNlICsgX1JFRyhWRU5DX1ZEQUNfREFDU0VMMCkpOwpAQCAtMTYxMSwx NCArMTY5OSwxNiBAQCB2b2lkIG1lc29uX3ZlbmNpX2N2YnNfbW9kZV9zZXQoc3RydWN0IG1lc29u X2RybSAqcHJpdiwKIAltZXNvbl92cHBfc2V0dXBfbXV4KHByaXYsIE1FU09OX1ZJVV9WUFBfTVVY X0VOQ0kpOwogCiAJLyogRW5hYmxlIEVOQ0kgRklGTyAqLwotCXdyaXRlbF9yZWxheGVkKDB4MjAw MCwgcHJpdi0+aW9fYmFzZSArIF9SRUcoVkVOQ19WREFDX0ZJRk9fQ1RSTCkpOworCXdyaXRlbF9y ZWxheGVkKFZFTkNfVkRBQ19GSUZPX0VOX0VOQ0lfRU5BQkxFLAorCQkgICAgICAgcHJpdi0+aW9f YmFzZSArIF9SRUcoVkVOQ19WREFDX0ZJRk9fQ1RSTCkpOwogCiAJLyogU2VsZWN0IEVOQ0kgREFD cyAwLCAxLCA0LCBhbmQgNSAqLwogCXdyaXRlbF9yZWxheGVkKDB4MTEsIHByaXYtPmlvX2Jhc2Ug KyBfUkVHKEVOQ0lfREFDU0VMXzApKTsKIAl3cml0ZWxfcmVsYXhlZCgweDExLCBwcml2LT5pb19i YXNlICsgX1JFRyhFTkNJX0RBQ1NFTF8xKSk7CiAKIAkvKiBJbnRlcmxhY2UgdmlkZW8gZW5hYmxl ICovCi0Jd3JpdGVsX3JlbGF4ZWQoMSwgcHJpdi0+aW9fYmFzZSArIF9SRUcoRU5DSV9WSURFT19F TikpOworCXdyaXRlbF9yZWxheGVkKEVOQ0lfVklERU9fRU5fRU5BQkxFLAorCQkgICAgICAgcHJp di0+aW9fYmFzZSArIF9SRUcoRU5DSV9WSURFT19FTikpOwogCiAJLyogQ29uZmlndXJlIFZpZGVv IFNhdHVyYXRpb24gLyBDb250cmFzdCAvIEJyaWdodG5lc3MgLyBIdWUgKi8KIAl3cml0ZWxfcmVs YXhlZChtb2RlLT52aWRlb19zYXR1cmF0aW9uLApAQCAtMTYzMSw3ICsxNzIxLDggQEAgdm9pZCBt ZXNvbl92ZW5jaV9jdmJzX21vZGVfc2V0KHN0cnVjdCBtZXNvbl9kcm0gKnByaXYsCiAJCQlwcml2 LT5pb19iYXNlICsgX1JFRyhFTkNJX1ZJREVPX0hVRSkpOwogCiAJLyogRW5hYmxlIERBQzAgRmls dGVyICovCi0Jd3JpdGVsX3JlbGF4ZWQoMHgxLCBwcml2LT5pb19iYXNlICsgX1JFRyhWRU5DX1ZE QUNfREFDMF9GSUxUX0NUUkwwKSk7CisJd3JpdGVsX3JlbGF4ZWQoVkVOQ19WREFDX0RBQzBfRklM VF9DVFJMMF9FTiwKKwkJICAgICAgIHByaXYtPmlvX2Jhc2UgKyBfUkVHKFZFTkNfVkRBQ19EQUMw X0ZJTFRfQ1RSTDApKTsKIAl3cml0ZWxfcmVsYXhlZCgweGZjNDgsIHByaXYtPmlvX2Jhc2UgKyBf UkVHKFZFTkNfVkRBQ19EQUMwX0ZJTFRfQ1RSTDEpKTsKIAogCS8qIDAgaW4gTWFjcm92aXNpb24g cmVnaXN0ZXIgMCAqLwpAQCAtMTY1Miw3ICsxNzQzLDggQEAgdW5zaWduZWQgaW50IG1lc29uX3Zl bmNpX2dldF9maWVsZChzdHJ1Y3QgbWVzb25fZHJtICpwcml2KQogCiB2b2lkIG1lc29uX3ZlbmNf ZW5hYmxlX3ZzeW5jKHN0cnVjdCBtZXNvbl9kcm0gKnByaXYpCiB7Ci0Jd3JpdGVsX3JlbGF4ZWQo MiwgcHJpdi0+aW9fYmFzZSArIF9SRUcoVkVOQ19JTlRDVFJMKSk7CisJd3JpdGVsX3JlbGF4ZWQo VkVOQ19JTlRDVFJMX0VOQ0lfTE5SU1RfSU5UX0VOLAorCQkgICAgICAgcHJpdi0+aW9fYmFzZSAr IF9SRUcoVkVOQ19JTlRDVFJMKSk7CiAJcmVnbWFwX3VwZGF0ZV9iaXRzKHByaXYtPmhoaSwgSEhJ X0dDTEtfTVBFRzIsIEJJVCgyNSksIEJJVCgyNSkpOwogfQogCkBAIC0xNjgwLDcgKzE3NzIsOCBA QCB2b2lkIG1lc29uX3ZlbmNfaW5pdChzdHJ1Y3QgbWVzb25fZHJtICpwcml2KQogCXJlZ21hcF93 cml0ZShwcml2LT5oaGksIEhISV9IRE1JX1BIWV9DTlRMMCwgMCk7CiAKIAkvKiBEaXNhYmxlIEhE TUkgKi8KLQl3cml0ZWxfYml0c19yZWxheGVkKDB4MywgMCwKKwl3cml0ZWxfYml0c19yZWxheGVk KFZQVV9IRE1JX0VOQ0lfREFUQV9UT19IRE1JIHwKKwkJCSAgICBWUFVfSERNSV9FTkNQX0RBVEFf VE9fSERNSSwgMCwKIAkJCSAgICBwcml2LT5pb19iYXNlICsgX1JFRyhWUFVfSERNSV9TRVRUSU5H KSk7CiAKIAkvKiBEaXNhYmxlIGFsbCBlbmNvZGVycyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL21lc29uL21lc29uX3ZlbmNfY3Zicy5jIGIvZHJpdmVycy9ncHUvZHJtL21lc29uL21l c29uX3ZlbmNfY3Zicy5jCmluZGV4IDYzMTNhNTE5ZjI1Ny4uN2VjYzZiYjZjOGY4IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25fdmVuY19jdmJzLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL21lc29uL21lc29uX3ZlbmNfY3Zicy5jCkBAIC0xNzIsNyArMTcyLDggQEAgc3Rh dGljIHZvaWQgbWVzb25fdmVuY19jdmJzX2VuY29kZXJfZW5hYmxlKHN0cnVjdCBkcm1fZW5jb2Rl ciAqZW5jb2RlcikKIAlzdHJ1Y3QgbWVzb25fZHJtICpwcml2ID0gbWVzb25fdmVuY19jdmJzLT5w cml2OwogCiAJLyogVkRBQzAgc291cmNlIGlzIG5vdCBmcm9tIEFUViAqLwotCXdyaXRlbF9iaXRz X3JlbGF4ZWQoQklUKDUpLCAwLCBwcml2LT5pb19iYXNlICsgX1JFRyhWRU5DX1ZEQUNfREFDU0VM MCkpOworCXdyaXRlbF9iaXRzX3JlbGF4ZWQoVkVOQ19WREFDX1NFTF9BVFZfRE1ELCAwLAorCQkJ ICAgIHByaXYtPmlvX2Jhc2UgKyBfUkVHKFZFTkNfVkRBQ19EQUNTRUwwKSk7CiAKIAlpZiAobWVz b25fdnB1X2lzX2NvbXBhdGlibGUocHJpdiwgImFtbG9naWMsbWVzb24tZ3hiYi12cHUiKSkgewog CQlyZWdtYXBfd3JpdGUocHJpdi0+aGhpLCBISElfVkRBQ19DTlRMMCwgMSk7Ci0tIAoyLjE3LjEK CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1h bWxvZ2ljIG1haWxpbmcgbGlzdApsaW51eC1hbWxvZ2ljQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0 cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hbWxvZ2ljCg== 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=-6.8 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 A6E99C43613 for ; Mon, 24 Jun 2019 14:50:55 +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 6B8CC2063F for ; Mon, 24 Jun 2019 14:50:55 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="anmejNC2"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=baylibre-com.20150623.gappssmtp.com header.i=@baylibre-com.20150623.gappssmtp.com header.b="Jwlce6dn" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6B8CC2063F Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:Reply-To:List-Subscribe:List-Help: List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-ID: References:Date:Subject:To:From:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To: List-Owner; bh=wiuJZmj58IrUbqhX2bOXmYiXQMg+OoPyAF/11pX/P3U=; b=anmejNC2qK9+k7 WOg+nAYPNSZUXngDSy9HeIy0zpaR++HnZEUepwKuVycc2ACbwvUx9D5sYoGYO5vB0xab5Oiiu22y/ 03lQa4ssgj2ScUZ4hXjWTPQ5hqA+Ji3omQYfpC7XTB4k/SJ2SXTPE5Wymr4hVjwKZVnhmyaW8aHFj 3rLYgqhc5tZYqnSLTCPXoJbH1PtHOjRZjTd23dsSoKiywVdIiUMBMq+JPpiM1zHEBzMJU5Mt2wn+v 8gsQcE2xCRhWyAsr8N563+/t8ezts2U1jGIa4c4vbajQeaXuOHoUUX0sLF5QYyzFIJwXXuPVrr7Fc g4Rv0FymEBxr+kzMNKqQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92 #3 (Red Hat Linux)) id 1hfQJ2-0002Vw-04; Mon, 24 Jun 2019 14:50:52 +0000 Received: from mail-wr1-x442.google.com ([2a00:1450:4864:20::442]) by bombadil.infradead.org with esmtps (Exim 4.92 #3 (Red Hat Linux)) id 1hfQHD-00089h-G7 for linux-arm-kernel@lists.infradead.org; Mon, 24 Jun 2019 14:49:05 +0000 Received: by mail-wr1-x442.google.com with SMTP id r16so14198199wrl.11 for ; Mon, 24 Jun 2019 07:48:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:references:reply-to:message-id:mime-version :content-transfer-encoding; bh=nW4tFcXbHBMTIg/w5S7RfuoRl87+LKBKlyLEwJ3UoKo=; b=Jwlce6dniDBaSP2Iht35Dow2GECXEZLf7FwLD6a+Q8ICDyHNK9orMLs27Tu0YoAGkI 6qPB+mlVtsEI5JdE+hBaxPSKoK6u+nMrQplViAY2fNBmpeGkAmQfqNdZ4IrvzmY054XN P63/GMRNCF1GDpoR72iPC452kClNoVMiD2JoUn/7Q904QPBXmmbmMPrmRj4zyZfR0GoT 03eXJBNrApmLzw1oSIdN+PeCdoXge1+yeLLeDEgHkYvvIMGOn20lN6lVGibBfK7Eg4yc UCdcJUKvFH76nOfk8+dfbVFpVBhR11NUCraNJoMJQah5FsGro40h7J7cjoa3H1/8H983 wpCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:references:reply-to :message-id:mime-version:content-transfer-encoding; bh=nW4tFcXbHBMTIg/w5S7RfuoRl87+LKBKlyLEwJ3UoKo=; b=Jc2wTclC+Gko9wbk6aEFDgEQNSrnDkrwUiktZwOOjoQZJ9kKcqaklio0BKIBpnza9H 3sHr2TvwIRLeLTkWZyXEk8sFZ7jcEuSJizSjVkuB+hfylOGndHQb76/gDgZGgGVkURTN D39+5jWs/M+u/GBZJGsDdkRYyoQg4HDtuDufFUvfO2APViDgjo/mOI9CPsksQl0w3DIn icJYHWagF701luburJKTekPTc4eM1DvOv8STl9SRGJ2rz3pOQ/SU70tRVHZZXqJlL/47 88k7jy9T0zxbyA+NhTPAWkTqEI5ErEznn3S7M8r89Y5t6M8XM78/GOaR9RX5h1zkdMDU iS1A== X-Gm-Message-State: APjAAAXGLNUjXYkPU6Q/SSqlsG7DpkqJn9xYO+n3CZosY2AS3Wyy/z7o xuUdf+NKC6U7eoaX+/yWVRa+75Ue9f4= X-Google-Smtp-Source: APXvYqw+YdXm1v/OThR+zY2Crq27IN7DFhjrgL9agzw9RhMlL/4pCnTVQeR7vjqzydwkYIJBLrk2Rw== X-Received: by 2002:adf:deca:: with SMTP id i10mr282323wrn.313.1561387737765; Mon, 24 Jun 2019 07:48:57 -0700 (PDT) Received: from localhost (lmontsouris-657-1-212-31.w90-63.abo.wanadoo.fr. [90.63.244.31]) by smtp.gmail.com with ESMTPSA id 203sm8274429wmc.30.2019.06.24.07.48.57 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 24 Jun 2019 07:48:57 -0700 (PDT) From: Julien Masson To: Neil Armstrong Subject: [PATCH 6/9] drm: meson: venc: use proper macros instead of magic constants Date: Mon, 24 Jun 2019 16:48:50 +0200 References: <86zhm782g5.fsf@baylibre.com> Message-ID: <86r27j82ef.fsf@baylibre.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190624_074859_792921_E62D3EC4 X-CRM114-Status: GOOD ( 12.81 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: 86zhm782g5.fsf@baylibre.com Cc: Julien Masson , linux-amlogic@lists.infradead.org, dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org VGhpcyBwYXRjaCBhZGQgbmV3IG1hY3JvcyB3aGljaCBhcmUgdXNlZCB0byBzZXQgdGhlIGZvbGxv d2luZwpyZWdpc3RlcnM6Ci0gRU5DSV9DRklMVF9DVFJMCi0gRU5DSV9DRklMVF9DVFJMMgotIEVO Q0lfTUFDVl9NQVhfQU1QCi0gRU5DSV9WSURFT19NT0RFX0FEVgotIEVOQ0lfVkZJRk8yVkRfQ1RM Ci0gRU5DSV9WSURFT19FTgotIEVOQ1BfVklERU9fTU9ERQotIFZQVV9IRE1JX1NFVFRJTkcKLSBW RU5DX1VQU0FNUExFX0NUUkwwCi0gVkVOQ19VUFNBTVBMRV9DVFJMMQotIFZFTkNfVVBTQU1QTEVf Q1RSTDIKLSBWRU5DX1ZEQUNfRklGT19DVFJMCi0gVkVOQ19WREFDX0RBQzBfRklMVF9DVFJMMAot IFZFTkNfSU5UQ1RSTAoKU2lnbmVkLW9mZi1ieTogSnVsaWVuIE1hc3NvbiA8am1hc3NvbkBiYXls aWJyZS5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX3JlZ2lzdGVycy5oIHwg IDUxICsrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25fdmVuYy5jICAgICAgfCAx NTUgKysrKysrKysrKysrKysrKysrKy0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25f dmVuY19jdmJzLmMgfCAgIDMgKy0KIDMgZmlsZXMgY2hhbmdlZCwgMTc3IGluc2VydGlvbnMoKyks IDMyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZXNvbi9tZXNv bl9yZWdpc3RlcnMuaCBiL2RyaXZlcnMvZ3B1L2RybS9tZXNvbi9tZXNvbl9yZWdpc3RlcnMuaApp bmRleCA3YTUyYWFjN2UyOGEuLjUzN2E3Nzk0OTJiZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL21lc29uL21lc29uX3JlZ2lzdGVycy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZXNvbi9t ZXNvbl9yZWdpc3RlcnMuaApAQCAtNzQyLDYgKzc0MiwyNSBAQAogI2RlZmluZSBWRU5DX1VQU0FN UExFX0NUUkwwIDB4MWI2NAogI2RlZmluZSBWRU5DX1VQU0FNUExFX0NUUkwxIDB4MWI2NQogI2Rl ZmluZSBWRU5DX1VQU0FNUExFX0NUUkwyIDB4MWI2NgorI2RlZmluZQkJVkVOQ19VUFNBTVBMRV9D VFJMX0YwXzJfQ0xLX1JBVElPICAgICAgICBCSVQoMCkKKyNkZWZpbmUJCVZFTkNfVVBTQU1QTEVf Q1RSTF9GMV9FTiAgICAgICAgICAgICAgICAgQklUKDUpCisjZGVmaW5lCQlWRU5DX1VQU0FNUExF X0NUUkxfRjFfVVBTQU1QTEVfRU4gICAgICAgIEJJVCg2KQorI2RlZmluZQkJVkVOQ19VUFNBTVBM RV9DVFJMX0lOVEVSTEFDRV9ISUdIX0xVTUEgICAoMHgwIDw8IDEyKQorI2RlZmluZQkJVkVOQ19V UFNBTVBMRV9DVFJMX0NWQlMgICAgICAgICAgICAgICAgICAoMHgxIDw8IDEyKQorI2RlZmluZQkJ VkVOQ19VUFNBTVBMRV9DVFJMX1NfVklERU9fTFVNQSAgICAgICAgICAoMHgyIDw8IDEyKQorI2Rl ZmluZQkJVkVOQ19VUFNBTVBMRV9DVFJMX1NfVklERU9fQ0hST01BICAgICAgICAoMHgzIDw8IDEy KQorI2RlZmluZQkJVkVOQ19VUFNBTVBMRV9DVFJMX0lOVEVSTEFDRV9QQiAgICAgICAgICAoMHg0 IDw8IDEyKQorI2RlZmluZQkJVkVOQ19VUFNBTVBMRV9DVFJMX0lOVEVSTEFDRV9QUiAgICAgICAg ICAoMHg1IDw8IDEyKQorI2RlZmluZQkJVkVOQ19VUFNBTVBMRV9DVFJMX0lOVEVSTEFDRV9SICAg ICAgICAgICAoMHg2IDw8IDEyKQorI2RlZmluZQkJVkVOQ19VUFNBTVBMRV9DVFJMX0lOVEVSTEFD RV9HICAgICAgICAgICAoMHg3IDw8IDEyKQorI2RlZmluZQkJVkVOQ19VUFNBTVBMRV9DVFJMX0lO VEVSTEFDRV9CICAgICAgICAgICAoMHg4IDw8IDEyKQorI2RlZmluZQkJVkVOQ19VUFNBTVBMRV9D VFJMX1BST0dSRVNTSVZFX1kgICAgICAgICAoMHg5IDw8IDEyKQorI2RlZmluZQkJVkVOQ19VUFNB TVBMRV9DVFJMX1BST0dSRVNTSVZFX1BCICAgICAgICAoMHhhIDw8IDEyKQorI2RlZmluZQkJVkVO Q19VUFNBTVBMRV9DVFJMX1BST0dSRVNTSVZFX1BSICAgICAgICAoMHhiIDw8IDEyKQorI2RlZmlu ZQkJVkVOQ19VUFNBTVBMRV9DVFJMX1BST0dSRVNTSVZFX1IgICAgICAgICAoMHhjIDw8IDEyKQor I2RlZmluZQkJVkVOQ19VUFNBTVBMRV9DVFJMX1BST0dSRVNTSVZFX0cgICAgICAgICAoMHhkIDw8 IDEyKQorI2RlZmluZQkJVkVOQ19VUFNBTVBMRV9DVFJMX1BST0dSRVNTSVZFX0IgICAgICAgICAo MHhlIDw8IDEyKQorI2RlZmluZQkJVkVOQ19VUFNBTVBMRV9DVFJMX1ZEQUNfVEVTVF9WQUxVRSAg ICAgICAoMHhmIDw8IDEyKQogI2RlZmluZSBUQ09OX0lOVkVSVF9DVEwgMHgxYjY3CiAjZGVmaW5l IFZFTkNfVklERU9fUFJPR19NT0RFIDB4MWI2OAogI2RlZmluZSBWRU5DX0VOQ0lfTElORSAweDFi NjkKQEAgLTc1MCw2ICs3NjksNyBAQAogI2RlZmluZSBWRU5DX0VOQ1BfUElYRUwgMHgxYjZjCiAj ZGVmaW5lIFZFTkNfU1RBVEEgMHgxYjZkCiAjZGVmaW5lIFZFTkNfSU5UQ1RSTCAweDFiNmUKKyNk ZWZpbmUJCVZFTkNfSU5UQ1RSTF9FTkNJX0xOUlNUX0lOVF9FTiAgQklUKDEpCiAjZGVmaW5lIFZF TkNfSU5URkxBRyAweDFiNmYKICNkZWZpbmUgVkVOQ19WSURFT19UU1RfRU4gMHgxYjcwCiAjZGVm aW5lIFZFTkNfVklERU9fVFNUX01EU0VMIDB4MWI3MQpAQCAtNzYwLDYgKzc4MCw3IEBACiAjZGVm aW5lIFZFTkNfVklERU9fVFNUX0NMUkJBUl9XSURUSCAweDFiNzYKICNkZWZpbmUgVkVOQ19WSURF T19UU1RfVkRDTlRfU1RTRVQgMHgxYjc3CiAjZGVmaW5lIFZFTkNfVkRBQ19EQUNTRUwwIDB4MWI3 OAorI2RlZmluZQkJVkVOQ19WREFDX1NFTF9BVFZfRE1EICAgICAgICAgICBCSVQoNSkKICNkZWZp bmUgVkVOQ19WREFDX0RBQ1NFTDEgMHgxYjc5CiAjZGVmaW5lIFZFTkNfVkRBQ19EQUNTRUwyIDB4 MWI3YQogI2RlZmluZSBWRU5DX1ZEQUNfREFDU0VMMyAweDFiN2IKQEAgLTc4MCw2ICs4MDEsNyBA QAogI2RlZmluZSBWRU5DX1ZEQUNfREFDNV9HQUlOQ1RSTCAweDFiZmEKICNkZWZpbmUgVkVOQ19W REFDX0RBQzVfT0ZGU0VUIDB4MWJmYgogI2RlZmluZSBWRU5DX1ZEQUNfRklGT19DVFJMIDB4MWJm YworI2RlZmluZQkJVkVOQ19WREFDX0ZJRk9fRU5fRU5DSV9FTkFCTEUgICBCSVQoMTMpCiAjZGVm aW5lIEVOQ0xfVENPTl9JTlZFUlRfQ1RMIDB4MWJmZAogI2RlZmluZSBFTkNQX1ZJREVPX0VOIDB4 MWI4MAogI2RlZmluZSBFTkNQX1ZJREVPX1NZTkNfTU9ERSAweDFiODEKQEAgLTc5NSw2ICs4MTcs NyBAQAogI2RlZmluZSBFTkNQX1ZJREVPX1NZTkNfT0ZGU1QgMHgxYjhiCiAjZGVmaW5lIEVOQ1Bf VklERU9fTUFDVl9PRkZTVCAweDFiOGMKICNkZWZpbmUgRU5DUF9WSURFT19NT0RFIDB4MWI4ZAor I2RlZmluZQkJRU5DUF9WSURFT19NT0RFX0RFX1ZfSElHSCAgICAgICBCSVQoMTQpCiAjZGVmaW5l IEVOQ1BfVklERU9fTU9ERV9BRFYgMHgxYjhlCiAjZGVmaW5lIEVOQ1BfREJHX1BYX1JTVCAweDFi OTAKICNkZWZpbmUgRU5DUF9EQkdfTE5fUlNUIDB4MWI5MQpAQCAtODczLDYgKzg5NiwxMSBAQAog I2RlZmluZSBDNjU2X0ZTX0xORUQgMHgxYmU3CiAjZGVmaW5lIEVOQ0lfVklERU9fTU9ERSAweDFi MDAKICNkZWZpbmUgRU5DSV9WSURFT19NT0RFX0FEViAweDFiMDEKKyNkZWZpbmUJCUVOQ0lfVklE RU9fTU9ERV9BRFZfRE1YTUQodmFsKSAgICAgICAgICAodmFsICYgMHgzKQorI2RlZmluZQkJRU5D SV9WSURFT19NT0RFX0FEVl9WQklDVExfTElORV8xN18yMiAgIEJJVCgyKQorI2RlZmluZQkJRU5D SV9WSURFT19NT0RFX0FEVl9ZQldfTUVESVVNICAgICAgICAgICgwIDw8IDQpCisjZGVmaW5lCQlF TkNJX1ZJREVPX01PREVfQURWX1lCV19MT1cgICAgICAgICAgICAgKDB4MSA8PCA0KQorI2RlZmlu ZQkJRU5DSV9WSURFT19NT0RFX0FEVl9ZQldfSElHSCAgICAgICAgICAgICgweDIgPDwgNCkKICNk ZWZpbmUgRU5DSV9WSURFT19GU0NfQURKIDB4MWIwMgogI2RlZmluZSBFTkNJX1ZJREVPX0JSSUdI VCAweDFiMDMKICNkZWZpbmUgRU5DSV9WSURFT19DT05UIDB4MWIwNApAQCAtOTQzLDEzICs5NzEs MTcgQEAKICNkZWZpbmUgRU5DSV9EQkdfTUFYUFggMHgxYjRjCiAjZGVmaW5lIEVOQ0lfREJHX01B WExOIDB4MWI0ZAogI2RlZmluZSBFTkNJX01BQ1ZfTUFYX0FNUCAweDFiNTAKKyNkZWZpbmUJCUVO Q0lfTUFDVl9NQVhfQU1QX0VOQUJMRV9DSEFOR0UgQklUKDE1KQorI2RlZmluZQkJRU5DSV9NQUNW X01BWF9BTVBfVkFMKHZhbCkgICAgICAodmFsICYgMHg4M2ZmKQogI2RlZmluZSBFTkNJX01BQ1Zf UFVMU0VfTE8gMHgxYjUxCiAjZGVmaW5lIEVOQ0lfTUFDVl9QVUxTRV9ISSAweDFiNTIKICNkZWZp bmUgRU5DSV9NQUNWX0JLUF9NQVggMHgxYjUzCiAjZGVmaW5lIEVOQ0lfQ0ZJTFRfQ1RSTCAweDFi NTQKKyNkZWZpbmUJCUVOQ0lfQ0ZJTFRfQ01QVF9TRUxfSElHSCAgICAgICAgQklUKDEpCiAjZGVm aW5lIEVOQ0lfQ0ZJTFQ3IDB4MWI1NQogI2RlZmluZSBFTkNJX1lDX0RFTEFZIDB4MWI1NgogI2Rl ZmluZSBFTkNJX1ZJREVPX0VOIDB4MWI1NworI2RlZmluZQkJRU5DSV9WSURFT19FTl9FTkFCTEUg ICAgICAgICAgICBCSVQoMCkKICNkZWZpbmUgRU5DSV9EVklfSFNPX0JFR0lOIDB4MWMwMAogI2Rl ZmluZSBFTkNJX0RWSV9IU09fRU5EIDB4MWMwMQogI2RlZmluZSBFTkNJX0RWSV9WU09fQkxJTkVf RVZOIDB4MWMwMgpAQCAtOTYxLDYgKzk5MywxMCBAQAogI2RlZmluZSBFTkNJX0RWSV9WU09fRU5E X0VWTiAweDFjMDgKICNkZWZpbmUgRU5DSV9EVklfVlNPX0VORF9PREQgMHgxYzA5CiAjZGVmaW5l IEVOQ0lfQ0ZJTFRfQ1RSTDIgMHgxYzBhCisjZGVmaW5lCQlFTkNJX0NGSUxUX0NNUFRfQ1JfRExZ KGRlbGF5KSAgIChkZWxheSAmIDB4ZikKKyNkZWZpbmUJCUVOQ0lfQ0ZJTFRfQ01QVF9DQl9ETFko ZGVsYXkpICAgKChkZWxheSAmIDB4ZikgPDwgNCkKKyNkZWZpbmUJCUVOQ0lfQ0ZJTFRfQ1ZCU19D Ul9ETFkoZGVsYXkpICAgKChkZWxheSAmIDB4ZikgPDwgOCkKKyNkZWZpbmUJCUVOQ0lfQ0ZJTFRf Q1ZCU19DQl9ETFkoZGVsYXkpICAgKChkZWxheSAmIDB4ZikgPDwgMTIpCiAjZGVmaW5lIEVOQ0lf REFDU0VMXzAgMHgxYzBiCiAjZGVmaW5lIEVOQ0lfREFDU0VMXzEgMHgxYzBjCiAjZGVmaW5lIEVO Q1BfREFDU0VMXzAgMHgxYzBkCkBAIC05NzUsNiArMTAxMSw4IEBACiAjZGVmaW5lIEVOQ0lfVFNU X0NMUkJBUl9XSURUSCAweDFjMTYKICNkZWZpbmUgRU5DSV9UU1RfVkRDTlRfU1RTRVQgMHgxYzE3 CiAjZGVmaW5lIEVOQ0lfVkZJRk8yVkRfQ1RMIDB4MWMxOAorI2RlZmluZQkJRU5DSV9WRklGTzJW RF9DVExfRU5BQkxFICAgICAgICBCSVQoMCkKKyNkZWZpbmUJCUVOQ0lfVkZJRk8yVkRfQ1RMX1ZE X1NFTCh2YWwpICAgKCh2YWwgJiAweGZmKSA8PCA4KQogI2RlZmluZSBFTkNJX1ZGSUZPMlZEX1BJ WEVMX1NUQVJUIDB4MWMxOQogI2RlZmluZSBFTkNJX1ZGSUZPMlZEX1BJWEVMX0VORCAweDFjMWEK ICNkZWZpbmUgRU5DSV9WRklGTzJWRF9MSU5FX1RPUF9TVEFSVCAweDFjMWIKQEAgLTEwMzcsNiAr MTA3NSw3IEBACiAjZGVmaW5lIFZFTkNfVkRBQ19EQUM1X0ZJTFRfQ1RSTDAgMHgxYzU2CiAjZGVm aW5lIFZFTkNfVkRBQ19EQUM1X0ZJTFRfQ1RSTDEgMHgxYzU3CiAjZGVmaW5lIFZFTkNfVkRBQ19E QUMwX0ZJTFRfQ1RSTDAgMHgxYzU4CisjZGVmaW5lCQlWRU5DX1ZEQUNfREFDMF9GSUxUX0NUUkww X0VOICAgIEJJVCgwKQogI2RlZmluZSBWRU5DX1ZEQUNfREFDMF9GSUxUX0NUUkwxIDB4MWM1OQog I2RlZmluZSBWRU5DX1ZEQUNfREFDMV9GSUxUX0NUUkwwIDB4MWM1YQogI2RlZmluZSBWRU5DX1ZE QUNfREFDMV9GSUxUX0NUUkwxIDB4MWM1YgpAQCAtMTQ0Miw2ICsxNDgxLDE4IEBACiAjZGVmaW5l CQlWSVUyX1NFTF9WRU5DX0VOQ1AJKDIgPDwgMikKICNkZWZpbmUJCVZJVTJfU0VMX1ZFTkNfRU5D VAkoMyA8PCAyKQogI2RlZmluZSBWUFVfSERNSV9TRVRUSU5HIDB4MjcxYgorI2RlZmluZQkJVlBV X0hETUlfRU5DSV9EQVRBX1RPX0hETUkgICAgICBCSVQoMCkKKyNkZWZpbmUJCVZQVV9IRE1JX0VO Q1BfREFUQV9UT19IRE1JICAgICAgQklUKDEpCisjZGVmaW5lCQlWUFVfSERNSV9JTlZfSFNZTkMg ICAgICAgICAgICAgIEJJVCgyKQorI2RlZmluZQkJVlBVX0hETUlfSU5WX1ZTWU5DICAgICAgICAg ICAgICBCSVQoMykKKyNkZWZpbmUJCVZQVV9IRE1JX09VVFBVVF9DUllDQiAgICAgICAgICAgKDAg PDwgNSkKKyNkZWZpbmUJCVZQVV9IRE1JX09VVFBVVF9ZQ0JDUiAgICAgICAgICAgKDEgPDwgNSkK KyNkZWZpbmUJCVZQVV9IRE1JX09VVFBVVF9ZQ1JDQiAgICAgICAgICAgKDIgPDwgNSkKKyNkZWZp bmUJCVZQVV9IRE1JX09VVFBVVF9DQkNSWSAgICAgICAgICAgKDMgPDwgNSkKKyNkZWZpbmUJCVZQ VV9IRE1JX09VVFBVVF9DQllDUiAgICAgICAgICAgKDQgPDwgNSkKKyNkZWZpbmUJCVZQVV9IRE1J X09VVFBVVF9DUkNCWSAgICAgICAgICAgKDUgPDwgNSkKKyNkZWZpbmUJCVZQVV9IRE1JX1dSX1JB VEUocmF0ZSkgICAgICAgICAgKCgocmF0ZSAmIDB4MWYpIC0gMSkgPDwgOCkKKyNkZWZpbmUJCVZQ VV9IRE1JX1JEX1JBVEUocmF0ZSkgICAgICAgICAgKCgocmF0ZSAmIDB4MWYpIC0gMSkgPDwgMTIp CiAjZGVmaW5lIEVOQ0lfSU5GT19SRUFEIDB4MjcxYwogI2RlZmluZSBFTkNQX0lORk9fUkVBRCAw eDI3MWQKICNkZWZpbmUgRU5DVF9JTkZPX1JFQUQgMHgyNzFlCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vbWVzb24vbWVzb25fdmVuYy5jIGIvZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29u X3ZlbmMuYwppbmRleCA3YjdhMGQ4ZDczN2MuLjkxOGRmMDJkMmFlZiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL21lc29uL21lc29uX3ZlbmMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVz b24vbWVzb25fdmVuYy5jCkBAIC05NzYsNiArOTc2LDcgQEAgdm9pZCBtZXNvbl92ZW5jX2hkbWlf bW9kZV9zZXQoc3RydWN0IG1lc29uX2RybSAqcHJpdiwgaW50IHZpYywKIAl1bnNpZ25lZCBpbnQg ZW9mX2xpbmVzOwogCXVuc2lnbmVkIGludCBzb2ZfbGluZXM7CiAJdW5zaWduZWQgaW50IHZzeW5j X2xpbmVzOworCXUzMiByZWc7CiAKIAkvKiBVc2UgVkVOQ0kgZm9yIDQ4MGkgYW5kIDU3NmkgYW5k IGRvdWJsZSBIRE1JIHBpeGVscyAqLwogCWlmIChtb2RlLT5mbGFncyAmIERSTV9NT0RFX0ZMQUdf REJMQ0xLKSB7CkBAIC0xMDQ4LDggKzEwNDksMTEgQEAgdm9pZCBtZXNvbl92ZW5jX2hkbWlfbW9k ZV9zZXQoc3RydWN0IG1lc29uX2RybSAqcHJpdiwgaW50IHZpYywKIAkJdW5zaWduZWQgaW50IGxp bmVzX2YxOwogCiAJCS8qIENWQlMgRmlsdGVyIHNldHRpbmdzICovCi0JCXdyaXRlbF9yZWxheGVk KDB4MTIsIHByaXYtPmlvX2Jhc2UgKyBfUkVHKEVOQ0lfQ0ZJTFRfQ1RSTCkpOwotCQl3cml0ZWxf cmVsYXhlZCgweDEyLCBwcml2LT5pb19iYXNlICsgX1JFRyhFTkNJX0NGSUxUX0NUUkwyKSk7CisJ CXdyaXRlbF9yZWxheGVkKEVOQ0lfQ0ZJTFRfQ01QVF9TRUxfSElHSCB8IDB4MTAsCisJCQkgICAg ICAgcHJpdi0+aW9fYmFzZSArIF9SRUcoRU5DSV9DRklMVF9DVFJMKSk7CisJCXdyaXRlbF9yZWxh eGVkKEVOQ0lfQ0ZJTFRfQ01QVF9DUl9ETFkoMikgfAorCQkJICAgICAgIEVOQ0lfQ0ZJTFRfQ01Q VF9DQl9ETFkoMSksCisJCQkgICAgICAgcHJpdi0+aW9fYmFzZSArIF9SRUcoRU5DSV9DRklMVF9D VFJMMikpOwogCiAJCS8qIERpZ2l0YWwgVmlkZW8gU2VsZWN0IDogSW50ZXJsYWNlLCBjbGsyNyBj bGssIGV4dGVybmFsICovCiAJCXdyaXRlbF9yZWxheGVkKDAsIHByaXYtPmlvX2Jhc2UgKyBfUkVH KFZFTkNfRFZJX1NFVFRJTkcpKTsKQEAgLTEwNzEsOCArMTA3NSw5IEBAIHZvaWQgbWVzb25fdmVu Y19oZG1pX21vZGVfc2V0KHN0cnVjdCBtZXNvbl9kcm0gKnByaXYsIGludCB2aWMsCiAJCQkJcHJp di0+aW9fYmFzZSArIF9SRUcoRU5DSV9TWU5DX1ZTT19PRERMTikpOwogCiAJCS8qIE1hY3Jvdmlz aW9uIG1heCBhbXBsaXR1ZGUgY2hhbmdlICovCi0JCXdyaXRlbF9yZWxheGVkKHZtb2RlLT5lbmNp Lm1hY3ZfbWF4X2FtcCwKLQkJCQlwcml2LT5pb19iYXNlICsgX1JFRyhFTkNJX01BQ1ZfTUFYX0FN UCkpOworCQl3cml0ZWxfcmVsYXhlZChFTkNJX01BQ1ZfTUFYX0FNUF9FTkFCTEVfQ0hBTkdFIHwK KwkJCSAgICAgICBFTkNJX01BQ1ZfTUFYX0FNUF9WQUwodm1vZGUtPmVuY2kubWFjdl9tYXhfYW1w KSwKKwkJCSAgICAgICBwcml2LT5pb19iYXNlICsgX1JFRyhFTkNJX01BQ1ZfTUFYX0FNUCkpOwog CiAJCS8qIFZpZGVvIG1vZGUgKi8KIAkJd3JpdGVsX3JlbGF4ZWQodm1vZGUtPmVuY2kudmlkZW9f cHJvZ19tb2RlLApAQCAtMTA4OCw3ICsxMDkzLDEwIEBAIHZvaWQgbWVzb25fdmVuY19oZG1pX21v ZGVfc2V0KHN0cnVjdCBtZXNvbl9kcm0gKnByaXYsIGludCB2aWMsCiAJCSAqIEJ5cGFzcyBsdW1h IGxvdyBwYXNzIGZpbHRlcgogCQkgKiBObyBtYWNyb3Zpc2lvbiBvbiBDU1lOQwogCQkgKi8KLQkJ d3JpdGVsX3JlbGF4ZWQoMHgyNiwgcHJpdi0+aW9fYmFzZSArIF9SRUcoRU5DSV9WSURFT19NT0RF X0FEVikpOworCQl3cml0ZWxfcmVsYXhlZChFTkNJX1ZJREVPX01PREVfQURWX0RNWE1EKDIpIHwK KwkJCSAgICAgICBFTkNJX1ZJREVPX01PREVfQURWX1ZCSUNUTF9MSU5FXzE3XzIyIHwKKwkJCSAg ICAgICBFTkNJX1ZJREVPX01PREVfQURWX1lCV19ISUdILAorCQkJICAgICAgIHByaXYtPmlvX2Jh c2UgKyBfUkVHKEVOQ0lfVklERU9fTU9ERV9BRFYpKTsKIAogCQl3cml0ZWwodm1vZGUtPmVuY2ku c2NoX2FkanVzdCwKIAkJCQlwcml2LT5pb19iYXNlICsgX1JFRyhFTkNJX1ZJREVPX1NDSCkpOwpA QCAtMTEwNCw4ICsxMTEyLDE3IEBAIHZvaWQgbWVzb25fdmVuY19oZG1pX21vZGVfc2V0KHN0cnVj dCBtZXNvbl9kcm0gKnByaXYsIGludCB2aWMsCiAJCS8qIFVOcmVzZXQgSW50ZXJsYWNlZCBUViBF bmNvZGVyICovCiAJCXdyaXRlbF9yZWxheGVkKDAsIHByaXYtPmlvX2Jhc2UgKyBfUkVHKEVOQ0lf REJHX1BYX1JTVCkpOwogCi0JCS8qIEVuYWJsZSBWZmlmbzJ2ZCwgWV9DYl9ZX0NyIHNlbGVjdCAq LwotCQl3cml0ZWxfcmVsYXhlZCgweDRlMDEsIHByaXYtPmlvX2Jhc2UgKyBfUkVHKEVOQ0lfVkZJ Rk8yVkRfQ1RMKSk7CisJCS8qCisJCSAqIEVuYWJsZSBWZmlmbzJ2ZCBhbmQgc2V0IFlfQ2JfWV9D cjoKKwkJICogQ29ycmVzcG9uZGluZyB2YWx1ZToKKwkJICogWSAgPT4gMDAgb3IgMTAKKwkJICog Q2IgPT4gMDEKKwkJICogQ3IgPT4gMTEKKwkJICogRXg6IDB4NGUgPT4gMDEwMDExMTAgd291bGQg bWVhbiBDYi9ZL0NyL1kKKwkJICovCisJCXdyaXRlbF9yZWxheGVkKEVOQ0lfVkZJRk8yVkRfQ1RM X0VOQUJMRSB8CisJCQkgICAgICAgRU5DSV9WRklGTzJWRF9DVExfVkRfU0VMKDB4NGUpLAorCQkJ ICAgICAgIHByaXYtPmlvX2Jhc2UgKyBfUkVHKEVOQ0lfVkZJRk8yVkRfQ1RMKSk7CiAKIAkJLyog VGltaW5ncyAqLwogCQl3cml0ZWxfcmVsYXhlZCh2bW9kZS0+ZW5jaS5waXhlbF9zdGFydCwKQEAg LTExMjcsNyArMTE0NCw4IEBAIHZvaWQgbWVzb25fdmVuY19oZG1pX21vZGVfc2V0KHN0cnVjdCBt ZXNvbl9kcm0gKnByaXYsIGludCB2aWMsCiAJCW1lc29uX3ZwcF9zZXR1cF9tdXgocHJpdiwgTUVT T05fVklVX1ZQUF9NVVhfRU5DSSk7CiAKIAkJLyogSW50ZXJsYWNlIHZpZGVvIGVuYWJsZSAqLwot CQl3cml0ZWxfcmVsYXhlZCgxLCBwcml2LT5pb19iYXNlICsgX1JFRyhFTkNJX1ZJREVPX0VOKSk7 CisJCXdyaXRlbF9yZWxheGVkKEVOQ0lfVklERU9fRU5fRU5BQkxFLAorCQkJICAgICAgIHByaXYt PmlvX2Jhc2UgKyBfUkVHKEVOQ0lfVklERU9fRU4pKTsKIAogCQlsaW5lc19mMCA9IG1vZGUtPnZ0 b3RhbCA+PiAxOwogCQlsaW5lc19mMSA9IGxpbmVzX2YwICsgMTsKQEAgLTEzNzQsNyArMTM5Miw4 IEBAIHZvaWQgbWVzb25fdmVuY19oZG1pX21vZGVfc2V0KHN0cnVjdCBtZXNvbl9kcm0gKnByaXYs IGludCB2aWMsCiAJCXdyaXRlbF9yZWxheGVkKDEsIHByaXYtPmlvX2Jhc2UgKyBfUkVHKEVOQ1Bf VklERU9fRU4pKTsKIAogCQkvKiBTZXQgREUgc2lnbmFs4oCZcyBwb2xhcml0eSBpcyBhY3RpdmUg aGlnaCAqLwotCQl3cml0ZWxfYml0c19yZWxheGVkKEJJVCgxNCksIEJJVCgxNCksCisJCXdyaXRl bF9iaXRzX3JlbGF4ZWQoRU5DUF9WSURFT19NT0RFX0RFX1ZfSElHSCwKKwkJCQkgICAgRU5DUF9W SURFT19NT0RFX0RFX1ZfSElHSCwKIAkJCQkgICAgcHJpdi0+aW9fYmFzZSArIF9SRUcoRU5DUF9W SURFT19NT0RFKSk7CiAKIAkJLyogUHJvZ3JhbSBERSB0aW1pbmcgKi8KQEAgLTE0OTMsMTMgKzE1 MTIsMzkgQEAgdm9pZCBtZXNvbl92ZW5jX2hkbWlfbW9kZV9zZXQoc3RydWN0IG1lc29uX2RybSAq cHJpdiwgaW50IHZpYywKIAkJbWVzb25fdnBwX3NldHVwX211eChwcml2LCBNRVNPTl9WSVVfVlBQ X01VWF9FTkNQKTsKIAl9CiAKLQl3cml0ZWxfcmVsYXhlZCgodXNlX2VuY2kgPyAxIDogMikgfAot CQkgICAgICAgKG1vZGUtPmZsYWdzICYgRFJNX01PREVfRkxBR19QSFNZTkMgPyAxIDw8IDIgOiAw KSB8Ci0JCSAgICAgICAobW9kZS0+ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX1BWU1lOQyA/IDEgPDwg MyA6IDApIHwKLQkJICAgICAgIDQgPDwgNSB8Ci0JCSAgICAgICAodmVuY19yZXBlYXQgPyAxIDw8 IDggOiAwKSB8Ci0JCSAgICAgICAoaGRtaV9yZXBlYXQgPyAxIDw8IDEyIDogMCksCi0JCSAgICAg ICBwcml2LT5pb19iYXNlICsgX1JFRyhWUFVfSERNSV9TRVRUSU5HKSk7CisJLyogU2V0IFZQVSBI RE1JIHNldHRpbmcgKi8KKwkvKiBTZWxlY3QgRU5DUCBvciBFTkNJIGRhdGEgdG8gSERNSSAqLwor CWlmICh1c2VfZW5jaSkKKwkJcmVnID0gVlBVX0hETUlfRU5DSV9EQVRBX1RPX0hETUk7CisJZWxz ZQorCQlyZWcgPSBWUFVfSERNSV9FTkNQX0RBVEFfVE9fSERNSTsKKworCS8qIEludmVydCBwb2xh cml0eSBvZiBIU1lOQyBmcm9tIFZFTkMgKi8KKwlpZiAobW9kZS0+ZmxhZ3MgJiBEUk1fTU9ERV9G TEFHX1BIU1lOQykKKwkJcmVnIHw9IFZQVV9IRE1JX0lOVl9IU1lOQzsKKworCS8qIEludmVydCBw b2xhcml0eSBvZiBWU1lOQyBmcm9tIFZFTkMgKi8KKwlpZiAobW9kZS0+ZmxhZ3MgJiBEUk1fTU9E RV9GTEFHX1BWU1lOQykKKwkJcmVnIHw9IFZQVV9IRE1JX0lOVl9WU1lOQzsKKworCS8qIE91dHB1 dCBkYXRhIGZvcm1hdDogQ2JZQ3IgKi8KKwlyZWcgfD0gVlBVX0hETUlfT1VUUFVUX0NCWUNSOwor CisJLyoKKwkgKiBXcml0ZSByYXRlIHRvIHRoZSBhc3luYyBGSUZPIGJldHdlZW4gVkVOQyBhbmQg SERNSS4KKwkgKiBPbmUgd3JpdGUgZXZlcnkgMiB3cl9jbGsuCisJICovCisJaWYgKHZlbmNfcmVw ZWF0KQorCQlyZWcgfD0gVlBVX0hETUlfV1JfUkFURSgyKTsKKworCS8qCisJICogUmVhZCByYXRl IHRvIHRoZSBhc3luYyBGSUZPIGJldHdlZW4gVkVOQyBhbmQgSERNSS4KKwkgKiBPbmUgcmVhZCBl dmVyeSAyIHdyX2Nsay4KKwkgKi8KKwlpZiAoaGRtaV9yZXBlYXQpCisJCXJlZyB8PSBWUFVfSERN SV9SRF9SQVRFKDIpOworCisJd3JpdGVsX3JlbGF4ZWQocmVnLCBwcml2LT5pb19iYXNlICsgX1JF RyhWUFVfSERNSV9TRVRUSU5HKSk7CiAKIAlwcml2LT52ZW5jLmhkbWlfcmVwZWF0ID0gaGRtaV9y ZXBlYXQ7CiAJcHJpdi0+dmVuYy52ZW5jX3JlcGVhdCA9IHZlbmNfcmVwZWF0OwpAQCAtMTUxMiwx MiArMTU1NywxNyBAQCBFWFBPUlRfU1lNQk9MX0dQTChtZXNvbl92ZW5jX2hkbWlfbW9kZV9zZXQp Owogdm9pZCBtZXNvbl92ZW5jaV9jdmJzX21vZGVfc2V0KHN0cnVjdCBtZXNvbl9kcm0gKnByaXYs CiAJCQkgICAgICAgc3RydWN0IG1lc29uX2N2YnNfZW5jaV9tb2RlICptb2RlKQogeworCXUzMiBy ZWc7CisKIAlpZiAobW9kZS0+bW9kZV90YWcgPT0gcHJpdi0+dmVuYy5jdXJyZW50X21vZGUpCiAJ CXJldHVybjsKIAogCS8qIENWQlMgRmlsdGVyIHNldHRpbmdzICovCi0Jd3JpdGVsX3JlbGF4ZWQo MHgxMiwgcHJpdi0+aW9fYmFzZSArIF9SRUcoRU5DSV9DRklMVF9DVFJMKSk7Ci0Jd3JpdGVsX3Jl bGF4ZWQoMHgxMiwgcHJpdi0+aW9fYmFzZSArIF9SRUcoRU5DSV9DRklMVF9DVFJMMikpOworCXdy aXRlbF9yZWxheGVkKEVOQ0lfQ0ZJTFRfQ01QVF9TRUxfSElHSCB8IDB4MTAsCisJCSAgICAgICBw cml2LT5pb19iYXNlICsgX1JFRyhFTkNJX0NGSUxUX0NUUkwpKTsKKwl3cml0ZWxfcmVsYXhlZChF TkNJX0NGSUxUX0NNUFRfQ1JfRExZKDIpIHwKKwkJICAgICAgIEVOQ0lfQ0ZJTFRfQ01QVF9DQl9E TFkoMSksCisJCSAgICAgICBwcml2LT5pb19iYXNlICsgX1JFRyhFTkNJX0NGSUxUX0NUUkwyKSk7 CiAKIAkvKiBEaWdpdGFsIFZpZGVvIFNlbGVjdCA6IEludGVybGFjZSwgY2xrMjcgY2xrLCBleHRl cm5hbCAqLwogCXdyaXRlbF9yZWxheGVkKDAsIHByaXYtPmlvX2Jhc2UgKyBfUkVHKFZFTkNfRFZJ X1NFVFRJTkcpKTsKQEAgLTE1MzksOCArMTU4OSw5IEBAIHZvaWQgbWVzb25fdmVuY2lfY3Zic19t b2RlX3NldChzdHJ1Y3QgbWVzb25fZHJtICpwcml2LAogCQkJcHJpdi0+aW9fYmFzZSArIF9SRUco RU5DSV9TWU5DX1ZTT19PRERMTikpOwogCiAJLyogTWFjcm92aXNpb24gbWF4IGFtcGxpdHVkZSBj aGFuZ2UgKi8KLQl3cml0ZWxfcmVsYXhlZCgweDgxMDAgKyBtb2RlLT5tYWN2X21heF9hbXAsCi0J CQlwcml2LT5pb19iYXNlICsgX1JFRyhFTkNJX01BQ1ZfTUFYX0FNUCkpOworCXdyaXRlbF9yZWxh eGVkKEVOQ0lfTUFDVl9NQVhfQU1QX0VOQUJMRV9DSEFOR0UgfAorCQkgICAgICAgRU5DSV9NQUNW X01BWF9BTVBfVkFMKG1vZGUtPm1hY3ZfbWF4X2FtcCksCisJCSAgICAgICBwcml2LT5pb19iYXNl ICsgX1JFRyhFTkNJX01BQ1ZfTUFYX0FNUCkpOwogCiAJLyogVmlkZW8gbW9kZSAqLwogCXdyaXRl bF9yZWxheGVkKG1vZGUtPnZpZGVvX3Byb2dfbW9kZSwKQEAgLTE1NTYsNyArMTYwNywxMCBAQCB2 b2lkIG1lc29uX3ZlbmNpX2N2YnNfbW9kZV9zZXQoc3RydWN0IG1lc29uX2RybSAqcHJpdiwKIAkg KiBCeXBhc3MgbHVtYSBsb3cgcGFzcyBmaWx0ZXIKIAkgKiBObyBtYWNyb3Zpc2lvbiBvbiBDU1lO QwogCSAqLwotCXdyaXRlbF9yZWxheGVkKDB4MjYsIHByaXYtPmlvX2Jhc2UgKyBfUkVHKEVOQ0lf VklERU9fTU9ERV9BRFYpKTsKKwl3cml0ZWxfcmVsYXhlZChFTkNJX1ZJREVPX01PREVfQURWX0RN WE1EKDIpIHwKKwkJICAgICAgIEVOQ0lfVklERU9fTU9ERV9BRFZfVkJJQ1RMX0xJTkVfMTdfMjIg fAorCQkgICAgICAgRU5DSV9WSURFT19NT0RFX0FEVl9ZQldfSElHSCwKKwkJICAgICAgIHByaXYt PmlvX2Jhc2UgKyBfUkVHKEVOQ0lfVklERU9fTU9ERV9BRFYpKTsKIAogCXdyaXRlbChtb2RlLT5z Y2hfYWRqdXN0LCBwcml2LT5pb19iYXNlICsgX1JFRyhFTkNJX1ZJREVPX1NDSCkpOwogCkBAIC0x NTg4LDE2ICsxNjQyLDUwIEBAIHZvaWQgbWVzb25fdmVuY2lfY3Zic19tb2RlX3NldChzdHJ1Y3Qg bWVzb25fZHJtICpwcml2LAogCS8qIFVOcmVzZXQgSW50ZXJsYWNlZCBUViBFbmNvZGVyICovCiAJ d3JpdGVsX3JlbGF4ZWQoMCwgcHJpdi0+aW9fYmFzZSArIF9SRUcoRU5DSV9EQkdfUFhfUlNUKSk7 CiAKLQkvKiBFbmFibGUgVmZpZm8ydmQsIFlfQ2JfWV9DciBzZWxlY3QgKi8KLQl3cml0ZWxfcmVs YXhlZCgweDRlMDEsIHByaXYtPmlvX2Jhc2UgKyBfUkVHKEVOQ0lfVkZJRk8yVkRfQ1RMKSk7CisJ LyoKKwkgKiBFbmFibGUgVmZpZm8ydmQgYW5kIHNldCBZX0NiX1lfQ3I6CisJICogQ29ycmVzcG9u ZGluZyB2YWx1ZToKKwkgKiBZICA9PiAwMCBvciAxMAorCSAqIENiID0+IDAxCisJICogQ3IgPT4g MTEKKwkgKiBFeDogMHg0ZSA9PiAwMTAwMTExMCB3b3VsZCBtZWFuIENiL1kvQ3IvWQorCSAqLwor CXdyaXRlbF9yZWxheGVkKEVOQ0lfVkZJRk8yVkRfQ1RMX0VOQUJMRSB8CisJCSAgICAgICBFTkNJ X1ZGSUZPMlZEX0NUTF9WRF9TRUwoMHg0ZSksCisJCSAgICAgICBwcml2LT5pb19iYXNlICsgX1JF RyhFTkNJX1ZGSUZPMlZEX0NUTCkpOwogCiAJLyogUG93ZXIgVVAgRGFjcyAqLwogCXdyaXRlbF9y ZWxheGVkKDAsIHByaXYtPmlvX2Jhc2UgKyBfUkVHKFZFTkNfVkRBQ19TRVRUSU5HKSk7CiAKIAkv KiBWaWRlbyBVcHNhbXBsaW5nICovCi0Jd3JpdGVsX3JlbGF4ZWQoMHgwMDYxLCBwcml2LT5pb19i YXNlICsgX1JFRyhWRU5DX1VQU0FNUExFX0NUUkwwKSk7Ci0Jd3JpdGVsX3JlbGF4ZWQoMHg0MDYx LCBwcml2LT5pb19iYXNlICsgX1JFRyhWRU5DX1VQU0FNUExFX0NUUkwxKSk7Ci0Jd3JpdGVsX3Jl bGF4ZWQoMHg1MDYxLCBwcml2LT5pb19iYXNlICsgX1JFRyhWRU5DX1VQU0FNUExFX0NUUkwyKSk7 CisJLyoKKwkgKiBDVFJMMCwgQ1RSTDEgYW5kIENUUkwyOgorCSAqIEZpbHRlcjA6IGlucHV0IGRh dGEgc2FtcGxlIGV2ZXJ5IDIgY2xva3MKKwkgKiBGaWx0ZXIxOiBmaWx0ZXJpbmcgYW5kIHVwc2Ft cGxlIGVuYWJsZQorCSAqLworCXJlZyA9IFZFTkNfVVBTQU1QTEVfQ1RSTF9GMF8yX0NMS19SQVRJ TyB8IFZFTkNfVVBTQU1QTEVfQ1RSTF9GMV9FTiB8CisJCVZFTkNfVVBTQU1QTEVfQ1RSTF9GMV9V UFNBTVBMRV9FTjsKKworCS8qCisJICogVXBzYW1wbGUgQ1RSTDA6CisJICogSW50ZXJsYWNlIEhp Z2ggQmFuZHdpZHRoIEx1bWEKKwkgKi8KKwl3cml0ZWxfcmVsYXhlZChWRU5DX1VQU0FNUExFX0NU UkxfSU5URVJMQUNFX0hJR0hfTFVNQSB8IHJlZywKKwkJICAgICAgIHByaXYtPmlvX2Jhc2UgKyBf UkVHKFZFTkNfVVBTQU1QTEVfQ1RSTDApKTsKKworCS8qCisJICogVXBzYW1wbGUgQ1RSTDE6CisJ ICogSW50ZXJsYWNlIFBiCisJICovCisJd3JpdGVsX3JlbGF4ZWQoVkVOQ19VUFNBTVBMRV9DVFJM X0lOVEVSTEFDRV9QQiB8IHJlZywKKwkJICAgICAgIHByaXYtPmlvX2Jhc2UgKyBfUkVHKFZFTkNf VVBTQU1QTEVfQ1RSTDEpKTsKKworCS8qCisJICogVXBzYW1wbGUgQ1RSTDI6CisJICogSW50ZXJs YWNlIFIKKwkgKi8KKwl3cml0ZWxfcmVsYXhlZChWRU5DX1VQU0FNUExFX0NUUkxfSU5URVJMQUNF X1BSIHwgcmVnLAorCQkgICAgICAgcHJpdi0+aW9fYmFzZSArIF9SRUcoVkVOQ19VUFNBTVBMRV9D VFJMMikpOwogCiAJLyogU2VsZWN0IEludGVybGFjZSBZIERBQ3MgKi8KIAl3cml0ZWxfcmVsYXhl ZCgwLCBwcml2LT5pb19iYXNlICsgX1JFRyhWRU5DX1ZEQUNfREFDU0VMMCkpOwpAQCAtMTYxMSwx NCArMTY5OSwxNiBAQCB2b2lkIG1lc29uX3ZlbmNpX2N2YnNfbW9kZV9zZXQoc3RydWN0IG1lc29u X2RybSAqcHJpdiwKIAltZXNvbl92cHBfc2V0dXBfbXV4KHByaXYsIE1FU09OX1ZJVV9WUFBfTVVY X0VOQ0kpOwogCiAJLyogRW5hYmxlIEVOQ0kgRklGTyAqLwotCXdyaXRlbF9yZWxheGVkKDB4MjAw MCwgcHJpdi0+aW9fYmFzZSArIF9SRUcoVkVOQ19WREFDX0ZJRk9fQ1RSTCkpOworCXdyaXRlbF9y ZWxheGVkKFZFTkNfVkRBQ19GSUZPX0VOX0VOQ0lfRU5BQkxFLAorCQkgICAgICAgcHJpdi0+aW9f YmFzZSArIF9SRUcoVkVOQ19WREFDX0ZJRk9fQ1RSTCkpOwogCiAJLyogU2VsZWN0IEVOQ0kgREFD cyAwLCAxLCA0LCBhbmQgNSAqLwogCXdyaXRlbF9yZWxheGVkKDB4MTEsIHByaXYtPmlvX2Jhc2Ug KyBfUkVHKEVOQ0lfREFDU0VMXzApKTsKIAl3cml0ZWxfcmVsYXhlZCgweDExLCBwcml2LT5pb19i YXNlICsgX1JFRyhFTkNJX0RBQ1NFTF8xKSk7CiAKIAkvKiBJbnRlcmxhY2UgdmlkZW8gZW5hYmxl ICovCi0Jd3JpdGVsX3JlbGF4ZWQoMSwgcHJpdi0+aW9fYmFzZSArIF9SRUcoRU5DSV9WSURFT19F TikpOworCXdyaXRlbF9yZWxheGVkKEVOQ0lfVklERU9fRU5fRU5BQkxFLAorCQkgICAgICAgcHJp di0+aW9fYmFzZSArIF9SRUcoRU5DSV9WSURFT19FTikpOwogCiAJLyogQ29uZmlndXJlIFZpZGVv IFNhdHVyYXRpb24gLyBDb250cmFzdCAvIEJyaWdodG5lc3MgLyBIdWUgKi8KIAl3cml0ZWxfcmVs YXhlZChtb2RlLT52aWRlb19zYXR1cmF0aW9uLApAQCAtMTYzMSw3ICsxNzIxLDggQEAgdm9pZCBt ZXNvbl92ZW5jaV9jdmJzX21vZGVfc2V0KHN0cnVjdCBtZXNvbl9kcm0gKnByaXYsCiAJCQlwcml2 LT5pb19iYXNlICsgX1JFRyhFTkNJX1ZJREVPX0hVRSkpOwogCiAJLyogRW5hYmxlIERBQzAgRmls dGVyICovCi0Jd3JpdGVsX3JlbGF4ZWQoMHgxLCBwcml2LT5pb19iYXNlICsgX1JFRyhWRU5DX1ZE QUNfREFDMF9GSUxUX0NUUkwwKSk7CisJd3JpdGVsX3JlbGF4ZWQoVkVOQ19WREFDX0RBQzBfRklM VF9DVFJMMF9FTiwKKwkJICAgICAgIHByaXYtPmlvX2Jhc2UgKyBfUkVHKFZFTkNfVkRBQ19EQUMw X0ZJTFRfQ1RSTDApKTsKIAl3cml0ZWxfcmVsYXhlZCgweGZjNDgsIHByaXYtPmlvX2Jhc2UgKyBf UkVHKFZFTkNfVkRBQ19EQUMwX0ZJTFRfQ1RSTDEpKTsKIAogCS8qIDAgaW4gTWFjcm92aXNpb24g cmVnaXN0ZXIgMCAqLwpAQCAtMTY1Miw3ICsxNzQzLDggQEAgdW5zaWduZWQgaW50IG1lc29uX3Zl bmNpX2dldF9maWVsZChzdHJ1Y3QgbWVzb25fZHJtICpwcml2KQogCiB2b2lkIG1lc29uX3ZlbmNf ZW5hYmxlX3ZzeW5jKHN0cnVjdCBtZXNvbl9kcm0gKnByaXYpCiB7Ci0Jd3JpdGVsX3JlbGF4ZWQo MiwgcHJpdi0+aW9fYmFzZSArIF9SRUcoVkVOQ19JTlRDVFJMKSk7CisJd3JpdGVsX3JlbGF4ZWQo VkVOQ19JTlRDVFJMX0VOQ0lfTE5SU1RfSU5UX0VOLAorCQkgICAgICAgcHJpdi0+aW9fYmFzZSAr IF9SRUcoVkVOQ19JTlRDVFJMKSk7CiAJcmVnbWFwX3VwZGF0ZV9iaXRzKHByaXYtPmhoaSwgSEhJ X0dDTEtfTVBFRzIsIEJJVCgyNSksIEJJVCgyNSkpOwogfQogCkBAIC0xNjgwLDcgKzE3NzIsOCBA QCB2b2lkIG1lc29uX3ZlbmNfaW5pdChzdHJ1Y3QgbWVzb25fZHJtICpwcml2KQogCXJlZ21hcF93 cml0ZShwcml2LT5oaGksIEhISV9IRE1JX1BIWV9DTlRMMCwgMCk7CiAKIAkvKiBEaXNhYmxlIEhE TUkgKi8KLQl3cml0ZWxfYml0c19yZWxheGVkKDB4MywgMCwKKwl3cml0ZWxfYml0c19yZWxheGVk KFZQVV9IRE1JX0VOQ0lfREFUQV9UT19IRE1JIHwKKwkJCSAgICBWUFVfSERNSV9FTkNQX0RBVEFf VE9fSERNSSwgMCwKIAkJCSAgICBwcml2LT5pb19iYXNlICsgX1JFRyhWUFVfSERNSV9TRVRUSU5H KSk7CiAKIAkvKiBEaXNhYmxlIGFsbCBlbmNvZGVycyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL21lc29uL21lc29uX3ZlbmNfY3Zicy5jIGIvZHJpdmVycy9ncHUvZHJtL21lc29uL21l c29uX3ZlbmNfY3Zicy5jCmluZGV4IDYzMTNhNTE5ZjI1Ny4uN2VjYzZiYjZjOGY4IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25fdmVuY19jdmJzLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL21lc29uL21lc29uX3ZlbmNfY3Zicy5jCkBAIC0xNzIsNyArMTcyLDggQEAgc3Rh dGljIHZvaWQgbWVzb25fdmVuY19jdmJzX2VuY29kZXJfZW5hYmxlKHN0cnVjdCBkcm1fZW5jb2Rl ciAqZW5jb2RlcikKIAlzdHJ1Y3QgbWVzb25fZHJtICpwcml2ID0gbWVzb25fdmVuY19jdmJzLT5w cml2OwogCiAJLyogVkRBQzAgc291cmNlIGlzIG5vdCBmcm9tIEFUViAqLwotCXdyaXRlbF9iaXRz X3JlbGF4ZWQoQklUKDUpLCAwLCBwcml2LT5pb19iYXNlICsgX1JFRyhWRU5DX1ZEQUNfREFDU0VM MCkpOworCXdyaXRlbF9iaXRzX3JlbGF4ZWQoVkVOQ19WREFDX1NFTF9BVFZfRE1ELCAwLAorCQkJ ICAgIHByaXYtPmlvX2Jhc2UgKyBfUkVHKFZFTkNfVkRBQ19EQUNTRUwwKSk7CiAKIAlpZiAobWVz b25fdnB1X2lzX2NvbXBhdGlibGUocHJpdiwgImFtbG9naWMsbWVzb24tZ3hiYi12cHUiKSkgewog CQlyZWdtYXBfd3JpdGUocHJpdi0+aGhpLCBISElfVkRBQ19DTlRMMCwgMSk7Ci0tIAoyLjE3LjEK CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1h cm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5v cmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0t a2VybmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Masson Subject: [PATCH 6/9] drm: meson: venc: use proper macros instead of magic constants Date: Mon, 24 Jun 2019 16:48:50 +0200 Message-ID: <86r27j82ef.fsf@baylibre.com> References: <86zhm782g5.fsf@baylibre.com> Reply-To: <86zhm782g5.fsf@baylibre.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Sender: linux-kernel-owner@vger.kernel.org To: Neil Armstrong Cc: linux-arm-kernel@lists.infradead.org, linux-amlogic@lists.infradead.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Julien Masson List-Id: dri-devel@lists.freedesktop.org This patch add new macros which are used to set the following registers: - ENCI_CFILT_CTRL - ENCI_CFILT_CTRL2 - ENCI_MACV_MAX_AMP - ENCI_VIDEO_MODE_ADV - ENCI_VFIFO2VD_CTL - ENCI_VIDEO_EN - ENCP_VIDEO_MODE - VPU_HDMI_SETTING - VENC_UPSAMPLE_CTRL0 - VENC_UPSAMPLE_CTRL1 - VENC_UPSAMPLE_CTRL2 - VENC_VDAC_FIFO_CTRL - VENC_VDAC_DAC0_FILT_CTRL0 - VENC_INTCTRL Signed-off-by: Julien Masson --- drivers/gpu/drm/meson/meson_registers.h | 51 ++++++++ drivers/gpu/drm/meson/meson_venc.c | 155 +++++++++++++++++++----- drivers/gpu/drm/meson/meson_venc_cvbs.c | 3 +- 3 files changed, 177 insertions(+), 32 deletions(-) diff --git a/drivers/gpu/drm/meson/meson_registers.h b/drivers/gpu/drm/meso= n/meson_registers.h index 7a52aac7e28a..537a779492bd 100644 --- a/drivers/gpu/drm/meson/meson_registers.h +++ b/drivers/gpu/drm/meson/meson_registers.h @@ -742,6 +742,25 @@ #define VENC_UPSAMPLE_CTRL0 0x1b64 #define VENC_UPSAMPLE_CTRL1 0x1b65 #define VENC_UPSAMPLE_CTRL2 0x1b66 +#define VENC_UPSAMPLE_CTRL_F0_2_CLK_RATIO BIT(0) +#define VENC_UPSAMPLE_CTRL_F1_EN BIT(5) +#define VENC_UPSAMPLE_CTRL_F1_UPSAMPLE_EN BIT(6) +#define VENC_UPSAMPLE_CTRL_INTERLACE_HIGH_LUMA (0x0 << 12) +#define VENC_UPSAMPLE_CTRL_CVBS (0x1 << 12) +#define VENC_UPSAMPLE_CTRL_S_VIDEO_LUMA (0x2 << 12) +#define VENC_UPSAMPLE_CTRL_S_VIDEO_CHROMA (0x3 << 12) +#define VENC_UPSAMPLE_CTRL_INTERLACE_PB (0x4 << 12) +#define VENC_UPSAMPLE_CTRL_INTERLACE_PR (0x5 << 12) +#define VENC_UPSAMPLE_CTRL_INTERLACE_R (0x6 << 12) +#define VENC_UPSAMPLE_CTRL_INTERLACE_G (0x7 << 12) +#define VENC_UPSAMPLE_CTRL_INTERLACE_B (0x8 << 12) +#define VENC_UPSAMPLE_CTRL_PROGRESSIVE_Y (0x9 << 12) +#define VENC_UPSAMPLE_CTRL_PROGRESSIVE_PB (0xa << 12) +#define VENC_UPSAMPLE_CTRL_PROGRESSIVE_PR (0xb << 12) +#define VENC_UPSAMPLE_CTRL_PROGRESSIVE_R (0xc << 12) +#define VENC_UPSAMPLE_CTRL_PROGRESSIVE_G (0xd << 12) +#define VENC_UPSAMPLE_CTRL_PROGRESSIVE_B (0xe << 12) +#define VENC_UPSAMPLE_CTRL_VDAC_TEST_VALUE (0xf << 12) #define TCON_INVERT_CTL 0x1b67 #define VENC_VIDEO_PROG_MODE 0x1b68 #define VENC_ENCI_LINE 0x1b69 @@ -750,6 +769,7 @@ #define VENC_ENCP_PIXEL 0x1b6c #define VENC_STATA 0x1b6d #define VENC_INTCTRL 0x1b6e +#define VENC_INTCTRL_ENCI_LNRST_INT_EN BIT(1) #define VENC_INTFLAG 0x1b6f #define VENC_VIDEO_TST_EN 0x1b70 #define VENC_VIDEO_TST_MDSEL 0x1b71 @@ -760,6 +780,7 @@ #define VENC_VIDEO_TST_CLRBAR_WIDTH 0x1b76 #define VENC_VIDEO_TST_VDCNT_STSET 0x1b77 #define VENC_VDAC_DACSEL0 0x1b78 +#define VENC_VDAC_SEL_ATV_DMD BIT(5) #define VENC_VDAC_DACSEL1 0x1b79 #define VENC_VDAC_DACSEL2 0x1b7a #define VENC_VDAC_DACSEL3 0x1b7b @@ -780,6 +801,7 @@ #define VENC_VDAC_DAC5_GAINCTRL 0x1bfa #define VENC_VDAC_DAC5_OFFSET 0x1bfb #define VENC_VDAC_FIFO_CTRL 0x1bfc +#define VENC_VDAC_FIFO_EN_ENCI_ENABLE BIT(13) #define ENCL_TCON_INVERT_CTL 0x1bfd #define ENCP_VIDEO_EN 0x1b80 #define ENCP_VIDEO_SYNC_MODE 0x1b81 @@ -795,6 +817,7 @@ #define ENCP_VIDEO_SYNC_OFFST 0x1b8b #define ENCP_VIDEO_MACV_OFFST 0x1b8c #define ENCP_VIDEO_MODE 0x1b8d +#define ENCP_VIDEO_MODE_DE_V_HIGH BIT(14) #define ENCP_VIDEO_MODE_ADV 0x1b8e #define ENCP_DBG_PX_RST 0x1b90 #define ENCP_DBG_LN_RST 0x1b91 @@ -873,6 +896,11 @@ #define C656_FS_LNED 0x1be7 #define ENCI_VIDEO_MODE 0x1b00 #define ENCI_VIDEO_MODE_ADV 0x1b01 +#define ENCI_VIDEO_MODE_ADV_DMXMD(val) (val & 0x3) +#define ENCI_VIDEO_MODE_ADV_VBICTL_LINE_17_22 BIT(2) +#define ENCI_VIDEO_MODE_ADV_YBW_MEDIUM (0 << 4) +#define ENCI_VIDEO_MODE_ADV_YBW_LOW (0x1 << 4) +#define ENCI_VIDEO_MODE_ADV_YBW_HIGH (0x2 << 4) #define ENCI_VIDEO_FSC_ADJ 0x1b02 #define ENCI_VIDEO_BRIGHT 0x1b03 #define ENCI_VIDEO_CONT 0x1b04 @@ -943,13 +971,17 @@ #define ENCI_DBG_MAXPX 0x1b4c #define ENCI_DBG_MAXLN 0x1b4d #define ENCI_MACV_MAX_AMP 0x1b50 +#define ENCI_MACV_MAX_AMP_ENABLE_CHANGE BIT(15) +#define ENCI_MACV_MAX_AMP_VAL(val) (val & 0x83ff) #define ENCI_MACV_PULSE_LO 0x1b51 #define ENCI_MACV_PULSE_HI 0x1b52 #define ENCI_MACV_BKP_MAX 0x1b53 #define ENCI_CFILT_CTRL 0x1b54 +#define ENCI_CFILT_CMPT_SEL_HIGH BIT(1) #define ENCI_CFILT7 0x1b55 #define ENCI_YC_DELAY 0x1b56 #define ENCI_VIDEO_EN 0x1b57 +#define ENCI_VIDEO_EN_ENABLE BIT(0) #define ENCI_DVI_HSO_BEGIN 0x1c00 #define ENCI_DVI_HSO_END 0x1c01 #define ENCI_DVI_VSO_BLINE_EVN 0x1c02 @@ -961,6 +993,10 @@ #define ENCI_DVI_VSO_END_EVN 0x1c08 #define ENCI_DVI_VSO_END_ODD 0x1c09 #define ENCI_CFILT_CTRL2 0x1c0a +#define ENCI_CFILT_CMPT_CR_DLY(delay) (delay & 0xf) +#define ENCI_CFILT_CMPT_CB_DLY(delay) ((delay & 0xf) << 4) +#define ENCI_CFILT_CVBS_CR_DLY(delay) ((delay & 0xf) << 8) +#define ENCI_CFILT_CVBS_CB_DLY(delay) ((delay & 0xf) << 12) #define ENCI_DACSEL_0 0x1c0b #define ENCI_DACSEL_1 0x1c0c #define ENCP_DACSEL_0 0x1c0d @@ -975,6 +1011,8 @@ #define ENCI_TST_CLRBAR_WIDTH 0x1c16 #define ENCI_TST_VDCNT_STSET 0x1c17 #define ENCI_VFIFO2VD_CTL 0x1c18 +#define ENCI_VFIFO2VD_CTL_ENABLE BIT(0) +#define ENCI_VFIFO2VD_CTL_VD_SEL(val) ((val & 0xff) << 8) #define ENCI_VFIFO2VD_PIXEL_START 0x1c19 #define ENCI_VFIFO2VD_PIXEL_END 0x1c1a #define ENCI_VFIFO2VD_LINE_TOP_START 0x1c1b @@ -1037,6 +1075,7 @@ #define VENC_VDAC_DAC5_FILT_CTRL0 0x1c56 #define VENC_VDAC_DAC5_FILT_CTRL1 0x1c57 #define VENC_VDAC_DAC0_FILT_CTRL0 0x1c58 +#define VENC_VDAC_DAC0_FILT_CTRL0_EN BIT(0) #define VENC_VDAC_DAC0_FILT_CTRL1 0x1c59 #define VENC_VDAC_DAC1_FILT_CTRL0 0x1c5a #define VENC_VDAC_DAC1_FILT_CTRL1 0x1c5b @@ -1442,6 +1481,18 @@ #define VIU2_SEL_VENC_ENCP (2 << 2) #define VIU2_SEL_VENC_ENCT (3 << 2) #define VPU_HDMI_SETTING 0x271b +#define VPU_HDMI_ENCI_DATA_TO_HDMI BIT(0) +#define VPU_HDMI_ENCP_DATA_TO_HDMI BIT(1) +#define VPU_HDMI_INV_HSYNC BIT(2) +#define VPU_HDMI_INV_VSYNC BIT(3) +#define VPU_HDMI_OUTPUT_CRYCB (0 << 5) +#define VPU_HDMI_OUTPUT_YCBCR (1 << 5) +#define VPU_HDMI_OUTPUT_YCRCB (2 << 5) +#define VPU_HDMI_OUTPUT_CBCRY (3 << 5) +#define VPU_HDMI_OUTPUT_CBYCR (4 << 5) +#define VPU_HDMI_OUTPUT_CRCBY (5 << 5) +#define VPU_HDMI_WR_RATE(rate) (((rate & 0x1f) - 1) << 8) +#define VPU_HDMI_RD_RATE(rate) (((rate & 0x1f) - 1) << 12) #define ENCI_INFO_READ 0x271c #define ENCP_INFO_READ 0x271d #define ENCT_INFO_READ 0x271e diff --git a/drivers/gpu/drm/meson/meson_venc.c b/drivers/gpu/drm/meson/mes= on_venc.c index 7b7a0d8d737c..918df02d2aef 100644 --- a/drivers/gpu/drm/meson/meson_venc.c +++ b/drivers/gpu/drm/meson/meson_venc.c @@ -976,6 +976,7 @@ void meson_venc_hdmi_mode_set(struct meson_drm *priv, i= nt vic, unsigned int eof_lines; unsigned int sof_lines; unsigned int vsync_lines; + u32 reg; =20 /* Use VENCI for 480i and 576i and double HDMI pixels */ if (mode->flags & DRM_MODE_FLAG_DBLCLK) { @@ -1048,8 +1049,11 @@ void meson_venc_hdmi_mode_set(struct meson_drm *priv= , int vic, unsigned int lines_f1; =20 /* CVBS Filter settings */ - writel_relaxed(0x12, priv->io_base + _REG(ENCI_CFILT_CTRL)); - writel_relaxed(0x12, priv->io_base + _REG(ENCI_CFILT_CTRL2)); + writel_relaxed(ENCI_CFILT_CMPT_SEL_HIGH | 0x10, + priv->io_base + _REG(ENCI_CFILT_CTRL)); + writel_relaxed(ENCI_CFILT_CMPT_CR_DLY(2) | + ENCI_CFILT_CMPT_CB_DLY(1), + priv->io_base + _REG(ENCI_CFILT_CTRL2)); =20 /* Digital Video Select : Interlace, clk27 clk, external */ writel_relaxed(0, priv->io_base + _REG(VENC_DVI_SETTING)); @@ -1071,8 +1075,9 @@ void meson_venc_hdmi_mode_set(struct meson_drm *priv,= int vic, priv->io_base + _REG(ENCI_SYNC_VSO_ODDLN)); =20 /* Macrovision max amplitude change */ - writel_relaxed(vmode->enci.macv_max_amp, - priv->io_base + _REG(ENCI_MACV_MAX_AMP)); + writel_relaxed(ENCI_MACV_MAX_AMP_ENABLE_CHANGE | + ENCI_MACV_MAX_AMP_VAL(vmode->enci.macv_max_amp), + priv->io_base + _REG(ENCI_MACV_MAX_AMP)); =20 /* Video mode */ writel_relaxed(vmode->enci.video_prog_mode, @@ -1088,7 +1093,10 @@ void meson_venc_hdmi_mode_set(struct meson_drm *priv= , int vic, * Bypass luma low pass filter * No macrovision on CSYNC */ - writel_relaxed(0x26, priv->io_base + _REG(ENCI_VIDEO_MODE_ADV)); + writel_relaxed(ENCI_VIDEO_MODE_ADV_DMXMD(2) | + ENCI_VIDEO_MODE_ADV_VBICTL_LINE_17_22 | + ENCI_VIDEO_MODE_ADV_YBW_HIGH, + priv->io_base + _REG(ENCI_VIDEO_MODE_ADV)); =20 writel(vmode->enci.sch_adjust, priv->io_base + _REG(ENCI_VIDEO_SCH)); @@ -1104,8 +1112,17 @@ void meson_venc_hdmi_mode_set(struct meson_drm *priv= , int vic, /* UNreset Interlaced TV Encoder */ writel_relaxed(0, priv->io_base + _REG(ENCI_DBG_PX_RST)); =20 - /* Enable Vfifo2vd, Y_Cb_Y_Cr select */ - writel_relaxed(0x4e01, priv->io_base + _REG(ENCI_VFIFO2VD_CTL)); + /* + * Enable Vfifo2vd and set Y_Cb_Y_Cr: + * Corresponding value: + * Y =3D> 00 or 10 + * Cb =3D> 01 + * Cr =3D> 11 + * Ex: 0x4e =3D> 01001110 would mean Cb/Y/Cr/Y + */ + writel_relaxed(ENCI_VFIFO2VD_CTL_ENABLE | + ENCI_VFIFO2VD_CTL_VD_SEL(0x4e), + priv->io_base + _REG(ENCI_VFIFO2VD_CTL)); =20 /* Timings */ writel_relaxed(vmode->enci.pixel_start, @@ -1127,7 +1144,8 @@ void meson_venc_hdmi_mode_set(struct meson_drm *priv,= int vic, meson_vpp_setup_mux(priv, MESON_VIU_VPP_MUX_ENCI); =20 /* Interlace video enable */ - writel_relaxed(1, priv->io_base + _REG(ENCI_VIDEO_EN)); + writel_relaxed(ENCI_VIDEO_EN_ENABLE, + priv->io_base + _REG(ENCI_VIDEO_EN)); =20 lines_f0 =3D mode->vtotal >> 1; lines_f1 =3D lines_f0 + 1; @@ -1374,7 +1392,8 @@ void meson_venc_hdmi_mode_set(struct meson_drm *priv,= int vic, writel_relaxed(1, priv->io_base + _REG(ENCP_VIDEO_EN)); =20 /* Set DE signal=E2=80=99s polarity is active high */ - writel_bits_relaxed(BIT(14), BIT(14), + writel_bits_relaxed(ENCP_VIDEO_MODE_DE_V_HIGH, + ENCP_VIDEO_MODE_DE_V_HIGH, priv->io_base + _REG(ENCP_VIDEO_MODE)); =20 /* Program DE timing */ @@ -1493,13 +1512,39 @@ void meson_venc_hdmi_mode_set(struct meson_drm *pri= v, int vic, meson_vpp_setup_mux(priv, MESON_VIU_VPP_MUX_ENCP); } =20 - writel_relaxed((use_enci ? 1 : 2) | - (mode->flags & DRM_MODE_FLAG_PHSYNC ? 1 << 2 : 0) | - (mode->flags & DRM_MODE_FLAG_PVSYNC ? 1 << 3 : 0) | - 4 << 5 | - (venc_repeat ? 1 << 8 : 0) | - (hdmi_repeat ? 1 << 12 : 0), - priv->io_base + _REG(VPU_HDMI_SETTING)); + /* Set VPU HDMI setting */ + /* Select ENCP or ENCI data to HDMI */ + if (use_enci) + reg =3D VPU_HDMI_ENCI_DATA_TO_HDMI; + else + reg =3D VPU_HDMI_ENCP_DATA_TO_HDMI; + + /* Invert polarity of HSYNC from VENC */ + if (mode->flags & DRM_MODE_FLAG_PHSYNC) + reg |=3D VPU_HDMI_INV_HSYNC; + + /* Invert polarity of VSYNC from VENC */ + if (mode->flags & DRM_MODE_FLAG_PVSYNC) + reg |=3D VPU_HDMI_INV_VSYNC; + + /* Output data format: CbYCr */ + reg |=3D VPU_HDMI_OUTPUT_CBYCR; + + /* + * Write rate to the async FIFO between VENC and HDMI. + * One write every 2 wr_clk. + */ + if (venc_repeat) + reg |=3D VPU_HDMI_WR_RATE(2); + + /* + * Read rate to the async FIFO between VENC and HDMI. + * One read every 2 wr_clk. + */ + if (hdmi_repeat) + reg |=3D VPU_HDMI_RD_RATE(2); + + writel_relaxed(reg, priv->io_base + _REG(VPU_HDMI_SETTING)); =20 priv->venc.hdmi_repeat =3D hdmi_repeat; priv->venc.venc_repeat =3D venc_repeat; @@ -1512,12 +1557,17 @@ EXPORT_SYMBOL_GPL(meson_venc_hdmi_mode_set); void meson_venci_cvbs_mode_set(struct meson_drm *priv, struct meson_cvbs_enci_mode *mode) { + u32 reg; + if (mode->mode_tag =3D=3D priv->venc.current_mode) return; =20 /* CVBS Filter settings */ - writel_relaxed(0x12, priv->io_base + _REG(ENCI_CFILT_CTRL)); - writel_relaxed(0x12, priv->io_base + _REG(ENCI_CFILT_CTRL2)); + writel_relaxed(ENCI_CFILT_CMPT_SEL_HIGH | 0x10, + priv->io_base + _REG(ENCI_CFILT_CTRL)); + writel_relaxed(ENCI_CFILT_CMPT_CR_DLY(2) | + ENCI_CFILT_CMPT_CB_DLY(1), + priv->io_base + _REG(ENCI_CFILT_CTRL2)); =20 /* Digital Video Select : Interlace, clk27 clk, external */ writel_relaxed(0, priv->io_base + _REG(VENC_DVI_SETTING)); @@ -1539,8 +1589,9 @@ void meson_venci_cvbs_mode_set(struct meson_drm *priv, priv->io_base + _REG(ENCI_SYNC_VSO_ODDLN)); =20 /* Macrovision max amplitude change */ - writel_relaxed(0x8100 + mode->macv_max_amp, - priv->io_base + _REG(ENCI_MACV_MAX_AMP)); + writel_relaxed(ENCI_MACV_MAX_AMP_ENABLE_CHANGE | + ENCI_MACV_MAX_AMP_VAL(mode->macv_max_amp), + priv->io_base + _REG(ENCI_MACV_MAX_AMP)); =20 /* Video mode */ writel_relaxed(mode->video_prog_mode, @@ -1556,7 +1607,10 @@ void meson_venci_cvbs_mode_set(struct meson_drm *pri= v, * Bypass luma low pass filter * No macrovision on CSYNC */ - writel_relaxed(0x26, priv->io_base + _REG(ENCI_VIDEO_MODE_ADV)); + writel_relaxed(ENCI_VIDEO_MODE_ADV_DMXMD(2) | + ENCI_VIDEO_MODE_ADV_VBICTL_LINE_17_22 | + ENCI_VIDEO_MODE_ADV_YBW_HIGH, + priv->io_base + _REG(ENCI_VIDEO_MODE_ADV)); =20 writel(mode->sch_adjust, priv->io_base + _REG(ENCI_VIDEO_SCH)); =20 @@ -1588,16 +1642,50 @@ void meson_venci_cvbs_mode_set(struct meson_drm *pr= iv, /* UNreset Interlaced TV Encoder */ writel_relaxed(0, priv->io_base + _REG(ENCI_DBG_PX_RST)); =20 - /* Enable Vfifo2vd, Y_Cb_Y_Cr select */ - writel_relaxed(0x4e01, priv->io_base + _REG(ENCI_VFIFO2VD_CTL)); + /* + * Enable Vfifo2vd and set Y_Cb_Y_Cr: + * Corresponding value: + * Y =3D> 00 or 10 + * Cb =3D> 01 + * Cr =3D> 11 + * Ex: 0x4e =3D> 01001110 would mean Cb/Y/Cr/Y + */ + writel_relaxed(ENCI_VFIFO2VD_CTL_ENABLE | + ENCI_VFIFO2VD_CTL_VD_SEL(0x4e), + priv->io_base + _REG(ENCI_VFIFO2VD_CTL)); =20 /* Power UP Dacs */ writel_relaxed(0, priv->io_base + _REG(VENC_VDAC_SETTING)); =20 /* Video Upsampling */ - writel_relaxed(0x0061, priv->io_base + _REG(VENC_UPSAMPLE_CTRL0)); - writel_relaxed(0x4061, priv->io_base + _REG(VENC_UPSAMPLE_CTRL1)); - writel_relaxed(0x5061, priv->io_base + _REG(VENC_UPSAMPLE_CTRL2)); + /* + * CTRL0, CTRL1 and CTRL2: + * Filter0: input data sample every 2 cloks + * Filter1: filtering and upsample enable + */ + reg =3D VENC_UPSAMPLE_CTRL_F0_2_CLK_RATIO | VENC_UPSAMPLE_CTRL_F1_EN | + VENC_UPSAMPLE_CTRL_F1_UPSAMPLE_EN; + + /* + * Upsample CTRL0: + * Interlace High Bandwidth Luma + */ + writel_relaxed(VENC_UPSAMPLE_CTRL_INTERLACE_HIGH_LUMA | reg, + priv->io_base + _REG(VENC_UPSAMPLE_CTRL0)); + + /* + * Upsample CTRL1: + * Interlace Pb + */ + writel_relaxed(VENC_UPSAMPLE_CTRL_INTERLACE_PB | reg, + priv->io_base + _REG(VENC_UPSAMPLE_CTRL1)); + + /* + * Upsample CTRL2: + * Interlace R + */ + writel_relaxed(VENC_UPSAMPLE_CTRL_INTERLACE_PR | reg, + priv->io_base + _REG(VENC_UPSAMPLE_CTRL2)); =20 /* Select Interlace Y DACs */ writel_relaxed(0, priv->io_base + _REG(VENC_VDAC_DACSEL0)); @@ -1611,14 +1699,16 @@ void meson_venci_cvbs_mode_set(struct meson_drm *pr= iv, meson_vpp_setup_mux(priv, MESON_VIU_VPP_MUX_ENCI); =20 /* Enable ENCI FIFO */ - writel_relaxed(0x2000, priv->io_base + _REG(VENC_VDAC_FIFO_CTRL)); + writel_relaxed(VENC_VDAC_FIFO_EN_ENCI_ENABLE, + priv->io_base + _REG(VENC_VDAC_FIFO_CTRL)); =20 /* Select ENCI DACs 0, 1, 4, and 5 */ writel_relaxed(0x11, priv->io_base + _REG(ENCI_DACSEL_0)); writel_relaxed(0x11, priv->io_base + _REG(ENCI_DACSEL_1)); =20 /* Interlace video enable */ - writel_relaxed(1, priv->io_base + _REG(ENCI_VIDEO_EN)); + writel_relaxed(ENCI_VIDEO_EN_ENABLE, + priv->io_base + _REG(ENCI_VIDEO_EN)); =20 /* Configure Video Saturation / Contrast / Brightness / Hue */ writel_relaxed(mode->video_saturation, @@ -1631,7 +1721,8 @@ void meson_venci_cvbs_mode_set(struct meson_drm *priv, priv->io_base + _REG(ENCI_VIDEO_HUE)); =20 /* Enable DAC0 Filter */ - writel_relaxed(0x1, priv->io_base + _REG(VENC_VDAC_DAC0_FILT_CTRL0)); + writel_relaxed(VENC_VDAC_DAC0_FILT_CTRL0_EN, + priv->io_base + _REG(VENC_VDAC_DAC0_FILT_CTRL0)); writel_relaxed(0xfc48, priv->io_base + _REG(VENC_VDAC_DAC0_FILT_CTRL1)); =20 /* 0 in Macrovision register 0 */ @@ -1652,7 +1743,8 @@ unsigned int meson_venci_get_field(struct meson_drm *= priv) =20 void meson_venc_enable_vsync(struct meson_drm *priv) { - writel_relaxed(2, priv->io_base + _REG(VENC_INTCTRL)); + writel_relaxed(VENC_INTCTRL_ENCI_LNRST_INT_EN, + priv->io_base + _REG(VENC_INTCTRL)); regmap_update_bits(priv->hhi, HHI_GCLK_MPEG2, BIT(25), BIT(25)); } =20 @@ -1680,7 +1772,8 @@ void meson_venc_init(struct meson_drm *priv) regmap_write(priv->hhi, HHI_HDMI_PHY_CNTL0, 0); =20 /* Disable HDMI */ - writel_bits_relaxed(0x3, 0, + writel_bits_relaxed(VPU_HDMI_ENCI_DATA_TO_HDMI | + VPU_HDMI_ENCP_DATA_TO_HDMI, 0, priv->io_base + _REG(VPU_HDMI_SETTING)); =20 /* Disable all encoders */ diff --git a/drivers/gpu/drm/meson/meson_venc_cvbs.c b/drivers/gpu/drm/meso= n/meson_venc_cvbs.c index 6313a519f257..7ecc6bb6c8f8 100644 --- a/drivers/gpu/drm/meson/meson_venc_cvbs.c +++ b/drivers/gpu/drm/meson/meson_venc_cvbs.c @@ -172,7 +172,8 @@ static void meson_venc_cvbs_encoder_enable(struct drm_e= ncoder *encoder) struct meson_drm *priv =3D meson_venc_cvbs->priv; =20 /* VDAC0 source is not from ATV */ - writel_bits_relaxed(BIT(5), 0, priv->io_base + _REG(VENC_VDAC_DACSEL0)); + writel_bits_relaxed(VENC_VDAC_SEL_ATV_DMD, 0, + priv->io_base + _REG(VENC_VDAC_DACSEL0)); =20 if (meson_vpu_is_compatible(priv, "amlogic,meson-gxbb-vpu")) { regmap_write(priv->hhi, HHI_VDAC_CNTL0, 1); --=20 2.17.1