Received: by 2002:a05:6a10:d5a5:0:0:0:0 with SMTP id gn37csp3417267pxb; Sat, 9 Oct 2021 09:49:50 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwK5xSubXXMmTtxmRS+SJDtw9ZuRxlrp8OJtsJ6nZecYhamAp/z9JxzfW72U4lo3WoGsaY7 X-Received: by 2002:a17:906:3148:: with SMTP id e8mr12943975eje.240.1633798190201; Sat, 09 Oct 2021 09:49:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1633798190; cv=none; d=google.com; s=arc-20160816; b=YZBGGMwfWENCMNIf67lW6dY0M31j9C5BxMAE/Mp175kcE2zNY902/7tgd+IdTR6Fqw Df1N7ByyHY8+9grUNMbIFDNiSBO5U2Nf/2JK8fJbsDoshJ5xLeSqkJproIQiZhl43rGD fstl0cOkTR8auATAnG0hoNHM3Uhhze66jE4Ub/FAazninIF2msdaPD6oKRjbnWfWnVVz sEudZC/B1Q/ObWfV8JrQAVlN/GgpU3M+JXQ5uYSGJoZoNiUS4ufXsI5624RAWj3+ipax lcsjBex+fxflb+djsLo9olYdghvsGjtvzJyVG7WUNTpbXRO4uK0+/8goV8nNJgAqd1wi pxmA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:cc:to:from :subject; bh=XbQFeGoD3oQiE1pPExGz7QdSTM6I6Sel0Yp2BARnAQQ=; b=hZLmIkpsMNgtgptvB1IEiagJ9qk7cZquXh5xe4clcDBjZ/jSk4J4JKv23AV1ShU0Vf c3I+jJ/VmrvQLRHNc3zCD4BClhlHsp8nOf9ppYhZhGntEvbXSZA1cgFdu8lDxkUr+fki /H7xQJQdVVd75fvFpES7ZsyROMrFmcB/4OiAFZqecEIr2Fiep4PIJTlSD1aoimT3nIt5 BF3HqdN2sqmOrA3mr/tdaj0kxCGDCfgxf1UfC1LqQfuSTlgtVp04/brKEXHsr7gMJsmh fM0PpjGGTiS79+/Zt/0oKtYZG6fH2LSKWM3pBCEdKMIvm4XPgR7ftKPrgIDBcFimO55J oLAQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id nb21si5147746ejc.63.2021.10.09.09.49.26; Sat, 09 Oct 2021 09:49:50 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232802AbhJIQqv (ORCPT + 99 others); Sat, 9 Oct 2021 12:46:51 -0400 Received: from mga02.intel.com ([134.134.136.20]:6955 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232387AbhJIQqt (ORCPT ); Sat, 9 Oct 2021 12:46:49 -0400 X-IronPort-AV: E=McAfee;i="6200,9189,10132"; a="213816794" X-IronPort-AV: E=Sophos;i="5.85,360,1624345200"; d="scan'208";a="213816794" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2021 09:44:51 -0700 X-IronPort-AV: E=Sophos;i="5.85,360,1624345200"; d="scan'208";a="546557593" Received: from dwillia2-desk3.jf.intel.com (HELO dwillia2-desk3.amr.corp.intel.com) ([10.54.39.25]) by fmsmga004-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2021 09:44:51 -0700 Subject: [PATCH v3 10/10] ocxl: Use pci core's DVSEC functionality From: Dan Williams To: linux-cxl@vger.kernel.org Cc: linuxppc-dev@lists.ozlabs.org, Andrew Donnellan , Frederic Barrat , Ben Widawsky , Andrew Donnellan , linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, hch@lst.de Date: Sat, 09 Oct 2021 09:44:50 -0700 Message-ID: <163379789065.692348.7117946955275586530.stgit@dwillia2-desk3.amr.corp.intel.com> In-Reply-To: <163379783658.692348.16064992154261275220.stgit@dwillia2-desk3.amr.corp.intel.com> References: <163379783658.692348.16064992154261275220.stgit@dwillia2-desk3.amr.corp.intel.com> User-Agent: StGit/0.18-3-g996c MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Ben Widawsky Reduce maintenance burden of DVSEC query implementation by using the centralized PCI core implementation. There are two obvious places to simply drop in the new core implementation. There remains find_dvsec_from_pos() which would benefit from using a core implementation. As that change is less trivial it is reserved for later. Cc: linuxppc-dev@lists.ozlabs.org Cc: Andrew Donnellan Acked-by: Frederic Barrat (v1) Signed-off-by: Ben Widawsky Reviewed-by: Andrew Donnellan Signed-off-by: Dan Williams --- arch/powerpc/platforms/powernv/ocxl.c | 3 ++- drivers/misc/ocxl/config.c | 13 +------------ 2 files changed, 3 insertions(+), 13 deletions(-) diff --git a/arch/powerpc/platforms/powernv/ocxl.c b/arch/powerpc/platforms/powernv/ocxl.c index 9105efcf242a..28b009b46464 100644 --- a/arch/powerpc/platforms/powernv/ocxl.c +++ b/arch/powerpc/platforms/powernv/ocxl.c @@ -107,7 +107,8 @@ static int get_max_afu_index(struct pci_dev *dev, int *afu_idx) int pos; u32 val; - pos = find_dvsec_from_pos(dev, OCXL_DVSEC_FUNC_ID, 0); + pos = pci_find_dvsec_capability(dev, PCI_VENDOR_ID_IBM, + OCXL_DVSEC_FUNC_ID); if (!pos) return -ESRCH; diff --git a/drivers/misc/ocxl/config.c b/drivers/misc/ocxl/config.c index a68738f38252..e401a51596b9 100644 --- a/drivers/misc/ocxl/config.c +++ b/drivers/misc/ocxl/config.c @@ -33,18 +33,7 @@ static int find_dvsec(struct pci_dev *dev, int dvsec_id) { - int vsec = 0; - u16 vendor, id; - - while ((vsec = pci_find_next_ext_capability(dev, vsec, - OCXL_EXT_CAP_ID_DVSEC))) { - pci_read_config_word(dev, vsec + OCXL_DVSEC_VENDOR_OFFSET, - &vendor); - pci_read_config_word(dev, vsec + OCXL_DVSEC_ID_OFFSET, &id); - if (vendor == PCI_VENDOR_ID_IBM && id == dvsec_id) - return vsec; - } - return 0; + return pci_find_dvsec_capability(dev, PCI_VENDOR_ID_IBM, dvsec_id); } static int find_dvsec_afu_ctrl(struct pci_dev *dev, u8 afu_idx)