Patchwork [-v5,1/8] PCI/IA64: SN: remove sn_pci_window_fixup()

login
register
mail settings
Submitter Yijing Wang
Date June 6, 2013, 7:34 a.m.
Message ID <1370504093-14908-2-git-send-email-wangyijing@huawei.com>
Download mbox | patch
Permalink /patch/249309/
State Not Applicable
Headers show

Comments

Yijing Wang - June 6, 2013, 7:34 a.m.
Currently, pcibios_bus_to_resource() and pcibios_resource_to_bus()
functions use pci_host_bridge_window in pci_host_bridge to translate
bus side to/from cpu side addresses. Pci_window in pci_controller
under IA64 is no used again, so it's no need to use sn_pci_window_fixup()
to setup pci_window again, remove it.

Signed-off-by: Yijing Wang <wangyijing@huawei.com>
Cc: John Keller <jpk@sgi.com>
Cc: Jay Lan <jlan@engr.sgi.com>
Cc: Jack Steiner <steiner@sgi.com>
Cc: Mark Maule <maule@sgi.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Fenghua Yu <fenghua.yu@intel.com>
Cc: linux-ia64@vger.kernel.org
---
 arch/ia64/sn/kernel/io_init.c |   53 -----------------------------------------
 1 files changed, 0 insertions(+), 53 deletions(-)
Yijing Wang - June 14, 2013, 8:42 a.m.
Hi Bjorn,
   Do you know some body who still maintains SGI related code? I found some email delivery failures
to John Keller <jpk@sgi.com>, Jack Steiner <steiner@sgi.com>, Mark Maule <maule@sgi.com>.

Some messages like this:
   ----- The following addresses had permanent delivery errors -----
jpk@sgi.com
steiner@sgi.com
maule@sgi.com

So these email address does not exist anymore ?

BTW, any chance to merge this series into 3.11? If there are still some problems, I
will try my best to fix them.


Thanks!
Yijing.

