Re: [Patch] x86: intel-mid: fix conflicts between 78a3bb9e408b and 9f354b0252b8

2014-06-26 Thread Jiang Liu
Thanks, David!

On 2014/6/27 3:33, David Cohen wrote:
> On Mon, Jun 23, 2014 at 10:38:07AM -0700, David Cohen wrote:
>> Hi Jiang,
>>
>> On Mon, Jun 23, 2014 at 10:30:35AM +0800, Jiang Liu wrote:
>>> Commit 9f354b0252b8 "x86, irq: Clean up unused IOAPIC interface" kills
>>> interface io_apic_set_pci_routing(), so change arch/x86/platform/
>>> intel-mid/device_libs/platform_wdt.c to use new interfaces.
>>>
>>> Due to hardware resource restriction, this patch only passes compilation
>>> without functional tests.
>>
>> I'll test this patch.
> 
> It sounds good.
> Acked-by: David Cohen 
> 
>>
>> BR, David
>>
>>>
>>> Signed-off-by: Jiang Liu 
>>> ---
>>>  .../platform/intel-mid/device_libs/platform_wdt.c  |   22 
>>> ++--
>>>  1 file changed, 6 insertions(+), 16 deletions(-)
>>>
>>> diff --git a/arch/x86/platform/intel-mid/device_libs/platform_wdt.c 
>>> b/arch/x86/platform/intel-mid/device_libs/platform_wdt.c
>>> index 973cf3bfa9fd..0b283d4d0ad7 100644
>>> --- a/arch/x86/platform/intel-mid/device_libs/platform_wdt.c
>>> +++ b/arch/x86/platform/intel-mid/device_libs/platform_wdt.c
>>> @@ -26,28 +26,18 @@ static struct platform_device wdt_dev = {
>>>  
>>>  static int tangier_probe(struct platform_device *pdev)
>>>  {
>>> -   int ioapic;
>>> -   int irq;
>>> +   int gsi;
>>> struct intel_mid_wdt_pdata *pdata = pdev->dev.platform_data;
>>> -   struct io_apic_irq_attr irq_attr = { 0 };
>>>  
>>> if (!pdata)
>>> return -EINVAL;
>>>  
>>> -   irq = pdata->irq;
>>> -   ioapic = mp_find_ioapic(irq);
>>> -   if (ioapic >= 0) {
>>> -   int ret;
>>> -   irq_attr.ioapic = ioapic;
>>> -   irq_attr.ioapic_pin = irq;
>>> -   irq_attr.trigger = 1;
>>> -   /* irq_attr.polarity = 0; -> Active high */
>>> -   ret = io_apic_set_pci_routing(NULL, irq, &irq_attr);
>>> -   if (ret)
>>> -   return ret;
>>> -   } else {
>>> +   /* IOAPIC builds identity mapping between GSI and IRQ on MID */
>>> +   gsi = pdata->irq;
>>> +   if (mp_set_gsi_attr(gsi, 1, 0, cpu_to_node(0)) ||
>>> +   mp_map_gsi_to_irq(gsi, IOAPIC_MAP_ALLOC) <= 0) {
>>> dev_warn(&pdev->dev, "cannot find interrupt %d in ioapic\n",
>>> -irq);
>>> +gsi);
>>> return -EINVAL;
>>> }
>>>  
>>> -- 
>>> 1.7.10.4
>>>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [Patch] x86: intel-mid: fix conflicts between 78a3bb9e408b and 9f354b0252b8

2014-06-26 Thread David Cohen
On Mon, Jun 23, 2014 at 10:38:07AM -0700, David Cohen wrote:
> Hi Jiang,
> 
> On Mon, Jun 23, 2014 at 10:30:35AM +0800, Jiang Liu wrote:
> > Commit 9f354b0252b8 "x86, irq: Clean up unused IOAPIC interface" kills
> > interface io_apic_set_pci_routing(), so change arch/x86/platform/
> > intel-mid/device_libs/platform_wdt.c to use new interfaces.
> > 
> > Due to hardware resource restriction, this patch only passes compilation
> > without functional tests.
> 
> I'll test this patch.

It sounds good.
Acked-by: David Cohen 

> 
> BR, David
> 
> > 
> > Signed-off-by: Jiang Liu 
> > ---
> >  .../platform/intel-mid/device_libs/platform_wdt.c  |   22 
> > ++--
> >  1 file changed, 6 insertions(+), 16 deletions(-)
> > 
> > diff --git a/arch/x86/platform/intel-mid/device_libs/platform_wdt.c 
> > b/arch/x86/platform/intel-mid/device_libs/platform_wdt.c
> > index 973cf3bfa9fd..0b283d4d0ad7 100644
> > --- a/arch/x86/platform/intel-mid/device_libs/platform_wdt.c
> > +++ b/arch/x86/platform/intel-mid/device_libs/platform_wdt.c
> > @@ -26,28 +26,18 @@ static struct platform_device wdt_dev = {
> >  
> >  static int tangier_probe(struct platform_device *pdev)
> >  {
> > -   int ioapic;
> > -   int irq;
> > +   int gsi;
> > struct intel_mid_wdt_pdata *pdata = pdev->dev.platform_data;
> > -   struct io_apic_irq_attr irq_attr = { 0 };
> >  
> > if (!pdata)
> > return -EINVAL;
> >  
> > -   irq = pdata->irq;
> > -   ioapic = mp_find_ioapic(irq);
> > -   if (ioapic >= 0) {
> > -   int ret;
> > -   irq_attr.ioapic = ioapic;
> > -   irq_attr.ioapic_pin = irq;
> > -   irq_attr.trigger = 1;
> > -   /* irq_attr.polarity = 0; -> Active high */
> > -   ret = io_apic_set_pci_routing(NULL, irq, &irq_attr);
> > -   if (ret)
> > -   return ret;
> > -   } else {
> > +   /* IOAPIC builds identity mapping between GSI and IRQ on MID */
> > +   gsi = pdata->irq;
> > +   if (mp_set_gsi_attr(gsi, 1, 0, cpu_to_node(0)) ||
> > +   mp_map_gsi_to_irq(gsi, IOAPIC_MAP_ALLOC) <= 0) {
> > dev_warn(&pdev->dev, "cannot find interrupt %d in ioapic\n",
> > -irq);
> > +gsi);
> > return -EINVAL;
> > }
> >  
> > -- 
> > 1.7.10.4
> > 
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [Patch] x86: intel-mid: fix conflicts between 78a3bb9e408b and 9f354b0252b8

2014-06-23 Thread David Cohen
Hi Jiang,

On Mon, Jun 23, 2014 at 10:30:35AM +0800, Jiang Liu wrote:
> Commit 9f354b0252b8 "x86, irq: Clean up unused IOAPIC interface" kills
> interface io_apic_set_pci_routing(), so change arch/x86/platform/
> intel-mid/device_libs/platform_wdt.c to use new interfaces.
> 
> Due to hardware resource restriction, this patch only passes compilation
> without functional tests.

I'll test this patch.

BR, David

> 
> Signed-off-by: Jiang Liu 
> ---
>  .../platform/intel-mid/device_libs/platform_wdt.c  |   22 
> ++--
>  1 file changed, 6 insertions(+), 16 deletions(-)
> 
> diff --git a/arch/x86/platform/intel-mid/device_libs/platform_wdt.c 
> b/arch/x86/platform/intel-mid/device_libs/platform_wdt.c
> index 973cf3bfa9fd..0b283d4d0ad7 100644
> --- a/arch/x86/platform/intel-mid/device_libs/platform_wdt.c
> +++ b/arch/x86/platform/intel-mid/device_libs/platform_wdt.c
> @@ -26,28 +26,18 @@ static struct platform_device wdt_dev = {
>  
>  static int tangier_probe(struct platform_device *pdev)
>  {
> - int ioapic;
> - int irq;
> + int gsi;
>   struct intel_mid_wdt_pdata *pdata = pdev->dev.platform_data;
> - struct io_apic_irq_attr irq_attr = { 0 };
>  
>   if (!pdata)
>   return -EINVAL;
>  
> - irq = pdata->irq;
> - ioapic = mp_find_ioapic(irq);
> - if (ioapic >= 0) {
> - int ret;
> - irq_attr.ioapic = ioapic;
> - irq_attr.ioapic_pin = irq;
> - irq_attr.trigger = 1;
> - /* irq_attr.polarity = 0; -> Active high */
> - ret = io_apic_set_pci_routing(NULL, irq, &irq_attr);
> - if (ret)
> - return ret;
> - } else {
> + /* IOAPIC builds identity mapping between GSI and IRQ on MID */
> + gsi = pdata->irq;
> + if (mp_set_gsi_attr(gsi, 1, 0, cpu_to_node(0)) ||
> + mp_map_gsi_to_irq(gsi, IOAPIC_MAP_ALLOC) <= 0) {
>   dev_warn(&pdev->dev, "cannot find interrupt %d in ioapic\n",
> -  irq);
> +  gsi);
>   return -EINVAL;
>   }
>  
> -- 
> 1.7.10.4
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[Patch] x86: intel-mid: fix conflicts between 78a3bb9e408b and 9f354b0252b8

2014-06-22 Thread Jiang Liu
Commit 9f354b0252b8 "x86, irq: Clean up unused IOAPIC interface" kills
interface io_apic_set_pci_routing(), so change arch/x86/platform/
intel-mid/device_libs/platform_wdt.c to use new interfaces.

Due to hardware resource restriction, this patch only passes compilation
without functional tests.

Signed-off-by: Jiang Liu 
---
 .../platform/intel-mid/device_libs/platform_wdt.c  |   22 ++--
 1 file changed, 6 insertions(+), 16 deletions(-)

diff --git a/arch/x86/platform/intel-mid/device_libs/platform_wdt.c 
b/arch/x86/platform/intel-mid/device_libs/platform_wdt.c
index 973cf3bfa9fd..0b283d4d0ad7 100644
--- a/arch/x86/platform/intel-mid/device_libs/platform_wdt.c
+++ b/arch/x86/platform/intel-mid/device_libs/platform_wdt.c
@@ -26,28 +26,18 @@ static struct platform_device wdt_dev = {
 
 static int tangier_probe(struct platform_device *pdev)
 {
-   int ioapic;
-   int irq;
+   int gsi;
struct intel_mid_wdt_pdata *pdata = pdev->dev.platform_data;
-   struct io_apic_irq_attr irq_attr = { 0 };
 
if (!pdata)
return -EINVAL;
 
-   irq = pdata->irq;
-   ioapic = mp_find_ioapic(irq);
-   if (ioapic >= 0) {
-   int ret;
-   irq_attr.ioapic = ioapic;
-   irq_attr.ioapic_pin = irq;
-   irq_attr.trigger = 1;
-   /* irq_attr.polarity = 0; -> Active high */
-   ret = io_apic_set_pci_routing(NULL, irq, &irq_attr);
-   if (ret)
-   return ret;
-   } else {
+   /* IOAPIC builds identity mapping between GSI and IRQ on MID */
+   gsi = pdata->irq;
+   if (mp_set_gsi_attr(gsi, 1, 0, cpu_to_node(0)) ||
+   mp_map_gsi_to_irq(gsi, IOAPIC_MAP_ALLOC) <= 0) {
dev_warn(&pdev->dev, "cannot find interrupt %d in ioapic\n",
-irq);
+gsi);
return -EINVAL;
}
 
-- 
1.7.10.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/