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 6BDA9C433EF for ; Sun, 20 Feb 2022 19:36:12 +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=PeZw8MiKzxvLwHd77sNhaSPL6nUFfV4Xi9wU9IeXvNs=; b=XpVxrJ60F2YyVs Wo7e6fur1awECAPjjBIzTQGUe7tJNeF0udEufw7i99oLncipD4v+dCzJByFY5gaY6+tbgbxVifUo5 WZxXdkXf/nrgLoGJU4f1JWvUGZ45++xWnTckpsJ1V0EXttY8GpW60D2OKGJsC8IPlbGa0yeQXlwCh rWstNI/LHzxb7OAB1mIc3t4tOZ3gU+l1Bbyyfl1scV9dF9ofM8DqjoNoE/gdEXcphx3MV5NNxYo7U KWP/WlaLvKyNurmDRtK6DB1tneHr5/g+zMZrTs96pj/iPjAmKGQAJ1RbZs+DhDypCt5djkKN2bDAA 1YdPcc2OZzOD/5TzfW8g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nLryO-002BHX-8n; Sun, 20 Feb 2022 19:34:20 +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 1nLry1-002B77-Af for linux-arm-kernel@lists.infradead.org; Sun, 20 Feb 2022 19:33:59 +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 C8C9A60EEE; Sun, 20 Feb 2022 19:33:56 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 275CFC340F0; Sun, 20 Feb 2022 19:33:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1645385636; bh=PP7Ql8/VpGtPQcfuYduzBLTZ6cm6JTEe+hO4/pxzghk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nC0QNVX4tEKKwAFRtbXCCRNiYnrfDi0VrFF3YtWSqolLV1VSp8QoKoPa4jy9y49Am 0uzTyvjgdLOArfJUlDQijNn5WYoTg0qLE4jsanlJ41toX2GD43pyZhf9RoC/py4ar4 SnZgeyk2KgnOGxf7HzGDpBr+Va6iyxs0zQCeJLVvevIUW/6cfsfncBzKhUcTI7WcW1 ucH0f/W4tlto5D9kylm+nELLveJVhBBGjGQHuZIfyaTK3Pj1amy+fmPPMtvuCuWO6s ek4hQB+5+YMt567IgV9AmrKiryibbxuMlUBE+t+FYt92l39R22ieaqE7viajZDH+sf ZJ7itjbZfc/mg== From: =?UTF-8?q?Marek=20Beh=C3=BAn?= To: Lorenzo Pieralisi , Bjorn Helgaas Cc: =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= , Marc Zyngier , pali@kernel.org, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Gregory CLEMENT , Russell King , =?UTF-8?q?Marek=20Beh=C3=BAn?= Subject: [PATCH 02/18] PCI: pci-bridge-emul: Add support for PCIe extended capabilities Date: Sun, 20 Feb 2022 20:33:30 +0100 Message-Id: <20220220193346.23789-3-kabel@kernel.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220220193346.23789-1-kabel@kernel.org> References: <20220220193346.23789-1-kabel@kernel.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220220_113357_477501_F4A9098C X-CRM114-Status: GOOD ( 21.02 ) 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 dHJ1Y3QgcGNpX2JyaWRnZV9yZWdfYmVoYXZpb3I7Ci0tIAoyLjM0LjEKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxp bmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3Rz LmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==