Re: [ANNOUNCE] new PM branch: pm-20081119

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



"Peter Reid" <ppeter.reid@xxxxxxxxx> writes:

> Hello kevin,
>    Here is what i did to put it to suspend, which fails.
>
>  [root@beagleboard]# echo  mem > /sys/power/state
>  PM: Syncing filesystems ... done.
>  Freezing user space processes ... (elapsed 0.00 seconds) done.
>  Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done.
>  Suspending console(s)
>  Class driver suspend failed for cpu0
>  PM: Some devices failed to power down

Hi Peter,

Thanks for testing on Beagle.  Do you mind sharing your .config?  And,
would you mind testing with the attached config?  This PM branch will
currently only work with a minimal set of drivers.  Many of the
current drivers will still prevent retention and OFF mode.

Do you have CPUfreq enabled?  I saw this 'class driver suspend'
problem when I had CPUfreq enabled.  This branch doesn't currently
have CPUfreq support, so you can leave that disabled.

I've also noticed problems on ES2 Beagle as well that I haven't
figured out yet.  Namely, I think the bootloader is leaving certain
modules (namely DSS and IVA) in a state that is preventing hitting
retention.

Immediately after boot, the DSS powerdomain is still ON and it should
be in retention, same for IVA but I haven't debugged this further on
Beagle.  The same kernel works on 3430SDP so that's why my hunch
points to the u-boot.

The kernel needs a way to ensure that after booting all the unused
modules are in a state where they are not preventing idle.  Even with
disabled clocks, certain modules can prevent idle.  Paul Walmsley has
written the 'omapdev' layer which will now make it easier to do this
boot-time init, but it is currently not there.  We currently have to
rely on bootloaders doing the right thing.

The beagle bootloader does all sorts of stuff with DSS, MMC, audio
etc.  so it is a likely candidate.

Kevin

