No subject


Tue Aug 30 19:13:18 CEST 2011


before we have suspended. To verify this theory I disabled
gta02_bat_get_voltage with systemtap: the kernel does not hang in this
way anymore:

13) cat > disable-gta02_bat_get_voltage.stp <<EOF

#!/usr/bin/stap -g

function _begin () %{
  /* Address of branch inside gta02_bat_get_voltage to
     pcf50633_adc_sync_read */
  __u32 *branch = (void*)0xc002eda4;
  _stp_printf("*branch = %x\n", *branch);
  if (*branch == 0xeb062230) {
    *branch = 0xe1a00000; /* nop */
  }
%}

function _end () %{
  /* Address of branch inside gta02_bat_get_voltage to
     pcf50633_adc_sync_read */
  __u32 *branch = (void*)0xc002eda4;
  _stp_printf("*branch = %x\n", *branch);
  if (*branch == 0xe1a00000) {
    *branch = 0xeb062230; /* bl */
  }
%}


probe begin {
  _begin();
}

probe end {
  _end();
}
EOF

14) chmod a+x disable-gta02_bat_get_voltage.stp
15) ./disable-gta02_bat_get_voltage.stp

Unfortunately there are still other suspend bugs that are less common
but still sometimes occur.


-Timo



More information about the openmoko-kernel mailing list