From patchwork Wed Sep 19 16:03:41 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Ga=C3=ABtan_Rivet?= X-Patchwork-Id: 44968 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 9ACC96833; Wed, 19 Sep 2018 18:04:29 +0200 (CEST) Received: from mail-wr1-f65.google.com (mail-wr1-f65.google.com [209.85.221.65]) by dpdk.org (Postfix) with ESMTP id 726DC5B2A for ; Wed, 19 Sep 2018 18:04:16 +0200 (CEST) Received: by mail-wr1-f65.google.com with SMTP id s14-v6so6373899wrw.6 for ; Wed, 19 Sep 2018 09:04:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=6wind-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=Y6jV5XIj0NTjesvwYbUZS2tBpeI8hhXdYdRrFiW7Wpc=; b=JftzbH9LNMP/X59w6NDM4iiHN0fZ3SslwGauVi816e7czv+LpB439SSP6gG1EjCmXS KVpt1sWOSoTH8uxqDXcyDnCtndIaSdik1GGDvet4+acMFGVF1G00gsBX51Ym0PupvQNe hdEtM2FxKoUx+RXGacrt6o9IaX33aIxhfEaLEqhMFm1uZrDlAr1c0xA6+oXGCsYgil61 SfVMix++AK7N2m0o6jtWFc5/YsWn4aONxGdP9Pvn76lsp1Xgl+1L04Oy2AtF3meLANdj She8gIc3ctt55X6svFmGP5V1YoTSPGJH8rpnr5oPkabihIDfJtfj+A5yZGepKI5EeibQ mEQw== 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=Y6jV5XIj0NTjesvwYbUZS2tBpeI8hhXdYdRrFiW7Wpc=; b=MEm6RD5S2NrDo+rh/Ktg5dmVxmggJL1QeomcrhDihD6oZam0lYL0Fgb6sLPfOGXY17 TizzKIls0gJb0Z/koJKRyrItIAV4+x9EPoASOtH3pXDEDjSeu3pF+s7bswaCOZqlQzsa 4tNrnW4pXcILcg3GBJjMcETkzDRDWtxOwU4tSq1CybeSNCDBaTLWoQs4g83xKzMR0W8M HxLS+o+ZzHCxxZBFuxp5DwvKCQqx8H/eKbAw8zEn2XNp4L61WZ4ue0+jDbRHCWugZVDA yfB+3KuOTeJXHPeLrNSUkR/Tab06nteSa8KgXPC7ydN3QSFSRDTeC2BQ+YSyUTKtZu7B H5kA== X-Gm-Message-State: APzg51BsAmZEjK6Z33h2gygCj8b1Bbw5MOA4knQ7VmZlqrUrI1L3ebKa hfHXNseiAum7IoHK6bW+x4FNsXikEJE= X-Google-Smtp-Source: ANB0VdYepXr3dOCltiwbc16cIRQT6q8/bb8+facgeHCzIjs8iBNeEhLpyV01reLJUPifeL1vCZ66FQ== X-Received: by 2002:a05:6000:104a:: with SMTP id c10mr28105334wrx.271.1537373055551; Wed, 19 Sep 2018 09:04:15 -0700 (PDT) Received: from bidouze.dev.6wind.com. (host.78.145.23.62.rev.coltfrance.com. [62.23.145.78]) by smtp.gmail.com with ESMTPSA id x24-v6sm34983671wrd.13.2018.09.19.09.04.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 19 Sep 2018 09:04:14 -0700 (PDT) From: Gaetan Rivet To: dev@dpdk.org Cc: Gaetan Rivet Date: Wed, 19 Sep 2018 18:03:41 +0200 Message-Id: X-Mailer: git-send-email 2.18.0 In-Reply-To: References: Subject: [dpdk-dev] [PATCH v2 11/13] bus/pci: process declarative PCI devargs X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Introduce the facility to process future PCI parameters. Once the matching between PCI devices and devargs has been done, it is possible to process each devargs. New parameters would have the PCI device handle to work with when parsing the device (bus specific) parameters. Signed-off-by: Gaetan Rivet --- drivers/bus/pci/pci_common.c | 3 +++ drivers/bus/pci/pci_params.c | 7 +++++++ drivers/bus/pci/private.h | 13 +++++++++++++ 3 files changed, 23 insertions(+) diff --git a/drivers/bus/pci/pci_common.c b/drivers/bus/pci/pci_common.c index c7695d108..900cd9090 100644 --- a/drivers/bus/pci/pci_common.c +++ b/drivers/bus/pci/pci_common.c @@ -247,6 +247,9 @@ pci_probe_all_drivers(struct rte_pci_device *dev) if (dev->driver != NULL) return 0; + if (rte_pci_devargs_process(dev) < 0) + return -1; + FOREACH_DRIVER_ON_PCIBUS(dr) { rc = rte_pci_probe_one_driver(dr, dev); if (rc < 0) diff --git a/drivers/bus/pci/pci_params.c b/drivers/bus/pci/pci_params.c index a09af3b1c..31143c845 100644 --- a/drivers/bus/pci/pci_params.c +++ b/drivers/bus/pci/pci_params.c @@ -127,3 +127,10 @@ rte_pci_devargs_prepare(struct rte_devargs *devargs) rte_kvargs_free(kvargs); return ret; } + +int +rte_pci_devargs_process(struct rte_pci_device *pdev __rte_unused) +{ + /* For the moment, no PCI param needs to be processed. */ + return 0; +} diff --git a/drivers/bus/pci/private.h b/drivers/bus/pci/private.h index 9beb24c6a..06dc85e85 100644 --- a/drivers/bus/pci/private.h +++ b/drivers/bus/pci/private.h @@ -207,4 +207,17 @@ rte_pci_dev_iterate(const void *start, int rte_pci_devargs_prepare(struct rte_devargs *da); +/* + * Process the device devargs, if any. + * + * @param pdev + * PCI device + * + * @return + * 0 on success. + * <0 on error. + */ +int +rte_pci_devargs_process(struct rte_pci_device *pdev); + #endif /* _PCI_PRIVATE_H_ */