Hmm, wrap_kbd_p1_f() looks good.
from platform/kbd.c:
" STMFD SP!, {R1-R7,LR}\n" //SX220 modified
" MOV R5, #0\n"
// " BL _kbd_read_keys\n" // replaces kbd_fetch_data()
" BL my_kbd_read_keys\n" // +
" B _kbd_p1_f_cont\n" // continue
-----------------------------------------------
from firmware 1.00c:
FF834E94 " STMFD SP!, {R1-R7,LR} \n"
FF834E98 " MOV R5, #0 \n"
FF834E9C " BL sub_FF834E18 \n" // address equal to kbd_read_keys from stubs_entry.S
FF834EA0 " LDR R2, =0x3418C \n" // address equal to kbd_p1_f_cont from stubs_entry.S
That is still one file which I took from SX220HS, because IXUS310 had many touch_screen stuff inside.