From patchwork Tue Jul 24 16:41:10 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiang Liu X-Patchwork-Id: 172965 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id A68A82C007F for ; Wed, 25 Jul 2012 02:45:36 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755765Ab2GXQnb (ORCPT ); Tue, 24 Jul 2012 12:43:31 -0400 Received: from mail-pb0-f46.google.com ([209.85.160.46]:64865 "EHLO mail-pb0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755764Ab2GXQna (ORCPT ); Tue, 24 Jul 2012 12:43:30 -0400 Received: by mail-pb0-f46.google.com with SMTP id rp8so12926361pbb.19 for ; Tue, 24 Jul 2012 09:43:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references; bh=kCyOwo5cK0cTWx7Xlg8JUzSeMLyZR1QM/MD/O9v4VOc=; b=FyYtUKZNOFuu7KOJ3k0HoZgoQQVEK+PALbEdtQJPAEyj3sPRxFxVVNKH9JhkWRycEA HYfWd24oIMEbfP4QlAx6djOVby1PuaxgPACanS0oOBoP5efI/T2aXsXzOEF08aSZ8Q9H 9sgRLn+n4Jh1bbV3fD+7V6LmzIPy0AKTMSwrnfAm1tiO4/lJueV+OSjriRUmerGMAgme BSA7EltErILTRSZEwkPl7BChz/0b1zRhEHvIC9qqNV1dzJ82vDtPiC4P7bjLAhKz7/xd uUTHEbJtt/187rc6ufbEdo4ESY9bYKyCfjwGFdqFPAmelEL3DFh3JG2kbQwmbpvZfydN jIkQ== Received: by 10.68.220.104 with SMTP id pv8mr45898703pbc.119.1343148210226; Tue, 24 Jul 2012 09:43:30 -0700 (PDT) Received: from localhost.localdomain ([221.221.26.244]) by mx.google.com with ESMTPS id wk10sm7863878pbc.71.2012.07.24.09.43.18 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 24 Jul 2012 09:43:25 -0700 (PDT) From: Jiang Liu To: Bjorn Helgaas , Don Dutile Cc: Jiang Liu , Yinghai Lu , Taku Izumi , "Rafael J . Wysocki" , Kenji Kaneshige , Yijing Wang , linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, Jiang Liu Subject: [RFC PATCH v2 25/32] PCI/iwl: use PCIe capabilities access functions to simplify implementation Date: Wed, 25 Jul 2012 00:41:10 +0800 Message-Id: <1343148077-25941-2-git-send-email-jiang.liu@huawei.com> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1343148077-25941-1-git-send-email-jiang.liu@huawei.com> References: <1343148077-25941-1-git-send-email-jiang.liu@huawei.com> Sender: linux-pci-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org From: Jiang Liu Use PCIe capabilities access functions to simplify Intel Wireless drivers' implementation. Signed-off-by: Jiang Liu --- drivers/net/wireless/iwlegacy/common.h | 5 ++--- drivers/net/wireless/iwlwifi/iwl-trans-pcie.c | 4 +--- drivers/net/wireless/rtlwifi/pci.c | 8 +++----- 3 files changed, 6 insertions(+), 11 deletions(-) diff --git a/drivers/net/wireless/iwlegacy/common.h b/drivers/net/wireless/iwlegacy/common.h index 5f50177..d119fa3 100644 --- a/drivers/net/wireless/iwlegacy/common.h +++ b/drivers/net/wireless/iwlegacy/common.h @@ -1832,10 +1832,9 @@ int il_enqueue_hcmd(struct il_priv *il, struct il_host_cmd *cmd); static inline u16 il_pcie_link_ctl(struct il_priv *il) { - int pos; u16 pci_lnk_ctl; - pos = pci_pcie_cap(il->pci_dev); - pci_read_config_word(il->pci_dev, pos + PCI_EXP_LNKCTL, &pci_lnk_ctl); + pci_pcie_capability_read_word(il->pci_dev, PCI_EXP_LNKCTL, + &pci_lnk_ctl); return pci_lnk_ctl; } diff --git a/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c b/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c index ec6fb39..48b9561 100644 --- a/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c +++ b/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c @@ -643,15 +643,13 @@ static void iwl_set_pwr_vmain(struct iwl_trans *trans) static u16 iwl_pciexp_link_ctrl(struct iwl_trans *trans) { - int pos; u16 pci_lnk_ctl; struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans); struct pci_dev *pci_dev = trans_pcie->pci_dev; - pos = pci_pcie_cap(pci_dev); - pci_read_config_word(pci_dev, pos + PCI_EXP_LNKCTL, &pci_lnk_ctl); + pci_pcie_capability_read_word(pci_dev, PCI_EXP_LNKCTL, &pci_lnk_ctl); return pci_lnk_ctl; } diff --git a/drivers/net/wireless/rtlwifi/pci.c b/drivers/net/wireless/rtlwifi/pci.c index 2062ea1..1018b5b 100644 --- a/drivers/net/wireless/rtlwifi/pci.c +++ b/drivers/net/wireless/rtlwifi/pci.c @@ -372,13 +372,11 @@ static void rtl_pci_parse_configuration(struct pci_dev *pdev, struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw); u8 tmp; - int pos; - u8 linkctrl_reg; + u16 linkctrl_reg; /*Link Control Register */ - pos = pci_pcie_cap(pdev); - pci_read_config_byte(pdev, pos + PCI_EXP_LNKCTL, &linkctrl_reg); - pcipriv->ndis_adapter.linkctrl_reg = linkctrl_reg; + pci_pcie_capability_read_word(pdev, PCI_EXP_LNKCTL, &linkctrl_reg); + pcipriv->ndis_adapter.linkctrl_reg = (u8)linkctrl_reg; RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, "Link Control Register =%x\n", pcipriv->ndis_adapter.linkctrl_reg);