2011-06-27 17:49:34

by Jon Mason

[permalink] [raw]
Subject: [PATCH 18/19] iwlwifi: remove unnecessary read of PCI_CAP_ID_EXP

The PCIE capability offset is saved during PCI bus walking. It will
remove an unnecessary search in the PCI configuration space if this
value is referenced instead of reacquiring it.

Signed-off-by: Jon Mason <[email protected]>
---
drivers/net/wireless/iwlwifi/iwl-pci.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/net/wireless/iwlwifi/iwl-pci.c b/drivers/net/wireless/iwlwifi/iwl-pci.c
index 7328fbf..60d9140 100644
--- a/drivers/net/wireless/iwlwifi/iwl-pci.c
+++ b/drivers/net/wireless/iwlwifi/iwl-pci.c
@@ -93,7 +93,7 @@ static u16 iwl_pciexp_link_ctrl(struct iwl_bus *bus)
u16 pci_lnk_ctl;
struct pci_dev *pci_dev = IWL_BUS_GET_PCI_DEV(bus);

- pos = pci_find_capability(pci_dev, PCI_CAP_ID_EXP);
+ pos = pci_pcie_cap(priv->pci_dev);
pci_read_config_word(pci_dev, pos + PCI_EXP_LNKCTL, &pci_lnk_ctl);
return pci_lnk_ctl;
}
--
1.7.5.4



2011-06-27 18:58:02

by Wey-Yi Guy

[permalink] [raw]
Subject: Re: [PATCH 18/19] iwlwifi: remove unnecessary read of PCI_CAP_ID_EXP

On Mon, 2011-06-27 at 10:49 -0700, Jon Mason wrote:
> The PCIE capability offset is saved during PCI bus walking. It will
> remove an unnecessary search in the PCI configuration space if this
> value is referenced instead of reacquiring it.
>
> Signed-off-by: Jon Mason <[email protected]>
Signed-off-by: Wey-Yi Guy <[email protected]>
> ---
> drivers/net/wireless/iwlwifi/iwl-pci.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>



2011-06-30 16:00:05

by Wey-Yi Guy

[permalink] [raw]
Subject: Re: [PATCH 18/19 v2] iwlwifi: remove unnecessary read of PCI_CAP_ID_EXP

On Thu, 2011-06-30 at 08:42 -0700, Jon Mason wrote:
> The PCIE capability offset is saved during PCI bus walking. It will
> remove an unnecessary search in the PCI configuration space if this
> value is referenced instead of reacquiring it.
>
> Signed-off-by: Jon Mason <[email protected]>
Acked-by: Wey-Yi Guy <[email protected]>
> ---
> drivers/net/wireless/iwlwifi/iwl-pci.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
compile and work for me now

Wey


2011-06-30 14:40:40

by Jon Mason

[permalink] [raw]
Subject: Re: [PATCH 18/19] iwlwifi: remove unnecessary read of PCI_CAP_ID_EXP

On Wed, Jun 29, 2011 at 2:02 PM, John W. Linville
<[email protected]> wrote:
> On Mon, Jun 27, 2011 at 12:49:29PM -0500, Jon Mason wrote:
>> The PCIE capability offset is saved during PCI bus walking. ?It will
>> remove an unnecessary search in the PCI configuration space if this
>> value is referenced instead of reacquiring it.
>>
>> Signed-off-by: Jon Mason <[email protected]>
>> ---
>> ?drivers/net/wireless/iwlwifi/iwl-pci.c | ? ?2 +-
>> ?1 files changed, 1 insertions(+), 1 deletions(-)
>>
>> diff --git a/drivers/net/wireless/iwlwifi/iwl-pci.c b/drivers/net/wireless/iwlwifi/iwl-pci.c
>> index 7328fbf..60d9140 100644
>> --- a/drivers/net/wireless/iwlwifi/iwl-pci.c
>> +++ b/drivers/net/wireless/iwlwifi/iwl-pci.c
>> @@ -93,7 +93,7 @@ static u16 iwl_pciexp_link_ctrl(struct iwl_bus *bus)
>> ? ? ? u16 pci_lnk_ctl;
>> ? ? ? struct pci_dev *pci_dev = IWL_BUS_GET_PCI_DEV(bus);
>>
>> - ? ? pos = pci_find_capability(pci_dev, PCI_CAP_ID_EXP);
>> + ? ? pos = pci_pcie_cap(priv->pci_dev);
>> ? ? ? pci_read_config_word(pci_dev, pos + PCI_EXP_LNKCTL, &pci_lnk_ctl);
>> ? ? ? return pci_lnk_ctl;
>> ?}
>> --
>> 1.7.5.4
>
> ?CC [M] ?drivers/net/wireless/iwlwifi/iwl-pci.o
> drivers/net/wireless/iwlwifi/iwl-pci.c: In function ?iwl_pciexp_link_ctrl?:
> drivers/net/wireless/iwlwifi/iwl-pci.c:96:21: error: ?priv? undeclared (first use in this function)
> drivers/net/wireless/iwlwifi/iwl-pci.c:96:21: note: each undeclared identifier is reported only once for each function it appears in
> make[2]: *** [drivers/net/wireless/iwlwifi/iwl-pci.o] Error 1
> make[1]: *** [drivers/net/wireless/iwlwifi] Error 2
> make: *** [drivers/net/wireless/] Error 2
>
> Please do make sure to compile patches before sending them to the list.

