Subject: [PATCH 1/2] OMAP2+: UART: Fix incorrect population of default uart pads

From: [email-masked] (Kevin Hilman)
Date: Mon, 07 May 2012 10:39:12 -0700

Tony Lindgren <[email-masked]> writes:

> * Raja, Govindraj <[email-masked]> [120424 01:41]:
>> On Tue, Apr 24, 2012 at 5:15 AM, Kevin Hilman <[email-masked]> wrote:
>> > "Govindraj.R" <[email-masked]> writes:
>> >
>> >> From: "Govindraj.R" <[email-masked]>
>> >>
>> >> The following commit:
>> >> (7496ba3 ?ARM: OMAP2+: UART: Add default mux for all uarts)
>> >> added default pads for all uarts. But not all boards tend to
>> >> use all uarts and most of unused uart pins are muxed for
>> >> other purpose. This commit breaks the modules which where trying
>> >> to use unused uart pins on their boards.
>> >>
>> >> So remove the default pads adding.
>> >
>> > I just noticed that this patch breaks runtime PM & wakeups for UART
>> > console (at least on 3530/Overo with ttyO2 console.)
>> >
>> > By removing the pads, the initial device_init_wakeup() is not called on
>> > port init. ?Without this call serial_omap_pm() disables runtime PM
>> > because it checks device_may_wakeup().
>> >
>> > Since runtime PM was disabled, I manually re-enabled it and then enabled
>> > wakeups:
>> >
>> > ?echo auto > /sys/devices/platform/omap_uart.2/power/control
>> > ?echo enabled > /sys/devices/platform/omap_uart.2/tty/ttyO2/power/wakeup
>> >
>> > Then, after enabling auto-suspend timeouts, it seems wakeups are still
>> > not working since the console hangs.
>> >
>> > Reverting $SUBJECT patch gets things working again.
>> 
>> This was decided as part of discussion [1]
>> 
>> If we are _reconsidering_ taking this patch [2]
>> to dynamically probe uart pins and enable rx wakeup.
>> 
>> I can re-work on the patch[2] as per tony's comments[1]
>> and re-post it.
>  
> Just to follow up on this.. Let's first get things working reliably,
> and only then add more PM support.
>
> We absolutely can't revert $SUBJECT because it's known to mess up
> at least smsc911x and ehci on zoom3, hsi on n900 and probably
> many other things.
>
> For the -rc cycle, it seems that [2] is out of question at this point
> as too intrusive. If the PM & wakeups are broken in the default cases,
> then I suggest we just take few steps back and disable any deeper PM
> states in the -rc series.

Unfortunately, no need to do anything more to disable deeper PM states.

Because $SUBJECT disables runtime PM for UART, it keeps both PER and
CORE on all the time. :(

Kevin