From patchwork Mon Oct 15 09:21:22 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bin Meng X-Patchwork-Id: 984047 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="Ipf9ft5L"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42YYGz2nL3z9sBq for ; Mon, 15 Oct 2018 20:36:27 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 0C781C21E62; Mon, 15 Oct 2018 09:28:23 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_BLOCKED, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 2985AC21D8A; Mon, 15 Oct 2018 09:17:23 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 7F70CC21E89; Mon, 15 Oct 2018 09:17:10 +0000 (UTC) Received: from mail-pl1-f196.google.com (mail-pl1-f196.google.com [209.85.214.196]) by lists.denx.de (Postfix) with ESMTPS id 46C31C21ECF for ; Mon, 15 Oct 2018 09:17:04 +0000 (UTC) Received: by mail-pl1-f196.google.com with SMTP id y11-v6so8992972plt.3 for ; Mon, 15 Oct 2018 02:17:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=s6yUqDPw9ZQmVcHzP0ae2M89ACxoqtUQD3aRs3bgMCc=; b=Ipf9ft5LNbfkhhH7KW1qIjy2c5sjg7JI72rfB/rnm3raPVfS5B8OQJ3yY4EXge3d9K 9wqzuVpCBajvvYOZofd3Ff8iwKh++JVG36w91V46fJcHQsib0rl5Hbz8LoD58ns/BdnY ZIw7NnTnotWxnxvUzyCkbL8MNAlxRShmnYv5seZa3uAmj2Qg9f26bnipJj2EsA1vDgAh zr07+fW2w5RSwUaJaC18jc0IltiKZgHIz8GhNfz1O0Tnz+HV4nul4Pgd7qCIrB+z78XW VzKhC0jLvQsRtzmWHWf/WY0nFMMiv84Hk8kCx6AttL2NMHISiTGFGGclppD5XSNJYkbb wXBQ== 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:message-id:in-reply-to :references; bh=s6yUqDPw9ZQmVcHzP0ae2M89ACxoqtUQD3aRs3bgMCc=; b=Hz7kLwyb+yhUvWsWQ2nc/bDgEM09/2gneEXOQbHRexCv69cyCVRZV90dcofclBICN0 dj+e+XGYD8j+PrFOv0OiiPc8LAbp4qtuD/YfROWjFjAbOz7L1uTxC+eA/CYv5AC2szKk hllAeIF8H10C5aFyijJuJTdGUDUaRAkijkv/ab8+YOhFCcqFOsa/1cdHNyoYN/4NLWKi 0Pb1zRd65RojGGUjLQegEem91fkvyKkCPNxwNODiAqAgwK4GyQMmJOxH3x/2KEJAYPOI 5t0z1kgagR7MHnSiQtQf8vkRIVpXhpSUQ0hzXho8Y68NR9FW/AdxPjA29nHT/V7u7bWx a6Ug== X-Gm-Message-State: ABuFfogara9D5ry6RKs7jq97ICjGsxCTPva30dzcJwfLKMPT35Nw6huF K6d7GgBFawc34b01qpyvkSSwzOIx X-Google-Smtp-Source: ACcGV60Icb/WbGCr78rG7oYYblbfLHZiarttNCbtytX3okPuicJmX17WEmfsElYwX7R0Ka3E/XBSVA== X-Received: by 2002:a17:902:b198:: with SMTP id s24-v6mr15626402plr.70.1539595022980; Mon, 15 Oct 2018 02:17:02 -0700 (PDT) Received: from ala-d2121-lx1.wrs.com (unknown-156-139.windriver.com. [147.11.156.139]) by smtp.gmail.com with ESMTPSA id a11-v6sm10798256pgw.54.2018.10.15.02.17.01 (version=TLS1_1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 15 Oct 2018 02:17:02 -0700 (PDT) From: Bin Meng To: Simon Glass , U-Boot Mailing List Date: Mon, 15 Oct 2018 02:21:22 -0700 Message-Id: <1539595287-31378-27-git-send-email-bmeng.cn@gmail.com> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1539595287-31378-1-git-send-email-bmeng.cn@gmail.com> References: <1539595287-31378-1-git-send-email-bmeng.cn@gmail.com> Subject: [U-Boot] [PATCH v3 26/31] test: dm: pci: Add cases for finding next PCI capability APIs X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Add test cases to cover the two newly added PCI APIs: dm_pci_find_next_capability() & dm_pci_find_next_ext_capability(). Signed-off-by: Bin Meng Reviewed-by: Simon Glass Signed-off-by: Bin Meng Reviewed-by: Simon Glass --- Changes in v3: None Changes in v2: - adjust swap_case driver to handle request from _dm_pci_find_next_capability() drivers/misc/swap_case.c | 9 +++++++++ test/dm/pci.c | 20 ++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/drivers/misc/swap_case.c b/drivers/misc/swap_case.c index bffb809..fa608ce 100644 --- a/drivers/misc/swap_case.c +++ b/drivers/misc/swap_case.c @@ -124,12 +124,21 @@ static int sandbox_swap_case_read_config(struct udevice *emul, uint offset, case PCI_CAP_ID_PM_OFFSET: *valuep = (PCI_CAP_ID_EXP_OFFSET << 8) | PCI_CAP_ID_PM; break; + case PCI_CAP_ID_PM_OFFSET + PCI_CAP_LIST_NEXT: + *valuep = PCI_CAP_ID_EXP_OFFSET; + break; case PCI_CAP_ID_EXP_OFFSET: *valuep = (PCI_CAP_ID_MSIX_OFFSET << 8) | PCI_CAP_ID_EXP; break; + case PCI_CAP_ID_EXP_OFFSET + PCI_CAP_LIST_NEXT: + *valuep = PCI_CAP_ID_MSIX_OFFSET; + break; case PCI_CAP_ID_MSIX_OFFSET: *valuep = PCI_CAP_ID_MSIX; break; + case PCI_CAP_ID_MSIX_OFFSET + PCI_CAP_LIST_NEXT: + *valuep = 0; + break; case PCI_EXT_CAP_ID_ERR_OFFSET: *valuep = (PCI_EXT_CAP_ID_VC_OFFSET << 20) | PCI_EXT_CAP_ID_ERR; break; diff --git a/test/dm/pci.c b/test/dm/pci.c index 8699700..f645b8b 100644 --- a/test/dm/pci.c +++ b/test/dm/pci.c @@ -206,6 +206,16 @@ static int dm_test_pci_cap(struct unit_test_state *uts) cap = dm_pci_find_capability(swap, PCI_CAP_ID_PCIX); ut_asserteq(0, cap); + /* look up PCI_CAP_ID_MSIX starting from PCI_CAP_ID_PM_OFFSET */ + cap = dm_pci_find_next_capability(swap, PCI_CAP_ID_PM_OFFSET, + PCI_CAP_ID_MSIX); + ut_asserteq(PCI_CAP_ID_MSIX_OFFSET, cap); + + /* look up PCI_CAP_ID_VNDR starting from PCI_CAP_ID_EXP_OFFSET */ + cap = dm_pci_find_next_capability(swap, PCI_CAP_ID_EXP_OFFSET, + PCI_CAP_ID_VNDR); + ut_asserteq(0, cap); + ut_assertok(uclass_get_device_by_seq(UCLASS_PCI, 1, &bus)); ut_assertok(dm_pci_bus_find_bdf(PCI_BDF(1, 0x08, 0), &swap)); @@ -217,6 +227,16 @@ static int dm_test_pci_cap(struct unit_test_state *uts) cap = dm_pci_find_ext_capability(swap, PCI_EXT_CAP_ID_SRIOV); ut_asserteq(0, cap); + /* look up PCI_EXT_CAP_ID_DSN starting from PCI_EXT_CAP_ID_ERR_OFFSET */ + cap = dm_pci_find_next_ext_capability(swap, PCI_EXT_CAP_ID_ERR_OFFSET, + PCI_EXT_CAP_ID_DSN); + ut_asserteq(PCI_EXT_CAP_ID_DSN_OFFSET, cap); + + /* look up PCI_EXT_CAP_ID_RCRB starting from PCI_EXT_CAP_ID_VC_OFFSET */ + cap = dm_pci_find_next_ext_capability(swap, PCI_EXT_CAP_ID_VC_OFFSET, + PCI_EXT_CAP_ID_RCRB); + ut_asserteq(0, cap); + return 0; } DM_TEST(dm_test_pci_cap, DM_TESTF_SCAN_PDATA | DM_TESTF_SCAN_FDT);