TI中文支持网
TI专业的中文技术问题搜集分享网站

am335x 用RTC 唤醒休眠的问题

要用闹钟来唤醒休眠中的 am335x,  用的是linux系统。TI代码中RTC好像没有唤醒功能,修改了一下代码在 drivers/rtc/rtc-omap.c 文件中 omap_rtc_probe函数的 

rtc = rtc_device_register(pdev->name, &pdev->dev,
&omap_rtc_ops, THIS_MODULE);

前(文件的324行)添加了一行:

device_init_wakeup(&pdev->dev, 1);

结果在休眠测试时出现问题(串口打印如下):

。。。。。。

[ 368.080780] call omap_uart.4+ returned 0 after 29 usecs
[ 368.086334] calling omap_uart.5+ @ 1175
[ 368.090484] call omap_uart.5+ returned 0 after 29 usecs

[ 368.096038] calling omap_rtc+ @ 1175

[ 368.099914] ————[ cut here ]————
[ 368.104827] WARNING: at kernel/irq/manage.c:513 irq_set_irq_wake+0xcc/0xf8()
[ 368.112274] Unbalanced IRQ 76 wake disable
[ 368.116607] Modules linked in: [last unloaded: g_mass_storage]
[ 368.122772] Backtrace:
[ 368.125396] [<c0018764>] (dump_backtrace+0x0/0x110) from [<c047125c>] (dump_stack+0x18/0x1c)
[ 368.134307] r6:c0561274 r5:00000201 r4:c6cc9d60 r3:60000093
[ 368.140380] [<c0471244>] (dump_stack+0x0/0x1c) from [<c0042ab4>] (warn_slowpath_common+0x5c/0x6c)
[ 368.149780] [<c0042a58>] (warn_slowpath_common+0x0/0x6c) from [<c0042b68>] (warn_slowpath_fmt+0x38/0x40)
[ 368.159790] r8:00000010 r7:0000004c r6:00000000 r5:00000000 r4:c0653214
[ 368.166717] r3:00000009
[ 368.169525] [<c0042b30>] (warn_slowpath_fmt+0x0/0x40) from [<c0079420>] (irq_set_irq_wake+0xcc/0xf8)
[ 368.179199] r3:0000004c r2:c056132c
[ 368.183013] [<c0079354>] (irq_set_irq_wake+0x0/0xf8) from [<c0309f5c>] (omap_rtc_resume+0x38/0x68)

。。。。

问题出在休眠过程调用  disable_irq_wake  时 desc->wake_depth 的值为0,

一直不能解决,

还请多多指教

meifeng li:

问题解决,不过目前还不能唤醒

赞(0)
未经允许不得转载:TI中文支持网 » am335x 用RTC 唤醒休眠的问题
分享到: 更多 (0)