From: Tero Kristo <hidden> Date: 2012-02-29 15:25:02
Hi,
Changes compared to previous version:
- split out the io_chain set as a separate set
- marked patch 3 as TEMP, this is only needed until Paul's pwrdm fixes
get merged (http://marc.info/?l=linux-omap&m=133040749621183&w=2)
Depends on the io_chain set to provide wakeup capability from
retention.
Tested with omap4430 blaze : suspend / resume works okay.
-Tero
From: Tero Kristo <hidden> Date: 2012-02-29 15:25:03
From: Rajendra Nayak <redacted>
Remove the FIXME's in the suspend sequence since
we now intend to support system level RET support.
Signed-off-by: Rajendra Nayak <redacted>
Signed-off-by: Tero Kristo <redacted>
Reviewed-by: Santosh Shilimkar <redacted>
---
arch/arm/mach-omap2/pm44xx.c | 6 ------
1 files changed, 0 insertions(+), 6 deletions(-)
From: Tero Kristo <hidden> Date: 2012-02-29 15:25:04
Previous code used wrong instance for the interrupt register access.
Use the right one which is OCP_SOCKET.
Signed-off-by: Tero Kristo <redacted>
Cc: Paul Walmsley <paul@pwsan.com>
---
arch/arm/mach-omap2/prm44xx.c | 21 +++++++++++----------
1 files changed, 11 insertions(+), 10 deletions(-)
From: Tero Kristo <hidden> Date: 2012-02-29 15:25:05
From: Rajendra Nayak <redacted>
With no driver handling DSP, if brought out of reset, it stays
active and does not assert standby. This leads to IVAHD powerdomain not
transitioning and hence preventing chip retention.
This patch is no longer needed once Paul's powerdomain fixes are merged:
http://marc.info/?l=linux-omap&m=133040749621183&w=2
Just provided for testing purposes.
Signed-off-by: Rajendra Nayak <redacted>
Signed-off-by: Tero Kristo <redacted>
---
arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
From: Tero Kristo <hidden> Date: 2012-02-29 15:25:06
Currently PRCM chain handler for OMAP4 requires SPARSE_IRQ to be enabled
from kernel config, however enabling this option breaks the OMAP kernel
completely and it can't be used. Thus, OMAP_PRCM_IRQ_BASE was added
to the end of the irq list, and the prm_common code was changed to use
this instead of irq_desc allocation scheme.
Once SPARSE_IRQ is enabled for OMAP kernel, this patch can be reverted.
Signed-off-by: Tero Kristo <redacted>
Cc: Paul Walmsley <paul@pwsan.com>
---
arch/arm/mach-omap2/prm_common.c | 14 +-------------
arch/arm/plat-omap/include/plat/irqs.h | 6 +++++-
2 files changed, 6 insertions(+), 14 deletions(-)
On Wed, Feb 29, 2012 at 8:55 PM, Tero Kristo [off-list ref] wrote:
Hi,
Changes compared to previous version:
- split out the io_chain set as a separate set
- marked patch 3 as TEMP, this is only needed until Paul's pwrdm fixes
?get merged (http://marc.info/?l=linux-omap&m=133040749621183&w=2)
Depends on the io_chain set to provide wakeup capability from
retention.
Tested with omap4430 blaze : suspend / resume works okay.
Thanks for fixing answering the comments on last version.
For entire series you can add
Reviewed-by: Santosh Shilimkar <redacted>
Previous code used wrong instance for the interrupt register access.
Use the right one which is OCP_SOCKET.
Signed-off-by: Tero Kristo <redacted>
Cc: Paul Walmsley <paul@pwsan.com>
On Wednesday 29 February 2012 08:55 PM, Tero Kristo wrote:
Currently PRCM chain handler for OMAP4 requires SPARSE_IRQ to be enabled
from kernel config, however enabling this option breaks the OMAP kernel
completely and it can't be used. Thus, OMAP_PRCM_IRQ_BASE was added
to the end of the irq list, and the prm_common code was changed to use
this instead of irq_desc allocation scheme.
Once SPARSE_IRQ is enabled for OMAP kernel, this patch can be reverted.
From: Tero Kristo <hidden> Date: 2012-03-01 08:23:49
On Thu, 2012-03-01 at 12:31 +0530, Rajendra Nayak wrote:
On Wednesday 29 February 2012 08:55 PM, Tero Kristo wrote:
quoted
Currently PRCM chain handler for OMAP4 requires SPARSE_IRQ to be enabled
from kernel config, however enabling this option breaks the OMAP kernel
completely and it can't be used. Thus, OMAP_PRCM_IRQ_BASE was added
to the end of the irq list, and the prm_common code was changed to use
this instead of irq_desc allocation scheme.
Once SPARSE_IRQ is enabled for OMAP kernel, this patch can be reverted.
From: Russell King - ARM Linux <hidden> Date: 2012-03-01 09:46:53
On Wed, Feb 29, 2012 at 05:25:06PM +0200, Tero Kristo wrote:
Currently PRCM chain handler for OMAP4 requires SPARSE_IRQ to be enabled
from kernel config, however enabling this option breaks the OMAP kernel
completely and it can't be used.
No it does not. Look:
irq_alloc_descs(start, from, num, -1)
will allocate num interrupt descriptors from within from..NR_IRQS if
sparse IRQ is disabled. So, provided there is sufficient space within
the available NR_IRQS, irq_alloc_descs() works for non-sparse IRQ.
There is no need to get rid of it at all.
If start is -1, then it will allocate from where-ever it can in the
range from..NR_IRQS. Otherwise, it will fail if it can't get an
allocation starting at 'start'.
If sparse IRQ is enabled, then it will start allocating from whatever
the last figure output from the:
NR_IRQS:%d nr_irqs:%d %d
line.
From: Tero Kristo <hidden> Date: 2012-03-01 10:03:55
On Thu, 2012-03-01 at 09:46 +0000, Russell King - ARM Linux wrote:
On Wed, Feb 29, 2012 at 05:25:06PM +0200, Tero Kristo wrote:
quoted
Currently PRCM chain handler for OMAP4 requires SPARSE_IRQ to be enabled
from kernel config, however enabling this option breaks the OMAP kernel
completely and it can't be used.
No it does not. Look:
irq_alloc_descs(start, from, num, -1)
will allocate num interrupt descriptors from within from..NR_IRQS if
sparse IRQ is disabled. So, provided there is sufficient space within
the available NR_IRQS, irq_alloc_descs() works for non-sparse IRQ.
There is no need to get rid of it at all.
If start is -1, then it will allocate from where-ever it can in the
range from..NR_IRQS. Otherwise, it will fail if it can't get an
allocation starting at 'start'.
If sparse IRQ is enabled, then it will start allocating from whatever
the last figure output from the:
NR_IRQS:%d nr_irqs:%d %d
line.
With the patch from Benoit
(http://marc.info/?l=linux-arm-kernel&m=133043468329275&w=2) this patch
is no longer needed. Previously the NR_IRQS definition was too small for
omap4 and the alloc_descs was failing because of that. It seems I
overshoot with this patch of mine and dropped also the irq_alloc_desc
implementation while fixing the problem.
-Tero