On 2013/6/6 15:34, Yijing Wang wrote:
> Currently, pcibios_bus_to_resource() and pcibios_resource_to_bus()
> functions use pci_host_bridge_window in pci_host_bridge to translate
> bus side to/from cpu side addresses. Pci_window in pci_controller
> under IA64 is no used again, so it's no need to use sn_pci_window_fixup()
> to setup pci_window again, remove it.
> 
> Signed-off-by: Yijing Wang <wangyijing@huawei.com>
> Cc: John Keller <jpk@sgi.com>
> Cc: Jay Lan <jlan@engr.sgi.com>
> Cc: Jack Steiner <steiner@sgi.com>
> Cc: Mark Maule <maule@sgi.com>
> Cc: Tony Luck <tony.luck@intel.com>
> Cc: Fenghua Yu <fenghua.yu@intel.com>
> Cc: linux-ia64@vger.kernel.org
> ---
>  arch/ia64/sn/kernel/io_init.c |   53 -----------------------------------------
>  1 files changed, 0 insertions(+), 53 deletions(-)
> 
> diff --git a/arch/ia64/sn/kernel/io_init.c b/arch/ia64/sn/kernel/io_init.c
> index 238e2c5..06a172c 100644
> --- a/arch/ia64/sn/kernel/io_init.c
> +++ b/arch/ia64/sn/kernel/io_init.c
> @@ -149,48 +149,6 @@ sn_legacy_pci_window_fixup(struct pci_controller *controller,
>  }
>  
>  /*
> - * sn_pci_window_fixup() - Create a pci_window for each device resource.
> - *			   It will setup pci_windows for use by
> - *			   pcibios_bus_to_resource(), pcibios_resource_to_bus(),
> - *			   etc.
> - */
> -static void
> -sn_pci_window_fixup(struct pci_dev *dev, unsigned int count,
> -		    s64 * pci_addrs)
> -{
> -	struct pci_controller *controller = PCI_CONTROLLER(dev->bus);
> -	unsigned int i;
> -	unsigned int idx;
> -	unsigned int new_count;
> -	struct pci_window *new_window;
> -
> -	if (count == 0)
> -		return;
> -	idx = controller->windows;
> -	new_count = controller->windows + count;
> -	new_window = kcalloc(new_count, sizeof(struct pci_window), GFP_KERNEL);
> -	BUG_ON(new_window == NULL);
> -	if (controller->window) {
> -		memcpy(new_window, controller->window,
> -		       sizeof(struct pci_window) * controller->windows);
> -		kfree(controller->window);
> -	}
> -
> -	/* Setup a pci_window for each device resource. */
> -	for (i = 0; i <= PCI_ROM_RESOURCE; i++) {
> -		if (pci_addrs[i] == -1)
> -			continue;
> -
> -		new_window[idx].offset = dev->resource[i].start - pci_addrs[i];
> -		new_window[idx].resource = dev->resource[i];
> -		idx++;
> -	}
> -
> -	controller->windows = new_count;
> -	controller->window = new_window;
> -}
> -
> -/*
>   * sn_io_slot_fixup() -   We are not running with an ACPI capable PROM,
>   *			  and need to convert the pci_dev->resource
>   *			  'start' and 'end' addresses to mapped addresses,
> @@ -199,9 +157,7 @@ sn_pci_window_fixup(struct pci_dev *dev, unsigned int count,
>  void
>  sn_io_slot_fixup(struct pci_dev *dev)
>  {
> -	unsigned int count = 0;
>  	int idx;
> -	s64 pci_addrs[PCI_ROM_RESOURCE + 1];
>  	unsigned long addr, end, size, start;
>  	struct pcidev_info *pcidev_info;
>  	struct sn_irq_info *sn_irq_info;
> @@ -229,7 +185,6 @@ sn_io_slot_fixup(struct pci_dev *dev)
>  	for (idx = 0; idx <= PCI_ROM_RESOURCE; idx++) {
>  
>  		if (!pcidev_info->pdi_pio_mapped_addr[idx]) {
> -			pci_addrs[idx] = -1;
>  			continue;
>  		}
>  
> @@ -237,11 +192,8 @@ sn_io_slot_fixup(struct pci_dev *dev)
>  		end = dev->resource[idx].end;
>  		size = end - start;
>  		if (size == 0) {
> -			pci_addrs[idx] = -1;
>  			continue;
>  		}
> -		pci_addrs[idx] = start;
> -		count++;
>  		addr = pcidev_info->pdi_pio_mapped_addr[idx];
>  		addr = ((addr << 4) >> 4) | __IA64_UNCACHED_OFFSET;
>  		dev->resource[idx].start = addr;
> @@ -276,11 +228,6 @@ sn_io_slot_fixup(struct pci_dev *dev)
>  						 IORESOURCE_ROM_BIOS_COPY;
>  		}
>  	}
> -	/* Create a pci_window in the pci_controller struct for
> -	 * each device resource.
> -	 */
> -	if (count > 0)
> -		sn_pci_window_fixup(dev, count, pci_addrs);
>  
>  	sn_pci_fixup_slot(dev, pcidev_info, sn_irq_info);
>  }
>
Bjorn Helgaas - June 15, 2013, 12:48 a.m.
On Fri, Jun 14, 2013 at 2:42 AM, Yijing Wang <wangyijing@huawei.com> wrote:
> Hi Bjorn,
>    Do you know some body who still maintains SGI related code? I found some email delivery failures
> to John Keller <jpk@sgi.com>, Jack Steiner <steiner@sgi.com>, Mark Maule <maule@sgi.com>.
>
> Some messages like this:
>    ----- The following addresses had permanent delivery errors -----
> jpk@sgi.com
> steiner@sgi.com
> maule@sgi.com
>
> So these email address does not exist anymore ?

There are still some @sgi.com email addresses in MAINTAINERS, though I
don't think there's an explicit Altix maintainer anymore.

> BTW, any chance to merge this series into 3.11? If there are still some problems, I
> will try my best to fix them.

I'm not opposed to merging it for v3.11, but I poked Tony since it
only touches ia64, and I don't think it actually depends on any
changes in the PCI core.

Bjorn