>
> On Thu, Nov 20, 2008 at 6:23 AM, Kevin Hilman
> <khilman@xxxxxxxxxxxxxxxxxxx> wrote:
>> Hello,
>>
>> A new PM branch is available named pm-20081119.
>>
>> This is mostly a new set of patches on top of the previous PM branch,
>> rather than a rebase.  We finally found the root cause of some DPLL
>> relocking bugs.  Special thanks to Paul Walmsley and Tero Kristo for
>> debugging and fixing this problem.  Now the DPLL fix that was reverted
>> in the previous PM branch is re-applied as well as some fixes on top
>> of it.  It also has some additional UART fixes, so I think the UART
>> idle work is ready to go to Tony.  Special thanks to Jouni Hogander
>> for the extra testing and fixes here.
>>
>> The shortlog is below[1] and the root of the tree is still
>> v2.6.27-omap1 + T2 power patches from Peter.
>>
>> This has primarily been tested on custom HW since I'm _still_ waiting
>> for my SDP to arrive.  I have boot tested on Beagle, but I think there
>> are still some problems with ES2 silicon.  On my ES2 Beagle, neither
>> DSS or IVA will leave the ON state, even when all clocks in their
>> powerdomains are off.  I have not debugged this further yet.
>>
>> Functionally, this tree is in pretty good shape, so I will do some
>> bugfixes here when necessary, but will now spent some time focusing on
>> getting the patches in this branch merged into linux-omap.
>>
>> Kevin
>>
>>
>> [1] git shortlog:
>>
>> Amit Kucheria (2):
>>      OMAP: PM: Typo fix for clock_allow_idle
>>      HSMMC: Make driver support dynamic idle
>>
>> Jouni Hogander (11):
>>      OMAP3: PM: Use pwrdm_set_next_pwrst instead of set_pwrdm_state in idle loop
>>      OMAP3: Do not set mpu, core, neon states if cpuidle is used
>>      OMAP3: PM: Do not set next states sw to control those is available
>>      OMAP3: PM: Always return value in pwrdms_setup
>>      OMAP3: PM: Fix wrong sequence in suspend.
>>      OMAP3: UART: Make sure that uart clocks are enabled when needed
>>      OMAP3: PM: Check in set_pwrdm_state that target state is supported by pwrdm v2
>>      OMAP3: PM: Do not build suspend code if SUSPEND is not enabled
>>      OMAP: PM: Build fails if PM is not enabled
>>      OMAP2: PM: Fix omap2 build
>>      OMAP: MCSPI: Enable mcspi wake-up
>>
>> Kalle Jokiniemi (4):
>>      OMAP: PM: sysfs interface for enabling voltage off in idle
>>      OMAP3: PM: Fix cpu idle init sequencing
>>      OMAP: SRF: Fixes to shared resource framework (Ver.3)
>>      OMAP3: I2C: Enable I2C wakeups
>>
>> Kevin Hilman (16):
>>      OMAP3: PM: Add wake-up bit defintiions for CONTROL_PADCONF_X
>>      OMAP3: PM: Allow UARTs to be unclocked when inactive
>>      8250: Allow platform to register PM hook
>>      8250: when waking, PM hook should be called before accessing port
>>      OMAP3: PM: UART: Add 8250 UART PM hook for suspend/resume
>>      OMAP3: PM: UART save/restore support for OFF-mode
>>      OMAP2/3: HSMMC: Ensure HSMMC is fully reset on boot
>>      OMAP3: PM: CPUidle: obey enable_off_mode flag
>>      OMAP3: PM: CPUidle: restrict C-states on UART activity
>>      OMAP3: PM: decouple PER and CORE context save and restore
>>      Revert "OMAP3 clock: fix non-CORE DPLL rate assignment bugs"
>>      Revert "OMAP3: PM: Do not set next states sw to control those is available"
>>      Revert "OMAP3: Do not set mpu, core, neon states if cpuidle is used"
>>      OMAP: PM: UART: fix can_sleep hook to return correct value
>>      OMAP: PM: UART: Only disable clocks in prepare-idle hook
>>      OMAP3: PM: Check for UART wakeups in 'resume_idle' hook
>>
>> Paul Walmsley (14):
>>      OMAP2/3 PM: create the OMAP PM interface and add a default OMAP PM no-op layer.
>>      OMAP2/3 omapdev: add basic omapdev structure
>>      OMAP242x omapdev: add OMAP242x omapdev records
>>      OMAP243x omapdev: add OMAP243x omapdev records
>>      OMAP3xxx omapdev: add OMAP3xxx omapdev records
>>      OMAP2/3 omapdev: add code to walk the omapdev records
>>      OMAP3 clock: fix non-CORE DPLL rate assignment bugs
>>      OMAP3 powerdomains: remove RET from SGX power states list
>>      OMAP3 powerdomains: remove RET from SGX power states list
>>      OMAP3 clock: remove unnecessary dpll_data dereferences
>>      OMAP3 clock: optimize DPLL rate rounding algorithm
>>      OMAP3 clock: avoid invalid FREQSEL values during DPLL rate rounding
>>      OMAP2/3 I2C: reprogram OCP_SYSCONFIG register after reset
>>      OMAP: I2C: convert 'rev1' flag to generic 'rev' u8
>>
>> Peter 'p2' De Schrijver (9):
>>      OMAP: PM counter infrastructure.
>>      OMAP: PM: Hook into PM counters
>>      OMAP: PM: Add closures to clkdm_for_each and pwrdm_for_each.
>>      OMAP: PM: Add pm-debug counters
>>      OMAP: PM debug: make powerdomains use PM-debug counters
>>      OMAP: PM: Add definitions for ETK pads and observability registers
>>      OMAP: Debug observability and ETK padconf implementation
>>      OMAP: Add debug observablity (debobs) Kconfig item
>>      OMAP: PM: Implement get_last_off_on_transaction_id()
>>
>> Rajendra Nayak (23):
>>      OMAP3: PM: GPMC context save/restore
>>      OMAP3: PM: GPIO context save/restore
>>      OMAP3: PM: I2C context save/restore
>>      OMAP3: PM: INTC context save/restore
>>      OMAP3: PM: PRCM context save/restore
>>      OMAP3: PM: Populate scratchpad contents
>>      OMAP3: PM: SCM context save/restore
>>      OMAP3: PM: SRAM restore function
>>      OMAP3: PM: handle PER/NEON/CORE in idle
>>      OMAP3: PM: Restore MMU table entry
>>      OMAP3: PM: MPU off-mode support
>>      OMAP3: PM: CORE domain off-mode support
>>      OMAP3: PM: allow runtime enable/disable of OFF mode
>>      OMAP3: 3430SDP minimal kernel defconfig
>>      OMAP3: PM: CPUidle: Basic support for C1-C2
>>      OMAP3: PM: CPUidle: Enables state C4
>>      OMAP3: PM: CPUidle: Enables C3 and C5
>>      OMAP3: PM: CPUidle: Safe-state on bm-activity
>>      OMAP3: PM: CPUidle: Enable Kconfig option for OMAP
>>      OMAP3 SRF: Generic shared resource f/w
>>      OMAP3 SRF: MPU/CORE/PD latency modeling
>>      OMAP3 SRF: omap3 srf driver
>>      OMAP3 SRF: OMAP PM srf implementation
>>
>> Tero Kristo (13):
>>      OMAP: PM debug: do not print out status for meta powerdomains (dpll*)
>>      OMAP: PM debug: Add PRCM register dump support
>>      OMAP: PM: DMA context save / restore
>>      OMAP: PM: off-mode support for DMA on EMU/HS devices
>>      OMAP3: SRAM size fix for HS/EMU devices
>>      OMAP3 PM: off-mode support for HS/EMU devices
>>      OMAP3: PM: Enable SDRAM auto-refresh during sleep
>>      OMAP: SDRC: Add new register definitions for SDRAM controller
>>      OMAP3: PM: SDRC auto-refresh workaround for off-mode
>>      PM: Fix a bug with noncore dpll rate calculation
>>      PM: Added three PLL registers to the PRCM context save
>>      PM: OMAP3: Make sure clk_disable_unused() order is correct
>>      PM: Changed secure RAM storage size from 0x8000 to 0x803F
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
>> the body of a message to majordomo@xxxxxxxxxxxxxxx
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux