Thread (11 messages) 11 messages, 2 authors, 2011-12-13
DORMANTno replies
Revisions (4)
  1. v8 current
  2. v8 [diff vs current]
  3. v8 [diff vs current]
  4. v8 [diff vs current]

[PATCH v8 00/20] OMAP2+: UART: Runtime adaptation + cleanup

From: Govindraj <hidden>
Date: 2011-12-13 13:01:13
Also in: linux-omap, linux-serial

Hi Tony/kevin,

On Fri, Nov 11, 2011 at 3:27 PM, Govindraj.R [off-list ref] wrote:
Converting uart driver to adapt to pm runtime API's.
Code re-org + cleanup.
Moving some functionality from serial.c to omap-serial.c

Changes involves:
================
1.) Cleaning up certain uart calls from sram_idle func.
2.) Removed all types of uart clock handling code from serial.c
3.) Using hwmod_mux API enable wakeup capability for uart pad during
? hwmod_idle state i.e., when uart clocks are disabled we can enable
? io-pad wakeup capability for uart if mux_data is available for
? given uart. Also during during resume from idle call to uart we need
? to enable clocks back conditionally and this can be done only when io-pad
? wakeup event bit is set for uart_rx pad. So we need a hwmod API
? which can probe the uart pad and let us know whether a uart wakeup
? happened. So omap_hmwod_pad_wakeup_status API is added to meet this
? requirement.
3.) Adapted omap-serial driver to use runtime API's.
4.) Modify serial_init calls to accept uart parameters from board file.
? ?Like dma_usage, rx_timeout, dma_rx_pollrate, auto_suspend_timeout etc.
5.) Use the omap_prm driver with irq_chaining to wake up uart after clocks are
? ?cut.

Patch series is based on 3.2-rc1.

Patch series depends on *Tero's v9 Irq_chaining patches*.
Dependent irq_chaining patches are as below.

89ac62b omap3+: add omap prm driver initialization
170431f OMAP3: pm: do not enable PRCM MPU interrupts manually
9aba1b0 omap3: pm: use prcm chain handler
435481f OMAP2+: mux: add support for PAD wakeup interrupts
5b2d361 mfd: omap-prm: added suspend prepare and complete callbacks
aa55c41 mfd: omap-prm: added chain interrupt handler
d1db904 mfd: omap-prm: add driver skeleton
31d056c TEMP: OMAP4xxx: hwmod data: add PRM hwmod
19ec3bc TEMP: OMAP3xxx: hwmod data: add PRM hwmod
9a89688 OMAP2+: hwmod: Add API to check IO PAD wakeup status
78e8b65 OMAP2+: hwmod: Add API to enable IO ring wakeup.

Same combination is hosted at:
git://gitorious.org/runtime_3-0/runtime_3-0.git 3.2-rc1_uart_runtime

Ensure CONFIG_OMAP_PRM is set while testing irq_chaining with uart.
And for pm_qos usage ensure CONFIG_CPU_IDLE is selected other wise
console might be sluggish.
I have re-based this patch series against LO master
commit id: deee6d5359969a0ce4e2760cfd7b9f379bd5698a

Same is available here [1]

I have tested this patch series along with:

1.) Tero's V11 irq chaining series
     http://www.spinics.net/lists/linux-omap/msg61445.html
    (This patch series is used for uart wakeup handling using
      prcm_irq chaining)

2.) Rajendra's hwmod change
     http://www.spinics.net/lists/arm-kernel/msg148632.html
     (This patch handles init_no_idle flag setting
      without this patch there will be boot warning however
      all pm features will work after boot up.)

3.) Vishwa's io daisy chain changes.
     http://permalink.gmane.org/gmane.linux.ports.arm.omap/65500
     (tested with and without this patch series pm features works).

Same combination of patches based on above commit id
used for testing is available here [2].

--
Thanks,
Govindraj.R

[1]:
git://gitorious.org/runtime_3-0/runtime_3-0.git
for_3_3/lo_rc4_uartruntime

[2]:
git://gitorious.org/runtime_3-0/runtime_3-0.git
for_3_3/tmp_rc4_uart_pm_intg

Changes from v7:
---------------
http://www.mail-archive.com/linux-omap at vger.kernel.org/msg57804.html
http://www.mail-archive.com/linux-omap at vger.kernel.org/msg58209.html
http://www.spinics.net/lists/linux-omap/msg59978.html
http://www.spinics.net/lists/linux-serial/msg04772.html

Testing updates:
----------------
OMAP2420/2430SDP: Boot tested.

OMAP3430SDP:
retention, off_mode, system_wide suspend is tested.
(earlyprintk & no_console_suspend checked)

OMAP3630 - Zoom3:
pm-retention checked with quart/omap-uart3
[Also tested with uart3 as console uart and pm-ret checked]

BeagleBoard XM Rev C(3630):
retention, off_mode, system_wide suspend is tested.

Deepak K (1):
?OMAP2+: UART: Allow UART parameters to be configured from board file.

Govindraj.R (18):
?OMAP2+: UART: cleanup + remove uart pm specific API
?OMAP2+: UART: cleanup 8250 console driver support
?OMAP2+: UART: Cleanup part of clock gating mechanism for uart
?OMAP2+: UART: Add default mux for all uarts.
?OMAP2+: UART: Remove mapbase/membase fields from pdata.
?OMAP2+: UART: Add runtime pm support for omap-serial driver
?OMAP2+: UART: Remove context_save and move context restore to driver
?OMAP2+: UART: Ensure all reg values configured are available from
? ?port structure
?OMAP2+: UART: Remove uart reset function.
?OMAP2+: UART: Get context loss count to context restore
?OMAP2+: UART: Move errata handling from serial.c to omap-serial
?OMAP2+: UART: Add wakeup mechanism for omap-uarts
?OMAP2+: UART: Remove old and unused clocks handling funcs
?OMAP2+: UART: remove temporary variable used to count uart instance
?OMAP2+: UART: Use custom activate func for console uart.
?OMAP2+: UART: Avoid uart idling on suspend for no_console_suspend
? ?usecase
?OMAP2+: UART: Do not gate uart clocks if used for debug_prints
?OMAP2+: UART: Remove omap_uart_can_sleep and add pm_qos

Jon Hunter (1):
?OMAP2+: UART: Make the RX_TIMEOUT for DMA configurable for each UART

?arch/arm/mach-omap2/board-3430sdp.c ? ? ? ? ? | ?100 +---
?arch/arm/mach-omap2/board-4430sdp.c ? ? ? ? ? | ? 68 +--
?arch/arm/mach-omap2/board-n8x0.c ? ? ? ? ? ? ?| ? ?6 +-
?arch/arm/mach-omap2/board-omap4panda.c ? ? ? ?| ? 68 +--
?arch/arm/mach-omap2/cpuidle34xx.c ? ? ? ? ? ? | ? ?5 -
?arch/arm/mach-omap2/pm24xx.c ? ? ? ? ? ? ? ? ?| ? 20 -
?arch/arm/mach-omap2/pm34xx.c ? ? ? ? ? ? ? ? ?| ? 42 --
?arch/arm/mach-omap2/serial.c ? ? ? ? ? ? ? ? ?| ?926 +++++++------------------
?arch/arm/plat-omap/include/plat/omap-serial.h | ? 36 +-
?arch/arm/plat-omap/include/plat/serial.h ? ? ?| ? 10 +-
?drivers/tty/serial/omap-serial.c ? ? ? ? ? ? ?| ?341 ++++++++--
?11 files changed, 607 insertions(+), 1015 deletions(-)

--
1.7.4.1

--
To unsubscribe from this list: send the line "unsubscribe linux-serial" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at ?http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help