On Fri, Jul 14, 2006 at 10:35:21AM +0900, Atsushi Nemoto wrote: > > Two "Determined physycal RAM map:" line here. If both were printed in > parse_cmdline_early() (i.e. parse_cmdline_early was called twice), > something is seriously broken. Yes, you was right. I fixed it! :) However now I have another (strange) problem. Attached you can find my patch to add power managament to the new version of file "drivers/net/au1000_eth.c" that implements the PHY-layer support. Please, note the hack after the function mii_probe() called by au1000_lowlevel_probe(). Kernel messages during suspend are: hostname:~# apm --suspend Stopping tasks: ===============================| au1xxx_pm_prepare: state = 3 usbdev1.1_ep81: PM: suspend 0->2, parent 1-0:1.0 already 1 warning! Serial console ttyS0 is not disabled in debug kernel mode au1xxx_pm_enter: state = 3 au_sleep: reason -3 force 0 wakeup 100 ticks 3000 au_sleep: Zzz... au_sleep: Yep! kobject_add failed for 0:1f with -EEXIST, don't try to register things with the same name in the same directory. Call Trace: [<80252ca8>] kobject_add+0x17c/0x1e0 [<80252b98>] kobject_add+0x6c/0x1e0 [<80292008>] device_add+0xc0/0x464 [<80291ff4>] device_add+0xac/0x464 [<802a2e64>] mdiobus_register+0x134/0x198 [<802a3ac0>] au1000_lowlevel_probe+0x104/0x4b4 [<802a58a4>] au1000_drv_resume+0x3c/0xc8 [<80138978>] process_timeout+0x0/0x8 [<80298610>] platform_resume+0x34/0x40 [<8029bf7c>] resume_device+0x19c/0x200 [<802528e4>] kobject_get+0x20/0x34 [<8029391c>] __sysdev_resume+0xf0/0xf8 [<80291da4>] get_device+0x20/0x34 [<8029c1c4>] dpm_resume+0x1e4/0x3c0 [<8029c3fc>] device_resume+0x5c/0x174 [<80153848>] enter_state+0x290/0x314 [<80153840>] enter_state+0x288/0x314 [<8010e824>] apm_suspend+0x1c/0xa0 [<80219750>] nfs_getattr+0x88/0xf8 [<80219708>] nfs_getattr+0x40/0xf8 [<8010eca8>] apm_ioctl+0x198/0x22c [<80110e84>] do_page_fault+0x364/0x3d0 [<80110c24>] do_page_fault+0x104/0x3d0 [<801a0d24>] do_ioctl+0x54/0x90 [<801a0f6c>] vfs_ioctl+0x20c/0x394 [<801b7950>] sync_inodes+0x20/0x54 [<801a1144>] sys_ioctl+0x50/0x9c [<8010f66c>] stack_done+0x20/0x40 [<8010f66c>] stack_done+0x20/0x40 phy 31 failed to register au1000_eth_mii: probed eth0: 0:1f already attached eth0: Could not attach to PHY usb usb1: root hub lost power or was reset Restarting tasks... done au1xxx_pm_finish: state = 3 hostname:~# The first strange thing is that this time the kernel messages stop after "au1xxx_pm_prepare: state = 3" and not after "au_sleep: Zzz..." as before the merge! Maybe something as changed in serial console magement? The second strange thing is that _only_ calling the mii_probe() the resume works correctly, otherwise the CPU loops forever calling the au1000_lowlevel_probe() without showing the printk() messages through the serial console. =:-o Suggestions? Ciao, Rodolfo -- GNU/Linux Solutions e-mail: giometti@xxxxxxxxxxxx Linux Device Driver giometti@xxxxxxxxx Embedded Systems giometti@xxxxxxxx UNIX programming phone: +39 349 2432127
Attachment:
signature.asc
Description: Digital signature