Paul,

On Sunday 18 September 2011 02:28 PM, Santosh wrote:
> On Friday 16 September 2011 09:10 PM, Cousson, Benoit wrote:
>> Hi Sricharan,
>>
>> On 9/9/2011 6:02 PM, R, Sricharan wrote:
>>> The address spaces, irqs and dma reqs count API returns the
>>> number of corresponding entries in a hwmod including a additional
>>> null value or a -1 terminator in the structure introduced
>>> recently. More information here:
>>>
>>>     212738a4 (omap_hwmod: use a terminator record with
>>> omap_hwmod_mpu_irqs arrays)
>>>     78183f3f (omap_hwmod: use a null structure record to terminate
>>> omap_hwmod_addr_space arrays)
>>>     bc614958 (omap_hwmod: use a terminator record with
>>> omap_hwmod_dma_info arrays)
>>>
>>> The devices which have multiple hwmods and use device_build_ss are
>>> broken with this, as their resources are populated with a
>>> extra null value, subsequently the probe fails. So fix the API not to
>>> include the array terminator in the count.
>>>
>>> Signed-off-by: sricharan<r.sricha...@ti.com>
>>> Signed-off-by: Santosh Shilimkar<santosh.shilim...@ti.com>
>>> Cc: Benoit Cousson<b-cous...@ti.com>
>>> Cc: Paul Walmsley<p...@pwsan.com>
>>> Cc: Kevin Hilman<khil...@ti.com>
>>
>> It would have been nice to give me the credit for the bug report on the
>> other functions, but otherwise:
>>
> Sure. Will add reported-by of yours.
> 
>> Acked-by: Benoit Cousson <b-cous...@ti.com>
>>
> Thanks
> 
>> And I still prefer the return i - 1 :-)
>>
> Let's do "i-1" as you prefer. Maintainer
> always have final say !!
> 
Here is the updated patch with i-1 as agreed
with Benoit. Also attaching it in case mailer
eats spaces.

>From c55f38512e1471b8a9405c2cb45d9377e0c45999 Mon Sep 17 00:00:00 2001
From: sricharan <r.sricha...@ti.com>
Date: Wed, 21 Sep 2011 16:08:46 +0530
Subject: [PATCH 1/8] OMAP: hwmod: Fix the addr space, irq, dma count APIs

The address spaces, irqs and dma reqs count API returns the
number of corresponding entries in a hwmod including a additional
null value or a -1 terminator in the structure introduced
recently. More information here:

- 212738a4 (omap_hwmod: use a terminator record with omap_hwmod_mpu_irqs
arrays)

- 78183f3f (omap_hwmod: use a null structure record to terminate
omap_hwmod_addr_space arrays)

- bc614958 (omap_hwmod: use a terminator record with omap_hwmod_dma_info
arrays)

The issue with irqs and dma info was originally reported by Benoit Cousson.

The devices which have multiple hwmods and use device_build_ss are
broken with this, as their resources are populated with a
extra null value, subsequently the probe fails. So fix the API not to
include the array terminator in the count.

Reported-by: Benoit Cousson <b-cous...@ti.com>
Signed-off-by: Santosh Shilimkar <santosh.shilim...@ti.com>
Signed-off-by: sricharan <r.sricha...@ti.com>
Acked: Benoit Cousson <b-cous...@ti.com>
---
 arch/arm/mach-omap2/omap_hwmod.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/arm/mach-omap2/omap_hwmod.c
b/arch/arm/mach-omap2/omap_hwmod.c
index 84cc0bd..f396c83 100644
--- a/arch/arm/mach-omap2/omap_hwmod.c
+++ b/arch/arm/mach-omap2/omap_hwmod.c
@@ -749,7 +749,7 @@ static int _count_mpu_irqs(struct omap_hwmod *oh)
                ohii = &oh->mpu_irqs[i++];
        } while (ohii->irq != -1);

-       return i;
+       return i-1;
 }

 /**
@@ -772,7 +772,7 @@ static int _count_sdma_reqs(struct omap_hwmod *oh)
                ohdi = &oh->sdma_reqs[i++];
        } while (ohdi->dma_req != -1);

-       return i;
+       return i-1;
 }

 /**
@@ -795,7 +795,7 @@ static int _count_ocp_if_addr_spaces(struct
omap_hwmod_ocp_if *os)
                mem = &os->addr[i++];
        } while (mem->pa_start != mem->pa_end);

-       return i;
+       return i-1;
 }

 /**
-- 
1.7.4.1

>From c55f38512e1471b8a9405c2cb45d9377e0c45999 Mon Sep 17 00:00:00 2001
From: sricharan <r.sricha...@ti.com>
Date: Wed, 21 Sep 2011 16:08:46 +0530
Subject: [PATCH 1/8] OMAP: hwmod: Fix the addr space, irq, dma count APIs

The address spaces, irqs and dma reqs count API returns the
number of corresponding entries in a hwmod including a additional
null value or a -1 terminator in the structure introduced
recently. More information here:

- 212738a4 (omap_hwmod: use a terminator record with omap_hwmod_mpu_irqs arrays)

- 78183f3f (omap_hwmod: use a null structure record to terminate omap_hwmod_addr_space arrays)

- bc614958 (omap_hwmod: use a terminator record with omap_hwmod_dma_info arrays)

The issue with irqs and dma info was originally reported by Benoit Cousson.

The devices which have multiple hwmods and use device_build_ss are
broken with this, as their resources are populated with a
extra null value, subsequently the probe fails. So fix the API not to
include the array terminator in the count.

Reported-by: Benoit Cousson <b-cous...@ti.com>
Signed-off-by: Santosh Shilimkar <santosh.shilim...@ti.com>
Signed-off-by: sricharan <r.sricha...@ti.com>
Acked: Benoit Cousson <b-cous...@ti.com>
---
 arch/arm/mach-omap2/omap_hwmod.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
index 84cc0bd..f396c83 100644
--- a/arch/arm/mach-omap2/omap_hwmod.c
+++ b/arch/arm/mach-omap2/omap_hwmod.c
@@ -749,7 +749,7 @@ static int _count_mpu_irqs(struct omap_hwmod *oh)
 		ohii = &oh->mpu_irqs[i++];
 	} while (ohii->irq != -1);
 
-	return i;
+	return i-1;
 }
 
 /**
@@ -772,7 +772,7 @@ static int _count_sdma_reqs(struct omap_hwmod *oh)
 		ohdi = &oh->sdma_reqs[i++];
 	} while (ohdi->dma_req != -1);
 
-	return i;
+	return i-1;
 }
 
 /**
@@ -795,7 +795,7 @@ static int _count_ocp_if_addr_spaces(struct omap_hwmod_ocp_if *os)
 		mem = &os->addr[i++];
 	} while (mem->pa_start != mem->pa_end);
 
-	return i;
+	return i-1;
 }
 
 /**
-- 
1.7.4.1

Reply via email to