> On 2013/6/6 15:34, Yijing Wang wrote:
>> Currently, pcibios_bus_to_resource() and pcibios_resource_to_bus()
>> functions use pci_host_bridge_window in pci_host_bridge to translate
>> bus side to/from cpu side addresses. Pci_window in pci_controller
>> under IA64 is no used again, so it's no need to use sn_pci_window_fixup()
>> to setup pci_window again, remove it.
>>
>> Signed-off-by: Yijing Wang <wangyijing@huawei.com>
>> Cc: John Keller <jpk@sgi.com>
>> Cc: Jay Lan <jlan@engr.sgi.com>
>> Cc: Jack Steiner <steiner@sgi.com>
>> Cc: Mark Maule <maule@sgi.com>
>> Cc: Tony Luck <tony.luck@intel.com>
>> Cc: Fenghua Yu <fenghua.yu@intel.com>
>> Cc: linux-ia64@vger.kernel.org
>> ---
>>  arch/ia64/sn/kernel/io_init.c |   53 -----------------------------------------
>>  1 files changed, 0 insertions(+), 53 deletions(-)
>>
>> diff --git a/arch/ia64/sn/kernel/io_init.c b/arch/ia64/sn/kernel/io_init.c
>> index 238e2c5..06a172c 100644
>> --- a/arch/ia64/sn/kernel/io_init.c
>> +++ b/arch/ia64/sn/kernel/io_init.c
>> @@ -149,48 +149,6 @@ sn_legacy_pci_window_fixup(struct pci_controller *controller,
>>  }
>>
>>  /*
>> - * sn_pci_window_fixup() - Create a pci_window for each device resource.
>> - *                      It will setup pci_windows for use by
>> - *                      pcibios_bus_to_resource(), pcibios_resource_to_bus(),
>> - *                      etc.
>> - */
>> -static void
>> -sn_pci_window_fixup(struct pci_dev *dev, unsigned int count,
>> -                 s64 * pci_addrs)
>> -{
>> -     struct pci_controller *controller = PCI_CONTROLLER(dev->bus);
>> -     unsigned int i;
>> -     unsigned int idx;
>> -     unsigned int new_count;
>> -     struct pci_window *new_window;
>> -
>> -     if (count == 0)
>> -             return;
>> -     idx = controller->windows;
>> -     new_count = controller->windows + count;
>> -     new_window = kcalloc(new_count, sizeof(struct pci_window), GFP_KERNEL);
>> -     BUG_ON(new_window == NULL);
>> -     if (controller->window) {
>> -             memcpy(new_window, controller->window,
>> -                    sizeof(struct pci_window) * controller->windows);
>> -             kfree(controller->window);
>> -     }
>> -
>> -     /* Setup a pci_window for each device resource. */
>> -     for (i = 0; i <= PCI_ROM_RESOURCE; i++) {
>> -             if (pci_addrs[i] == -1)
>> -                     continue;
>> -
>> -             new_window[idx].offset = dev->resource[i].start - pci_addrs[i];
>> -             new_window[idx].resource = dev->resource[i];
>> -             idx++;
>> -     }
>> -
>> -     controller->windows = new_count;
>> -     controller->window = new_window;
>> -}
>> -
>> -/*
>>   * sn_io_slot_fixup() -   We are not running with an ACPI capable PROM,
>>   *                     and need to convert the pci_dev->resource
>>   *                     'start' and 'end' addresses to mapped addresses,
>> @@ -199,9 +157,7 @@ sn_pci_window_fixup(struct pci_dev *dev, unsigned int count,
>>  void
>>  sn_io_slot_fixup(struct pci_dev *dev)
>>  {
>> -     unsigned int count = 0;
>>       int idx;
>> -     s64 pci_addrs[PCI_ROM_RESOURCE + 1];
>>       unsigned long addr, end, size, start;
>>       struct pcidev_info *pcidev_info;
>>       struct sn_irq_info *sn_irq_info;
>> @@ -229,7 +185,6 @@ sn_io_slot_fixup(struct pci_dev *dev)
>>       for (idx = 0; idx <= PCI_ROM_RESOURCE; idx++) {
>>
>>               if (!pcidev_info->pdi_pio_mapped_addr[idx]) {
>> -                     pci_addrs[idx] = -1;
>>                       continue;
>>               }
>>
>> @@ -237,11 +192,8 @@ sn_io_slot_fixup(struct pci_dev *dev)
>>               end = dev->resource[idx].end;
>>               size = end - start;
>>               if (size == 0) {
>> -                     pci_addrs[idx] = -1;
>>                       continue;
>>               }
>> -             pci_addrs[idx] = start;
>> -             count++;
>>               addr = pcidev_info->pdi_pio_mapped_addr[idx];
>>               addr = ((addr << 4) >> 4) | __IA64_UNCACHED_OFFSET;
>>               dev->resource[idx].start = addr;
>> @@ -276,11 +228,6 @@ sn_io_slot_fixup(struct pci_dev *dev)
>>                                                IORESOURCE_ROM_BIOS_COPY;
>>               }
>>       }
>> -     /* Create a pci_window in the pci_controller struct for
>> -      * each device resource.
>> -      */
>> -     if (count > 0)
>> -             sn_pci_window_fixup(dev, count, pci_addrs);
>>
>>       sn_pci_fixup_slot(dev, pcidev_info, sn_irq_info);
>>  }
>>
>
>
> --
> Thanks!
> Yijing
>
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Yijing Wang - June 17, 2013, 3:01 a.m.
On 2013/6/15 8:48, Bjorn Helgaas wrote:
> On Fri, Jun 14, 2013 at 2:42 AM, Yijing Wang <wangyijing@huawei.com> wrote:
>> Hi Bjorn,
>>    Do you know some body who still maintains SGI related code? I found some email delivery failures
>> to John Keller <jpk@sgi.com>, Jack Steiner <steiner@sgi.com>, Mark Maule <maule@sgi.com>.
>>
>> Some messages like this:
>>    ----- The following addresses had permanent delivery errors -----
>> jpk@sgi.com
>> steiner@sgi.com
>> maule@sgi.com
>>
>> So these email address does not exist anymore ?
> 
> There are still some @sgi.com email addresses in MAINTAINERS, though I
> don't think there's an explicit Altix maintainer anymore.
> 
>> BTW, any chance to merge this series into 3.11? If there are still some problems, I
>> will try my best to fix them.
> 
> I'm not opposed to merging it for v3.11, but I poked Tony since it
> only touches ia64, and I don't think it actually depends on any
> changes in the PCI core.

