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 7F4A3C433EF for ; Wed, 12 Jan 2022 15:21:22 +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:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=/pFt6SSDtAMiSyBN6PMzjSG3ptygc0WR4nwvgKrQPqI=; b=ApUu2jKgkrmHzO UwhQZQcFRiwSvMkPT/fgMpaEY4uuaUwqp6kf1EJiBIRpYH+3sgvIGKYQS75O3cX2ya3WHy1BSjUmA 0meP2iJHX+Trrbv0b5K6IqsMZNL5cEVnmFms+yJPLjTNVLTIjZg3JE8N2mP2tQCCNnDLXPYxdxByx I0N7emhE9hbwy8DGe11bK1YaI1d+kLIk8qr0atxzaXR+y6+xXLGNOaeXspZXmwtFMj3DqkxkulcEp Go0bk/JAgGb6TpLAa1G8QxDDodcQgEK54YEckU0zRJgt3itIFe/VXSxjHpyVrTb2epTV10hydpjiy Pjz847wSM0N0A4uPV6rA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1n7fPs-002r3o-AW; Wed, 12 Jan 2022 15:20:00 +0000 Received: from dfw.source.kernel.org ([139.178.84.217]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1n7fOW-002qVV-PB for linux-arm-kernel@lists.infradead.org; Wed, 12 Jan 2022 15:18:41 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 218A661913; Wed, 12 Jan 2022 15:18:36 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9A7E6C36AEA; Wed, 12 Jan 2022 15:18:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1642000716; bh=YzSw0jzAbp3IOps2JabCEF2fRcUsifDh7TuQoPY2nDI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=EdLceE6/HmquP+9HVKmrBDgoPvGPncj7SewfyVMlpL78YedkvGF9tJQ7nXdlqrEr9 AN29VF4YlhWTLCnMkGCL8gKAjYGoU1RKcRnnUQwJDnZ5TrkUCOTmiHcpRy3GNqYjCi wU/7ABf0lmnaVBAZMMR0JK2TgmlhFlZUKwGR0R/Z8SYbwnJgSAhxXLGBjH7sqi8QSv DmXUBrASqYV5pAoGtvTHJSSeR/5+dZSqbDxoTGpMjTRLDR6QTo1ulcntPEeC+LoVQq rJph0a8/tSGCcUBcU7np7VibW0dEnhj1uD6xXMLN5BDKig0NaxjaLOZjOEvOi06GTI PbWPwGTGGadnQ== Received: by pali.im (Postfix) id 6527422CA; Wed, 12 Jan 2022 16:18:33 +0100 (CET) From: =?UTF-8?q?Pali=20Roh=C3=A1r?= To: Lorenzo Pieralisi , Bjorn Helgaas , Rob Herring , Thomas Petazzoni , =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= , =?UTF-8?q?Marek=20Beh=C3=BAn?= , Russell King Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH v2 02/11] PCI: pci-bridge-emul: Add support for PCIe extended capabilities Date: Wed, 12 Jan 2022 16:18:05 +0100 Message-Id: <20220112151814.24361-3-pali@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20220112151814.24361-1-pali@kernel.org> References: <20220105150239.9628-1-pali@kernel.org> <20220112151814.24361-1-pali@kernel.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220112_071836_958520_9BD6D288 X-CRM114-Status: GOOD ( 22.62 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org RnJvbTogUnVzc2VsbCBLaW5nIDxybWsra2VybmVsQGFybWxpbnV4Lm9yZy51az4KCkFkZCBzdXBw b3J0IGZvciBQQ0llIGV4dGVuZGVkIGNhcGFiaWxpdGllcywgd2hpY2ggd2UganVzdCByZWRpcmVj dCB0byB0aGUKZW11bGF0aW5nIGRyaXZlci4KClNpZ25lZC1vZmYtYnk6IFJ1c3NlbGwgS2luZyA8 cm1rK2tlcm5lbEBhcm1saW51eC5vcmcudWs+CltwYWxpOiBGaXggd3JpdGluZyBuZXcgdmFsdWUg d2l0aCBXMUMgYml0c10KU2lnbmVkLW9mZi1ieTogUGFsaSBSb2jDoXIgPHBhbGlAa2VybmVsLm9y Zz4KLS0tCiBkcml2ZXJzL3BjaS9wY2ktYnJpZGdlLWVtdWwuYyB8IDc3ICsrKysrKysrKysrKysr KysrKysrKysrLS0tLS0tLS0tLS0tCiBkcml2ZXJzL3BjaS9wY2ktYnJpZGdlLWVtdWwuaCB8IDE1 ICsrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgNjcgaW5zZXJ0aW9ucygrKSwgMjUgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvcGNpLWJyaWRnZS1lbXVsLmMgYi9kcml2ZXJz L3BjaS9wY2ktYnJpZGdlLWVtdWwuYwppbmRleCA1NmIyY2I3NDE0OTguLjlmNGYxNzNmMDY1MCAx MDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvcGNpLWJyaWRnZS1lbXVsLmMKKysrIGIvZHJpdmVycy9w Y2kvcGNpLWJyaWRnZS1lbXVsLmMKQEAgLTQzMywxMCArNDMzLDE2IEBAIGludCBwY2lfYnJpZGdl X2VtdWxfY29uZl9yZWFkKHN0cnVjdCBwY2lfYnJpZGdlX2VtdWwgKmJyaWRnZSwgaW50IHdoZXJl LAogCQlyZWFkX29wID0gYnJpZGdlLT5vcHMtPnJlYWRfcGNpZTsKIAkJY2Znc3BhY2UgPSAoX19s ZTMyICopICZicmlkZ2UtPnBjaWVfY29uZjsKIAkJYmVoYXZpb3IgPSBicmlkZ2UtPnBjaWVfY2Fw X3JlZ3NfYmVoYXZpb3I7Ci0JfSBlbHNlIHsKLQkJLyogQmV5b25kIG91ciBQQ0llIHNwYWNlICov CisJfSBlbHNlIGlmIChyZWcgPCBQQ0lfQ0ZHX1NQQUNFX1NJWkUpIHsKKwkJLyogUmVzdCBvZiBQ Q0kgc3BhY2Ugbm90IGltcGxlbWVudGVkICovCiAJCSp2YWx1ZSA9IDA7CiAJCXJldHVybiBQQ0lC SU9TX1NVQ0NFU1NGVUw7CisJfSBlbHNlIHsKKwkJLyogUENJZSBleHRlbmRlZCBjYXBhYmlsaXR5 IHNwYWNlICovCisJCXJlZyAtPSBQQ0lfQ0ZHX1NQQUNFX1NJWkU7CisJCXJlYWRfb3AgPSBicmlk Z2UtPm9wcy0+cmVhZF9leHQ7CisJCWNmZ3NwYWNlID0gTlVMTDsKKwkJYmVoYXZpb3IgPSBOVUxM OwogCX0KIAogCWlmIChyZWFkX29wKQpAQCAtNDQ0LDE1ICs0NTAsMjAgQEAgaW50IHBjaV9icmlk Z2VfZW11bF9jb25mX3JlYWQoc3RydWN0IHBjaV9icmlkZ2VfZW11bCAqYnJpZGdlLCBpbnQgd2hl cmUsCiAJZWxzZQogCQlyZXQgPSBQQ0lfQlJJREdFX0VNVUxfTk9UX0hBTkRMRUQ7CiAKLQlpZiAo cmV0ID09IFBDSV9CUklER0VfRU1VTF9OT1RfSEFORExFRCkKLQkJKnZhbHVlID0gbGUzMl90b19j cHUoY2Znc3BhY2VbcmVnIC8gNF0pOworCWlmIChyZXQgPT0gUENJX0JSSURHRV9FTVVMX05PVF9I QU5ETEVEKSB7CisJCWlmIChjZmdzcGFjZSkKKwkJCSp2YWx1ZSA9IGxlMzJfdG9fY3B1KGNmZ3Nw YWNlW3JlZyAvIDRdKTsKKwkJZWxzZQorCQkJKnZhbHVlID0gMDsKKwl9CiAKIAkvKgogCSAqIE1h a2Ugc3VyZSB3ZSBuZXZlciByZXR1cm4gYW55IHJlc2VydmVkIGJpdCB3aXRoIGEgdmFsdWUKIAkg KiBkaWZmZXJlbnQgZnJvbSAwLgogCSAqLwotCSp2YWx1ZSAmPSBiZWhhdmlvcltyZWcgLyA0XS5y byB8IGJlaGF2aW9yW3JlZyAvIDRdLnJ3IHwKLQkJICBiZWhhdmlvcltyZWcgLyA0XS53MWM7CisJ aWYgKGJlaGF2aW9yKQorCQkqdmFsdWUgJj0gYmVoYXZpb3JbcmVnIC8gNF0ucm8gfCBiZWhhdmlv cltyZWcgLyA0XS5ydyB8CisJCQkgIGJlaGF2aW9yW3JlZyAvIDRdLncxYzsKIAogCWlmIChzaXpl ID09IDEpCiAJCSp2YWx1ZSA9ICgqdmFsdWUgPj4gKDggKiAod2hlcmUgJiAzKSkpICYgMHhmZjsK QEAgLTQ5OCw4ICs1MDksMTUgQEAgaW50IHBjaV9icmlkZ2VfZW11bF9jb25mX3dyaXRlKHN0cnVj dCBwY2lfYnJpZGdlX2VtdWwgKmJyaWRnZSwgaW50IHdoZXJlLAogCQl3cml0ZV9vcCA9IGJyaWRn ZS0+b3BzLT53cml0ZV9wY2llOwogCQljZmdzcGFjZSA9IChfX2xlMzIgKikgJmJyaWRnZS0+cGNp ZV9jb25mOwogCQliZWhhdmlvciA9IGJyaWRnZS0+cGNpZV9jYXBfcmVnc19iZWhhdmlvcjsKLQl9 IGVsc2UgeworCX0gZWxzZSBpZiAocmVnIDwgUENJX0NGR19TUEFDRV9TSVpFKSB7CisJCS8qIFJl c3Qgb2YgUENJIHNwYWNlIG5vdCBpbXBsZW1lbnRlZCAqLwogCQlyZXR1cm4gUENJQklPU19TVUND RVNTRlVMOworCX0gZWxzZSB7CisJCS8qIFBDSWUgZXh0ZW5kZWQgY2FwYWJpbGl0eSBzcGFjZSAq LworCQlyZWcgLT0gUENJX0NGR19TUEFDRV9TSVpFOworCQl3cml0ZV9vcCA9IGJyaWRnZS0+b3Bz LT53cml0ZV9leHQ7CisJCWNmZ3NwYWNlID0gTlVMTDsKKwkJYmVoYXZpb3IgPSBOVUxMOwogCX0K IAogCXNoaWZ0ID0gKHdoZXJlICYgMHgzKSAqIDg7CkBAIC01MTMsMjkgKzUzMSwzOCBAQCBpbnQg cGNpX2JyaWRnZV9lbXVsX2NvbmZfd3JpdGUoc3RydWN0IHBjaV9icmlkZ2VfZW11bCAqYnJpZGdl LCBpbnQgd2hlcmUsCiAJZWxzZQogCQlyZXR1cm4gUENJQklPU19CQURfUkVHSVNURVJfTlVNQkVS OwogCi0JLyogS2VlcCBhbGwgYml0cywgZXhjZXB0IHRoZSBSVyBiaXRzICovCi0JbmV3ID0gb2xk ICYgKH5tYXNrIHwgfmJlaGF2aW9yW3JlZyAvIDRdLnJ3KTsKKwlpZiAoYmVoYXZpb3IpIHsKKwkJ LyogS2VlcCBhbGwgYml0cywgZXhjZXB0IHRoZSBSVyBiaXRzICovCisJCW5ldyA9IG9sZCAmICh+ bWFzayB8IH5iZWhhdmlvcltyZWcgLyA0XS5ydyk7CiAKLQkvKiBVcGRhdGUgdGhlIHZhbHVlIG9m IHRoZSBSVyBiaXRzICovCi0JbmV3IHw9ICh2YWx1ZSA8PCBzaGlmdCkgJiAoYmVoYXZpb3JbcmVn IC8gNF0ucncgJiBtYXNrKTsKKwkJLyogVXBkYXRlIHRoZSB2YWx1ZSBvZiB0aGUgUlcgYml0cyAq LworCQluZXcgfD0gKHZhbHVlIDw8IHNoaWZ0KSAmIChiZWhhdmlvcltyZWcgLyA0XS5ydyAmIG1h c2spOwogCi0JLyogQ2xlYXIgdGhlIFcxQyBiaXRzICovCi0JbmV3ICY9IH4oKHZhbHVlIDw8IHNo aWZ0KSAmIChiZWhhdmlvcltyZWcgLyA0XS53MWMgJiBtYXNrKSk7CisJCS8qIENsZWFyIHRoZSBX MUMgYml0cyAqLworCQluZXcgJj0gfigodmFsdWUgPDwgc2hpZnQpICYgKGJlaGF2aW9yW3JlZyAv IDRdLncxYyAmIG1hc2spKTsKKwl9IGVsc2UgeworCQluZXcgPSBvbGQgJiB+bWFzazsKKwkJbmV3 IHw9ICh2YWx1ZSA8PCBzaGlmdCkgJiBtYXNrOworCX0KIAotCS8qIFNhdmUgdGhlIG5ldyB2YWx1 ZSB3aXRoIHRoZSBjbGVhcmVkIFcxQyBiaXRzIGludG8gdGhlIGNmZ3NwYWNlICovCi0JY2Znc3Bh Y2VbcmVnIC8gNF0gPSBjcHVfdG9fbGUzMihuZXcpOworCWlmIChjZmdzcGFjZSkgeworCQkvKiBT YXZlIHRoZSBuZXcgdmFsdWUgd2l0aCB0aGUgY2xlYXJlZCBXMUMgYml0cyBpbnRvIHRoZSBjZmdz cGFjZSAqLworCQljZmdzcGFjZVtyZWcgLyA0XSA9IGNwdV90b19sZTMyKG5ldyk7CisJfQogCi0J LyoKLQkgKiBDbGVhciB0aGUgVzFDIGJpdHMgbm90IHNwZWNpZmllZCBieSB0aGUgd3JpdGUgbWFz aywgc28gdGhhdCB0aGUKLQkgKiB3cml0ZV9vcCgpIGRvZXMgbm90IGNsZWFyIHRoZW0uCi0JICov Ci0JbmV3ICY9IH4oYmVoYXZpb3JbcmVnIC8gNF0udzFjICYgfm1hc2spOworCWlmIChiZWhhdmlv cikgeworCQkvKgorCQkgKiBDbGVhciB0aGUgVzFDIGJpdHMgbm90IHNwZWNpZmllZCBieSB0aGUg d3JpdGUgbWFzaywgc28gdGhhdCB0aGUKKwkJICogd3JpdGVfb3AoKSBkb2VzIG5vdCBjbGVhciB0 aGVtLgorCQkgKi8KKwkJbmV3ICY9IH4oYmVoYXZpb3JbcmVnIC8gNF0udzFjICYgfm1hc2spOwog Ci0JLyoKLQkgKiBTZXQgdGhlIFcxQyBiaXRzIHNwZWNpZmllZCBieSB0aGUgd3JpdGUgbWFzaywg c28gdGhhdCB3cml0ZV9vcCgpCi0JICoga25vd3MgYWJvdXQgdGhhdCB0aGV5IGFyZSB0byBiZSBj bGVhcmVkLgotCSAqLwotCW5ldyB8PSAodmFsdWUgPDwgc2hpZnQpICYgKGJlaGF2aW9yW3JlZyAv IDRdLncxYyAmIG1hc2spOworCQkvKgorCQkgKiBTZXQgdGhlIFcxQyBiaXRzIHNwZWNpZmllZCBi eSB0aGUgd3JpdGUgbWFzaywgc28gdGhhdCB3cml0ZV9vcCgpCisJCSAqIGtub3dzIGFib3V0IHRo YXQgdGhleSBhcmUgdG8gYmUgY2xlYXJlZC4KKwkJICovCisJCW5ldyB8PSAodmFsdWUgPDwgc2hp ZnQpICYgKGJlaGF2aW9yW3JlZyAvIDRdLncxYyAmIG1hc2spOworCX0KIAogCWlmICh3cml0ZV9v cCkKIAkJd3JpdGVfb3AoYnJpZGdlLCByZWcsIG9sZCwgbmV3LCBtYXNrKTsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvcGNpL3BjaS1icmlkZ2UtZW11bC5oIGIvZHJpdmVycy9wY2kvcGNpLWJyaWRnZS1l bXVsLmgKaW5kZXggNDk1MzI3NGNhYzE4Li42YjVmNzViMmFkMDIgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvcGNpL3BjaS1icmlkZ2UtZW11bC5oCisrKyBiL2RyaXZlcnMvcGNpL3BjaS1icmlkZ2UtZW11 bC5oCkBAIC05MCw2ICs5MCwxNCBAQCBzdHJ1Y3QgcGNpX2JyaWRnZV9lbXVsX29wcyB7CiAJICov CiAJcGNpX2JyaWRnZV9lbXVsX3JlYWRfc3RhdHVzX3QgKCpyZWFkX3BjaWUpKHN0cnVjdCBwY2lf YnJpZGdlX2VtdWwgKmJyaWRnZSwKIAkJCQkJCSAgIGludCByZWcsIHUzMiAqdmFsdWUpOworCisJ LyoKKwkgKiBTYW1lIGFzIC0+cmVhZF9iYXNlKCksIGV4Y2VwdCBpdCBpcyBmb3IgcmVhZGluZyBm cm9tIHRoZQorCSAqIFBDSWUgZXh0ZW5kZWQgY2FwYWJpbGl0eSBjb25maWd1cmF0aW9uIHNwYWNl LgorCSAqLworCXBjaV9icmlkZ2VfZW11bF9yZWFkX3N0YXR1c190ICgqcmVhZF9leHQpKHN0cnVj dCBwY2lfYnJpZGdlX2VtdWwgKmJyaWRnZSwKKwkJCQkJCSAgaW50IHJlZywgdTMyICp2YWx1ZSk7 CisKIAkvKgogCSAqIENhbGxlZCB3aGVuIHdyaXRpbmcgdG8gdGhlIHJlZ3VsYXIgUENJIGJyaWRn ZSBjb25maWd1cmF0aW9uCiAJICogc3BhY2UuIG9sZCBpcyB0aGUgY3VycmVudCB2YWx1ZSwgbmV3 IGlzIHRoZSBuZXcgdmFsdWUgYmVpbmcKQEAgLTEwNSw2ICsxMTMsMTMgQEAgc3RydWN0IHBjaV9i cmlkZ2VfZW11bF9vcHMgewogCSAqLwogCXZvaWQgKCp3cml0ZV9wY2llKShzdHJ1Y3QgcGNpX2Jy aWRnZV9lbXVsICpicmlkZ2UsIGludCByZWcsCiAJCQkgICB1MzIgb2xkLCB1MzIgbmV3LCB1MzIg bWFzayk7CisKKwkvKgorCSAqIFNhbWUgYXMgLT53cml0ZV9iYXNlKCksIGV4Y2VwdCBpdCBpcyBm b3Igd3JpdGluZyBmcm9tIHRoZQorCSAqIFBDSWUgZXh0ZW5kZWQgY2FwYWJpbGl0eSBjb25maWd1 cmF0aW9uIHNwYWNlLgorCSAqLworCXZvaWQgKCp3cml0ZV9leHQpKHN0cnVjdCBwY2lfYnJpZGdl X2VtdWwgKmJyaWRnZSwgaW50IHJlZywKKwkJCSAgdTMyIG9sZCwgdTMyIG5ldywgdTMyIG1hc2sp OwogfTsKIAogc3RydWN0IHBjaV9icmlkZ2VfcmVnX2JlaGF2aW9yOwotLSAKMi4yMC4xCgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtl cm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0 dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5l bAo=