My apologies. The underlying code changed between when I did the
original version and when it was time to submit. Still, its no excuse
for not at least compiling it.

The fix is an easy one.

- pos = pci_pcie_cap(priv->pci_dev);
+ pos = pci_pcie_cap(pci_dev);

I'll resubmit the whole thing with the proper fix.

Thanks,
Jon

>
> JOhn
> --
> John W. Linville ? ? ? ? ? ? ? ?Someday the world will need a hero, and you
> [email protected] ? ? ? ? ? ? ? ? ?might be all we have. ?Be ready.
>

2011-06-30 15:42:53

by Jon Mason

[permalink] [raw]
Subject: [PATCH 18/19 v2] iwlwifi: remove unnecessary read of PCI_CAP_ID_EXP

The PCIE capability offset is saved during PCI bus walking. It will
remove an unnecessary search in the PCI configuration space if this
value is referenced instead of reacquiring it.

Signed-off-by: Jon Mason <[email protected]>
---
drivers/net/wireless/iwlwifi/iwl-pci.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/net/wireless/iwlwifi/iwl-pci.c b/drivers/net/wireless/iwlwifi/iwl-pci.c
index 7328fbf..068b9ae 100644
--- a/drivers/net/wireless/iwlwifi/iwl-pci.c
+++ b/drivers/net/wireless/iwlwifi/iwl-pci.c
@@ -93,7 +93,7 @@ static u16 iwl_pciexp_link_ctrl(struct iwl_bus *bus)
u16 pci_lnk_ctl;
struct pci_dev *pci_dev = IWL_BUS_GET_PCI_DEV(bus);

- pos = pci_find_capability(pci_dev, PCI_CAP_ID_EXP);
+ pos = pci_pcie_cap(pci_dev);
pci_read_config_word(pci_dev, pos + PCI_EXP_LNKCTL, &pci_lnk_ctl);
return pci_lnk_ctl;
}
--
1.7.5.4


2011-06-29 19:16:44

by John W. Linville

[permalink] [raw]
Subject: Re: [PATCH 18/19] iwlwifi: remove unnecessary read of PCI_CAP_ID_EXP

On Mon, Jun 27, 2011 at 12:49:29PM -0500, Jon Mason wrote:
> The PCIE capability offset is saved during PCI bus walking. It will
> remove an unnecessary search in the PCI configuration space if this
> value is referenced instead of reacquiring it.
>
> Signed-off-by: Jon Mason <[email protected]>
> ---
> drivers/net/wireless/iwlwifi/iwl-pci.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/net/wireless/iwlwifi/iwl-pci.c b/drivers/net/wireless/iwlwifi/iwl-pci.c
> index 7328fbf..60d9140 100644
> --- a/drivers/net/wireless/iwlwifi/iwl-pci.c
> +++ b/drivers/net/wireless/iwlwifi/iwl-pci.c
> @@ -93,7 +93,7 @@ static u16 iwl_pciexp_link_ctrl(struct iwl_bus *bus)
> u16 pci_lnk_ctl;
> struct pci_dev *pci_dev = IWL_BUS_GET_PCI_DEV(bus);
>
> - pos = pci_find_capability(pci_dev, PCI_CAP_ID_EXP);
> + pos = pci_pcie_cap(priv->pci_dev);
> pci_read_config_word(pci_dev, pos + PCI_EXP_LNKCTL, &pci_lnk_ctl);
> return pci_lnk_ctl;
> }
> --
> 1.7.5.4

CC [M] drivers/net/wireless/iwlwifi/iwl-pci.o
drivers/net/wireless/iwlwifi/iwl-pci.c: In function ‘iwl_pciexp_link_ctrl’:
drivers/net/wireless/iwlwifi/iwl-pci.c:96:21: error: ‘priv’ undeclared (first use in this function)
drivers/net/wireless/iwlwifi/iwl-pci.c:96:21: note: each undeclared identifier is reported only once for each function it appears in
make[2]: *** [drivers/net/wireless/iwlwifi/iwl-pci.o] Error 1
make[1]: *** [drivers/net/wireless/iwlwifi] Error 2
make: *** [drivers/net/wireless/] Error 2

Please do make sure to compile patches before sending them to the list.

JOhn
--
John W. Linville Someday the world will need a hero, and you
[email protected] might be all we have. Be ready.