Hi Bjorn,
   Thanks for your help! I will try to explain this series to Tony, Hope he will like this series.

Thanks!
Yijing.

> 
> Bjorn
> 
>> On 2013/6/6 15:34, Yijing Wang wrote:
>>> Currently, pcibios_bus_to_resource() and pcibios_resource_to_bus()
>>> functions use pci_host_bridge_window in pci_host_bridge to translate
>>> bus side to/from cpu side addresses. Pci_window in pci_controller
>>> under IA64 is no used again, so it's no need to use sn_pci_window_fixup()
>>> to setup pci_window again, remove it.
>>>
>>> Signed-off-by: Yijing Wang <wangyijing@huawei.com>
>>> Cc: John Keller <jpk@sgi.com>
>>> Cc: Jay Lan <jlan@engr.sgi.com>
>>> Cc: Jack Steiner <steiner@sgi.com>
>>> Cc: Mark Maule <maule@sgi.com>
>>> Cc: Tony Luck <tony.luck@intel.com>
>>> Cc: Fenghua Yu <fenghua.yu@intel.com>
>>> Cc: linux-ia64@vger.kernel.org
>>> ---
>>>  arch/ia64/sn/kernel/io_init.c |   53 -----------------------------------------
>>>  1 files changed, 0 insertions(+), 53 deletions(-)
>>>
>>> diff --git a/arch/ia64/sn/kernel/io_init.c b/arch/ia64/sn/kernel/io_init.c
>>> index 238e2c5..06a172c 100644
>>> --- a/arch/ia64/sn/kernel/io_init.c
>>> +++ b/arch/ia64/sn/kernel/io_init.c
>>> @@ -149,48 +149,6 @@ sn_legacy_pci_window_fixup(struct pci_controller *controller,
>>>  }
>>>
>>>  /*
>>> - * sn_pci_window_fixup() - Create a pci_window for each device resource.
>>> - *                      It will setup pci_windows for use by
>>> - *                      pcibios_bus_to_resource(), pcibios_resource_to_bus(),
>>> - *                      etc.
>>> - */
>>> -static void
>>> -sn_pci_window_fixup(struct pci_dev *dev, unsigned int count,
>>> -                 s64 * pci_addrs)
>>> -{
>>> -     struct pci_controller *controller = PCI_CONTROLLER(dev->bus);
>>> -     unsigned int i;
>>> -     unsigned int idx;
>>> -     unsigned int new_count;
>>> -     struct pci_window *new_window;
>>> -
>>> -     if (count == 0)
>>> -             return;
>>> -     idx = controller->windows;
>>> -     new_count = controller->windows + count;
>>> -     new_window = kcalloc(new_count, sizeof(struct pci_window), GFP_KERNEL);
>>> -     BUG_ON(new_window == NULL);
>>> -     if (controller->window) {
>>> -             memcpy(new_window, controller->window,
>>> -                    sizeof(struct pci_window) * controller->windows);
>>> -             kfree(controller->window);
>>> -     }
>>> -
>>> -     /* Setup a pci_window for each device resource. */
>>> -     for (i = 0; i <= PCI_ROM_RESOURCE; i++) {
>>> -             if (pci_addrs[i] == -1)
>>> -                     continue;
>>> -
>>> -             new_window[idx].offset = dev->resource[i].start - pci_addrs[i];
>>> -             new_window[idx].resource = dev->resource[i];
>>> -             idx++;
>>> -     }
>>> -
>>> -     controller->windows = new_count;
>>> -     controller->window = new_window;
>>> -}
>>> -
>>> -/*
>>>   * sn_io_slot_fixup() -   We are not running with an ACPI capable PROM,
>>>   *                     and need to convert the pci_dev->resource
>>>   *                     'start' and 'end' addresses to mapped addresses,
>>> @@ -199,9 +157,7 @@ sn_pci_window_fixup(struct pci_dev *dev, unsigned int count,
>>>  void
>>>  sn_io_slot_fixup(struct pci_dev *dev)
>>>  {
>>> -     unsigned int count = 0;
>>>       int idx;
>>> -     s64 pci_addrs[PCI_ROM_RESOURCE + 1];
>>>       unsigned long addr, end, size, start;
>>>       struct pcidev_info *pcidev_info;
>>>       struct sn_irq_info *sn_irq_info;
>>> @@ -229,7 +185,6 @@ sn_io_slot_fixup(struct pci_dev *dev)
>>>       for (idx = 0; idx <= PCI_ROM_RESOURCE; idx++) {
>>>
>>>               if (!pcidev_info->pdi_pio_mapped_addr[idx]) {
>>> -                     pci_addrs[idx] = -1;
>>>                       continue;
>>>               }
>>>
>>> @@ -237,11 +192,8 @@ sn_io_slot_fixup(struct pci_dev *dev)
>>>               end = dev->resource[idx].end;
>>>               size = end - start;
>>>               if (size == 0) {
>>> -                     pci_addrs[idx] = -1;
>>>                       continue;
>>>               }
>>> -             pci_addrs[idx] = start;
>>> -             count++;
>>>               addr = pcidev_info->pdi_pio_mapped_addr[idx];
>>>               addr = ((addr << 4) >> 4) | __IA64_UNCACHED_OFFSET;
>>>               dev->resource[idx].start = addr;
>>> @@ -276,11 +228,6 @@ sn_io_slot_fixup(struct pci_dev *dev)
>>>                                                IORESOURCE_ROM_BIOS_COPY;
>>>               }
>>>       }
>>> -     /* Create a pci_window in the pci_controller struct for
>>> -      * each device resource.
>>> -      */
>>> -     if (count > 0)
>>> -             sn_pci_window_fixup(dev, count, pci_addrs);
>>>
>>>       sn_pci_fixup_slot(dev, pcidev_info, sn_irq_info);
>>>  }
>>>
>>
>>
>> --
>> Thanks!
>> Yijing
>>
> 
> .
>

