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 01662C433F5 for ; Tue, 22 Feb 2022 15:53:52 +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=P9upAUAEMqFnjsAVtB4088IQa/e53pjUNygPju1dszk=; b=m42zCFdxLMAJWz 6G2NZslfU+mrTjiU6LqIov5WSoPAGBcJWeKJeqFBWLVMrDdLoekcXCJFmxTh9W8SooL50J4d56vwb Y8tZbjwiYSv8suRQ6WZV/5J6iUdv/4vhVOvx0Tnb7JzBYGTfVpolfegq9TswGn2hnLuVEmsHwmwT6 UY4A6i/M6xPrnAxFPF0Fb6dRhqAaCgONN1idKJng6/iavODgrBYDLMEfiIBETspJy9co88DbKy0vv iQtb7059gh3wtW3rn3oMWCJEKqDN8B7vi9KGgENHaWFmWveeb9tuVh3FlSQXMJj77uIPZ2GmNXiES f4uNGvGy7SbJpjU9ohPQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nMXSs-00AQ7k-MX; Tue, 22 Feb 2022 15:52:34 +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 1nMXRy-00APcg-5w for linux-arm-kernel@lists.infradead.org; Tue, 22 Feb 2022 15:51: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 A8C18616B3; Tue, 22 Feb 2022 15:51:37 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2E900C340F4; Tue, 22 Feb 2022 15:51:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1645545097; bh=7cddUZYpHlXDq113Rsd/wugdaYv8c+/WYPhY53D2cdo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=DhNAmgsdNQVXXwepI38JSbjP1gSIIpk/OI64MnULsaQJv+USclHW9Q2dnFs6wNLfW T8+SaIpJvdEMBU7nqtlOJ5WA4N4QgbcPRfwu0viVbV1/1CMJ3deZqIVZdRUxPoCpAf SQ3gHc++vEkOcV7YDLLt2ZqaXNwA138de82AjXDgfUj3JXNe9tzW0psml9fE8T8HWK HUNIF43bQ/w3LricLj5zip+P9rGBVOhLTVGCwle8LsDTqdl1oSBvIcy46w6gTRlC2U r99duOefjZJtP3GDJxGYQh87RgaTrRtt2BFJ6wCxtOt0nPaVYTOmvWpuwIvcsqLoCx ayPbGSyfXj9FQ== Received: by pali.im (Postfix) id 25DB83FAC; Tue, 22 Feb 2022 16:51:35 +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 v4 02/12] PCI: pci-bridge-emul: Add support for PCIe extended capabilities Date: Tue, 22 Feb 2022 16:50:20 +0100 Message-Id: <20220222155030.988-3-pali@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20220222155030.988-1-pali@kernel.org> References: <20220222155030.988-1-pali@kernel.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220222_075138_409236_5B923C14 X-CRM114-Status: GOOD ( 22.70 ) 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 Zz4KU2lnbmVkLW9mZi1ieTogTWFyZWsgQmVow7puIDxrYWJlbEBrZXJuZWwub3JnPgotLS0KIGRy aXZlcnMvcGNpL3BjaS1icmlkZ2UtZW11bC5jIHwgNzcgKysrKysrKysrKysrKysrKysrKysrKyst LS0tLS0tLS0tLS0KIGRyaXZlcnMvcGNpL3BjaS1icmlkZ2UtZW11bC5oIHwgMTUgKysrKysrKwog MiBmaWxlcyBjaGFuZ2VkLCA2NyBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL3BjaS9wY2ktYnJpZGdlLWVtdWwuYyBiL2RyaXZlcnMvcGNpL3BjaS1i cmlkZ2UtZW11bC5jCmluZGV4IGE5NTY0MDg4MzRkNi4uYzRiOTgzNzAwNmZmIDEwMDY0NAotLS0g YS9kcml2ZXJzL3BjaS9wY2ktYnJpZGdlLWVtdWwuYworKysgYi9kcml2ZXJzL3BjaS9wY2ktYnJp ZGdlLWVtdWwuYwpAQCAtNDM3LDEwICs0MzcsMTYgQEAgaW50IHBjaV9icmlkZ2VfZW11bF9jb25m X3JlYWQoc3RydWN0IHBjaV9icmlkZ2VfZW11bCAqYnJpZGdlLCBpbnQgd2hlcmUsCiAJCXJlYWRf b3AgPSBicmlkZ2UtPm9wcy0+cmVhZF9wY2llOwogCQljZmdzcGFjZSA9IChfX2xlMzIgKikgJmJy aWRnZS0+cGNpZV9jb25mOwogCQliZWhhdmlvciA9IGJyaWRnZS0+cGNpZV9jYXBfcmVnc19iZWhh dmlvcjsKLQl9IGVsc2UgewotCQkvKiBCZXlvbmQgb3VyIFBDSWUgc3BhY2UgKi8KKwl9IGVsc2Ug aWYgKHJlZyA8IFBDSV9DRkdfU1BBQ0VfU0laRSkgeworCQkvKiBSZXN0IG9mIFBDSSBzcGFjZSBu b3QgaW1wbGVtZW50ZWQgKi8KIAkJKnZhbHVlID0gMDsKIAkJcmV0dXJuIFBDSUJJT1NfU1VDQ0VT U0ZVTDsKKwl9IGVsc2UgeworCQkvKiBQQ0llIGV4dGVuZGVkIGNhcGFiaWxpdHkgc3BhY2UgKi8K KwkJcmVnIC09IFBDSV9DRkdfU1BBQ0VfU0laRTsKKwkJcmVhZF9vcCA9IGJyaWRnZS0+b3BzLT5y ZWFkX2V4dDsKKwkJY2Znc3BhY2UgPSBOVUxMOworCQliZWhhdmlvciA9IE5VTEw7CiAJfQogCiAJ aWYgKHJlYWRfb3ApCkBAIC00NDgsMTUgKzQ1NCwyMCBAQCBpbnQgcGNpX2JyaWRnZV9lbXVsX2Nv bmZfcmVhZChzdHJ1Y3QgcGNpX2JyaWRnZV9lbXVsICpicmlkZ2UsIGludCB3aGVyZSwKIAllbHNl CiAJCXJldCA9IFBDSV9CUklER0VfRU1VTF9OT1RfSEFORExFRDsKIAotCWlmIChyZXQgPT0gUENJ X0JSSURHRV9FTVVMX05PVF9IQU5ETEVEKQotCQkqdmFsdWUgPSBsZTMyX3RvX2NwdShjZmdzcGFj ZVtyZWcgLyA0XSk7CisJaWYgKHJldCA9PSBQQ0lfQlJJREdFX0VNVUxfTk9UX0hBTkRMRUQpIHsK KwkJaWYgKGNmZ3NwYWNlKQorCQkJKnZhbHVlID0gbGUzMl90b19jcHUoY2Znc3BhY2VbcmVnIC8g NF0pOworCQllbHNlCisJCQkqdmFsdWUgPSAwOworCX0KIAogCS8qCiAJICogTWFrZSBzdXJlIHdl IG5ldmVyIHJldHVybiBhbnkgcmVzZXJ2ZWQgYml0IHdpdGggYSB2YWx1ZQogCSAqIGRpZmZlcmVu dCBmcm9tIDAuCiAJICovCi0JKnZhbHVlICY9IGJlaGF2aW9yW3JlZyAvIDRdLnJvIHwgYmVoYXZp b3JbcmVnIC8gNF0ucncgfAotCQkgIGJlaGF2aW9yW3JlZyAvIDRdLncxYzsKKwlpZiAoYmVoYXZp b3IpCisJCSp2YWx1ZSAmPSBiZWhhdmlvcltyZWcgLyA0XS5ybyB8IGJlaGF2aW9yW3JlZyAvIDRd LnJ3IHwKKwkJCSAgYmVoYXZpb3JbcmVnIC8gNF0udzFjOwogCiAJaWYgKHNpemUgPT0gMSkKIAkJ KnZhbHVlID0gKCp2YWx1ZSA+PiAoOCAqICh3aGVyZSAmIDMpKSkgJiAweGZmOwpAQCAtNTAyLDgg KzUxMywxNSBAQCBpbnQgcGNpX2JyaWRnZV9lbXVsX2NvbmZfd3JpdGUoc3RydWN0IHBjaV9icmlk Z2VfZW11bCAqYnJpZGdlLCBpbnQgd2hlcmUsCiAJCXdyaXRlX29wID0gYnJpZGdlLT5vcHMtPndy aXRlX3BjaWU7CiAJCWNmZ3NwYWNlID0gKF9fbGUzMiAqKSAmYnJpZGdlLT5wY2llX2NvbmY7CiAJ CWJlaGF2aW9yID0gYnJpZGdlLT5wY2llX2NhcF9yZWdzX2JlaGF2aW9yOwotCX0gZWxzZSB7CisJ fSBlbHNlIGlmIChyZWcgPCBQQ0lfQ0ZHX1NQQUNFX1NJWkUpIHsKKwkJLyogUmVzdCBvZiBQQ0kg c3BhY2Ugbm90IGltcGxlbWVudGVkICovCiAJCXJldHVybiBQQ0lCSU9TX1NVQ0NFU1NGVUw7CisJ fSBlbHNlIHsKKwkJLyogUENJZSBleHRlbmRlZCBjYXBhYmlsaXR5IHNwYWNlICovCisJCXJlZyAt PSBQQ0lfQ0ZHX1NQQUNFX1NJWkU7CisJCXdyaXRlX29wID0gYnJpZGdlLT5vcHMtPndyaXRlX2V4 dDsKKwkJY2Znc3BhY2UgPSBOVUxMOworCQliZWhhdmlvciA9IE5VTEw7CiAJfQogCiAJc2hpZnQg PSAod2hlcmUgJiAweDMpICogODsKQEAgLTUxNywyOSArNTM1LDM4IEBAIGludCBwY2lfYnJpZGdl X2VtdWxfY29uZl93cml0ZShzdHJ1Y3QgcGNpX2JyaWRnZV9lbXVsICpicmlkZ2UsIGludCB3aGVy ZSwKIAllbHNlCiAJCXJldHVybiBQQ0lCSU9TX0JBRF9SRUdJU1RFUl9OVU1CRVI7CiAKLQkvKiBL ZWVwIGFsbCBiaXRzLCBleGNlcHQgdGhlIFJXIGJpdHMgKi8KLQluZXcgPSBvbGQgJiAofm1hc2sg fCB+YmVoYXZpb3JbcmVnIC8gNF0ucncpOworCWlmIChiZWhhdmlvcikgeworCQkvKiBLZWVwIGFs bCBiaXRzLCBleGNlcHQgdGhlIFJXIGJpdHMgKi8KKwkJbmV3ID0gb2xkICYgKH5tYXNrIHwgfmJl aGF2aW9yW3JlZyAvIDRdLnJ3KTsKIAotCS8qIFVwZGF0ZSB0aGUgdmFsdWUgb2YgdGhlIFJXIGJp dHMgKi8KLQluZXcgfD0gKHZhbHVlIDw8IHNoaWZ0KSAmIChiZWhhdmlvcltyZWcgLyA0XS5ydyAm IG1hc2spOworCQkvKiBVcGRhdGUgdGhlIHZhbHVlIG9mIHRoZSBSVyBiaXRzICovCisJCW5ldyB8 PSAodmFsdWUgPDwgc2hpZnQpICYgKGJlaGF2aW9yW3JlZyAvIDRdLnJ3ICYgbWFzayk7CiAKLQkv KiBDbGVhciB0aGUgVzFDIGJpdHMgKi8KLQluZXcgJj0gfigodmFsdWUgPDwgc2hpZnQpICYgKGJl aGF2aW9yW3JlZyAvIDRdLncxYyAmIG1hc2spKTsKKwkJLyogQ2xlYXIgdGhlIFcxQyBiaXRzICov CisJCW5ldyAmPSB+KCh2YWx1ZSA8PCBzaGlmdCkgJiAoYmVoYXZpb3JbcmVnIC8gNF0udzFjICYg bWFzaykpOworCX0gZWxzZSB7CisJCW5ldyA9IG9sZCAmIH5tYXNrOworCQluZXcgfD0gKHZhbHVl IDw8IHNoaWZ0KSAmIG1hc2s7CisJfQogCi0JLyogU2F2ZSB0aGUgbmV3IHZhbHVlIHdpdGggdGhl IGNsZWFyZWQgVzFDIGJpdHMgaW50byB0aGUgY2Znc3BhY2UgKi8KLQljZmdzcGFjZVtyZWcgLyA0 XSA9IGNwdV90b19sZTMyKG5ldyk7CisJaWYgKGNmZ3NwYWNlKSB7CisJCS8qIFNhdmUgdGhlIG5l dyB2YWx1ZSB3aXRoIHRoZSBjbGVhcmVkIFcxQyBiaXRzIGludG8gdGhlIGNmZ3NwYWNlICovCisJ CWNmZ3NwYWNlW3JlZyAvIDRdID0gY3B1X3RvX2xlMzIobmV3KTsKKwl9CiAKLQkvKgotCSAqIENs ZWFyIHRoZSBXMUMgYml0cyBub3Qgc3BlY2lmaWVkIGJ5IHRoZSB3cml0ZSBtYXNrLCBzbyB0aGF0 IHRoZQotCSAqIHdyaXRlX29wKCkgZG9lcyBub3QgY2xlYXIgdGhlbS4KLQkgKi8KLQluZXcgJj0g fihiZWhhdmlvcltyZWcgLyA0XS53MWMgJiB+bWFzayk7CisJaWYgKGJlaGF2aW9yKSB7CisJCS8q CisJCSAqIENsZWFyIHRoZSBXMUMgYml0cyBub3Qgc3BlY2lmaWVkIGJ5IHRoZSB3cml0ZSBtYXNr LCBzbyB0aGF0IHRoZQorCQkgKiB3cml0ZV9vcCgpIGRvZXMgbm90IGNsZWFyIHRoZW0uCisJCSAq LworCQluZXcgJj0gfihiZWhhdmlvcltyZWcgLyA0XS53MWMgJiB+bWFzayk7CiAKLQkvKgotCSAq IFNldCB0aGUgVzFDIGJpdHMgc3BlY2lmaWVkIGJ5IHRoZSB3cml0ZSBtYXNrLCBzbyB0aGF0IHdy aXRlX29wKCkKLQkgKiBrbm93cyBhYm91dCB0aGF0IHRoZXkgYXJlIHRvIGJlIGNsZWFyZWQuCi0J ICovCi0JbmV3IHw9ICh2YWx1ZSA8PCBzaGlmdCkgJiAoYmVoYXZpb3JbcmVnIC8gNF0udzFjICYg bWFzayk7CisJCS8qCisJCSAqIFNldCB0aGUgVzFDIGJpdHMgc3BlY2lmaWVkIGJ5IHRoZSB3cml0 ZSBtYXNrLCBzbyB0aGF0IHdyaXRlX29wKCkKKwkJICoga25vd3MgYWJvdXQgdGhhdCB0aGV5IGFy ZSB0byBiZSBjbGVhcmVkLgorCQkgKi8KKwkJbmV3IHw9ICh2YWx1ZSA8PCBzaGlmdCkgJiAoYmVo YXZpb3JbcmVnIC8gNF0udzFjICYgbWFzayk7CisJfQogCiAJaWYgKHdyaXRlX29wKQogCQl3cml0 ZV9vcChicmlkZ2UsIHJlZywgb2xkLCBuZXcsIG1hc2spOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9w Y2kvcGNpLWJyaWRnZS1lbXVsLmggYi9kcml2ZXJzL3BjaS9wY2ktYnJpZGdlLWVtdWwuaAppbmRl eCA0OTUzMjc0Y2FjMTguLjZiNWY3NWIyYWQwMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvcGNp LWJyaWRnZS1lbXVsLmgKKysrIGIvZHJpdmVycy9wY2kvcGNpLWJyaWRnZS1lbXVsLmgKQEAgLTkw LDYgKzkwLDE0IEBAIHN0cnVjdCBwY2lfYnJpZGdlX2VtdWxfb3BzIHsKIAkgKi8KIAlwY2lfYnJp ZGdlX2VtdWxfcmVhZF9zdGF0dXNfdCAoKnJlYWRfcGNpZSkoc3RydWN0IHBjaV9icmlkZ2VfZW11 bCAqYnJpZGdlLAogCQkJCQkJICAgaW50IHJlZywgdTMyICp2YWx1ZSk7CisKKwkvKgorCSAqIFNh bWUgYXMgLT5yZWFkX2Jhc2UoKSwgZXhjZXB0IGl0IGlzIGZvciByZWFkaW5nIGZyb20gdGhlCisJ ICogUENJZSBleHRlbmRlZCBjYXBhYmlsaXR5IGNvbmZpZ3VyYXRpb24gc3BhY2UuCisJICovCisJ cGNpX2JyaWRnZV9lbXVsX3JlYWRfc3RhdHVzX3QgKCpyZWFkX2V4dCkoc3RydWN0IHBjaV9icmlk Z2VfZW11bCAqYnJpZGdlLAorCQkJCQkJICBpbnQgcmVnLCB1MzIgKnZhbHVlKTsKKwogCS8qCiAJ ICogQ2FsbGVkIHdoZW4gd3JpdGluZyB0byB0aGUgcmVndWxhciBQQ0kgYnJpZGdlIGNvbmZpZ3Vy YXRpb24KIAkgKiBzcGFjZS4gb2xkIGlzIHRoZSBjdXJyZW50IHZhbHVlLCBuZXcgaXMgdGhlIG5l dyB2YWx1ZSBiZWluZwpAQCAtMTA1LDYgKzExMywxMyBAQCBzdHJ1Y3QgcGNpX2JyaWRnZV9lbXVs X29wcyB7CiAJICovCiAJdm9pZCAoKndyaXRlX3BjaWUpKHN0cnVjdCBwY2lfYnJpZGdlX2VtdWwg KmJyaWRnZSwgaW50IHJlZywKIAkJCSAgIHUzMiBvbGQsIHUzMiBuZXcsIHUzMiBtYXNrKTsKKwor CS8qCisJICogU2FtZSBhcyAtPndyaXRlX2Jhc2UoKSwgZXhjZXB0IGl0IGlzIGZvciB3cml0aW5n IGZyb20gdGhlCisJICogUENJZSBleHRlbmRlZCBjYXBhYmlsaXR5IGNvbmZpZ3VyYXRpb24gc3Bh Y2UuCisJICovCisJdm9pZCAoKndyaXRlX2V4dCkoc3RydWN0IHBjaV9icmlkZ2VfZW11bCAqYnJp ZGdlLCBpbnQgcmVnLAorCQkJICB1MzIgb2xkLCB1MzIgbmV3LCB1MzIgbWFzayk7CiB9OwogCiBz dHJ1Y3QgcGNpX2JyaWRnZV9yZWdfYmVoYXZpb3I7Ci0tIAoyLjIwLjEKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxp bmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3Rz LmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==