Patch

diff --git a/arch/ia64/sn/kernel/io_init.c b/arch/ia64/sn/kernel/io_init.c
index 238e2c5..06a172c 100644
--- a/arch/ia64/sn/kernel/io_init.c
+++ b/arch/ia64/sn/kernel/io_init.c
@@ -149,48 +149,6 @@  sn_legacy_pci_window_fixup(struct pci_controller *controller,
 }
 
 /*
- * sn_pci_window_fixup() - Create a pci_window for each device resource.
- *			   It will setup pci_windows for use by
- *			   pcibios_bus_to_resource(), pcibios_resource_to_bus(),
- *			   etc.
- */
-static void
-sn_pci_window_fixup(struct pci_dev *dev, unsigned int count,
-		    s64 * pci_addrs)
-{
-	struct pci_controller *controller = PCI_CONTROLLER(dev->bus);
-	unsigned int i;
-	unsigned int idx;
-	unsigned int new_count;
-	struct pci_window *new_window;
-
-	if (count == 0)
-		return;
-	idx = controller->windows;
-	new_count = controller->windows + count;
-	new_window = kcalloc(new_count, sizeof(struct pci_window), GFP_KERNEL);
-	BUG_ON(new_window == NULL);
-	if (controller->window) {
-		memcpy(new_window, controller->window,
-		       sizeof(struct pci_window) * controller->windows);
-		kfree(controller->window);
-	}
-
-	/* Setup a pci_window for each device resource. */
-	for (i = 0; i <= PCI_ROM_RESOURCE; i++) {
-		if (pci_addrs[i] == -1)
-			continue;
-
-		new_window[idx].offset = dev->resource[i].start - pci_addrs[i];
-		new_window[idx].resource = dev->resource[i];
-		idx++;
-	}
-
-	controller->windows = new_count;
-	controller->window = new_window;
-}
-
-/*
  * sn_io_slot_fixup() -   We are not running with an ACPI capable PROM,
  *			  and need to convert the pci_dev->resource
  *			  'start' and 'end' addresses to mapped addresses,
@@ -199,9 +157,7 @@  sn_pci_window_fixup(struct pci_dev *dev, unsigned int count,
 void
 sn_io_slot_fixup(struct pci_dev *dev)
 {
-	unsigned int count = 0;
 	int idx;
-	s64 pci_addrs[PCI_ROM_RESOURCE + 1];
 	unsigned long addr, end, size, start;
 	struct pcidev_info *pcidev_info;
 	struct sn_irq_info *sn_irq_info;
@@ -229,7 +185,6 @@  sn_io_slot_fixup(struct pci_dev *dev)
 	for (idx = 0; idx <= PCI_ROM_RESOURCE; idx++) {
 
 		if (!pcidev_info->pdi_pio_mapped_addr[idx]) {
-			pci_addrs[idx] = -1;
 			continue;
 		}
 
@@ -237,11 +192,8 @@  sn_io_slot_fixup(struct pci_dev *dev)
 		end = dev->resource[idx].end;
 		size = end - start;
 		if (size == 0) {
-			pci_addrs[idx] = -1;
 			continue;
 		}
-		pci_addrs[idx] = start;
-		count++;
 		addr = pcidev_info->pdi_pio_mapped_addr[idx];
 		addr = ((addr << 4) >> 4) | __IA64_UNCACHED_OFFSET;
 		dev->resource[idx].start = addr;
@@ -276,11 +228,6 @@  sn_io_slot_fixup(struct pci_dev *dev)
 						 IORESOURCE_ROM_BIOS_COPY;
 		}
 	}
-	/* Create a pci_window in the pci_controller struct for
-	 * each device resource.
-	 */
-	if (count > 0)
-		sn_pci_window_fixup(dev, count, pci_addrs);
 
 	sn_pci_fixup_slot(dev, pcidev_info, sn_irq_info);
 }