commit "Fix Use hashtable to record udev path" breaks huawei
Hi,
while working on third version of my huawei gprs patches I noticed that this commit breaks huawei:
commit af976f7e524746b1b55645967e11ab8250f593a8
Author: Zhenhua Zhang <[email protected]> Date: Tue May 11 09:04:28 2010 +0800
Fix Use hashtable to record udev path
Sometimes, Udev device 'remove' event could not report correct parent node of current udev_device. Current code replies on the devpath attached on the parent node to find modem and then remove it.
This fix is to change the way to store the devpath info into a hashtable. So that we search hashtable to get devpath and remove the modem.
I reverted the commit and huawei works again for me. More details later today.
Signature · 1 line
Kalle Valo
Quoted 13 lines · Kalle Valo
while working on third version of my huawei gprs patches I noticed that this commit breaks huawei:
commit
af976f7e524746b1b55645967e11ab8250f593a8Author: Zhenhua Zhang <[email protected]> Date: Tue May 11 09:04:28 2010 +0800Fix Use hashtable to record udev path
Sometimes, Udev device 'remove' event could not report correct parent node of current
udev_device. Current code replies on the devpath attached on the parent node to find modem and then remove it.
Quoted 6 lines
This fix is to change the way to store the devpath info into a hashtable. So that we search hashtable to get devpath and remove the modem.
I reverted the commit and huawei works again for me. More details later today.
Sorry, I was too hasty. The patch is fine, I was just testing inproperly. After a bit more testing I found out that problem always happens when I plugin the usb modem:
May 19 17:20:09 tukki connmand[30925]: plugins/ofono.c:modem_changed() path /huawei1 May 19 17:20:10 tukki ofonod[672]: < ATE0\r\r\nOK\r\n May 19 17:20:10 tukki ofonod[672]: > AT+CFUN=1\r May 19 17:20:10 tukki ofonod[672]: < \r\nOK\r\n May 19 17:20:10 tukki ofonod[672]: plugins/huawei.c:cfun_enable() May 19 17:20:10 tukki ofonod[672]: > AT+CRC=1\r May 19 17:20:10 tukki ofonod[672]: < \r\n+CME ERROR: SIM busy\r\n May 19 17:20:10 tukki ofonod[672]: > AT+CLIP=1\r May 19 17:20:10 tukki ofonod[672]: < \r\n+CME ERROR: SIM busy\r\n May 19 17:20:10 tukki ofonod[672]: > AT+COLP=1\r May 19 17:20:10 tukki ofonod[672]: < \r\n+CME ERROR: SIM busy\r\n May 19 17:20:10 tukki ofonod[672]: > AT+CCWA=1\r May 19 17:20:10 tukki ofonod[672]: < \r\n+CME ERROR: SIM busy\r\n May 19 17:20:10 tukki ofonod[672]: drivers/atmodem/voicecall.c:at_voicecall_initialized() voicecall_init: registering to notifications May 19 17:20:10 tukki ofonod[672]: src/sim.c:ofono_sim_add_state_watch() 0x132bcd0 May 19 17:20:10 tukki ofonod[672]: * < \r\n^STIN:0,0,0\r\n May 19 17:20:10 tukki ofonod[672]: > AT+CGMI\r May 19 17:20:10 tukki connmand[30925]: plugins/ofono.c:modem_changed() path /huawei1 May 19 17:20:10 tukki ofonod[672]: < \r\nhuawei\r\n\r\nOK\r\n May 19 17:20:10 tukki ofonod[672]: > AT+CRSM=176,28590,0,0,1\r May 19 17:20:10 tukki connmand[30925]: plugins/ofono.c:modem_changed() path /huawei1 May 19 17:20:10 tukki ofonod[672]: < \r\n+CME ERROR: SIM busy\r\n May 19 17:20:10 tukki ofonod[672]: > AT+CLCC\r May 19 17:20:10 tukki ofonod[672]: < \r\n+CME ERROR: SIM busy\r\n May 19 17:20:10 tukki ofonod[672]: > AT+CRSM=192,28599\r May 19 17:20:10 tukki ofonod[672]: < \r\n+CME ERROR: SIM busy\r\n May 19 17:20:10 tukki ofonod[672]: src/voicecall.c:ecc_g2_read_cb() 0 May 19 17:20:10 tukki ofonod[672]: > AT+CGMM\r May 19 17:20:10 tukki ofonod[672]: < \r\nE1552\r\n\r\nOK\r\n
But if I start ofono while the usb modem is plugged in it works fine. Also modem disable and then enable workarounds it. Oh well.
Signature · 1 line
Kalle Valo
Hi Kalle,
Quoted 36 lines
Sorry, I was too hasty. The patch is fine, I was just testing inproperly. After a bit more testing I found out that problem always happens when I plugin the usb modem:
May 19 17:20:09 tukki connmand[30925]: plugins/ofono.c:modem_changed() path /huawei1 May 19 17:20:10 tukki ofonod[672]: < ATE0\r\r\nOK\r\n May 19 17:20:10 tukki ofonod[672]: > AT+CFUN=1\r May 19 17:20:10 tukki ofonod[672]: < \r\nOK\r\n May 19 17:20:10 tukki ofonod[672]: plugins/huawei.c:cfun_enable() May 19 17:20:10 tukki ofonod[672]: > AT+CRC=1\r May 19 17:20:10 tukki ofonod[672]: < \r\n+CME ERROR: SIM busy\r\n May 19 17:20:10 tukki ofonod[672]: > AT+CLIP=1\r May 19 17:20:10 tukki ofonod[672]: < \r\n+CME ERROR: SIM busy\r\n May 19 17:20:10 tukki ofonod[672]: > AT+COLP=1\r May 19 17:20:10 tukki ofonod[672]: < \r\n+CME ERROR: SIM busy\r\n May 19 17:20:10 tukki ofonod[672]: > AT+CCWA=1\r May 19 17:20:10 tukki ofonod[672]: < \r\n+CME ERROR: SIM busy\r\n May 19 17:20:10 tukki ofonod[672]: drivers/atmodem/voicecall.c:at_voicecall_initialized() voicecall_init: registering to notifications May 19 17:20:10 tukki ofonod[672]: src/sim.c:ofono_sim_add_state_watch() 0x132bcd0 May 19 17:20:10 tukki ofonod[672]: * < \r\n^STIN:0,0,0\r\n May 19 17:20:10 tukki ofonod[672]: > AT+CGMI\r May 19 17:20:10 tukki connmand[30925]: plugins/ofono.c:modem_changed() path /huawei1 May 19 17:20:10 tukki ofonod[672]: < \r\nhuawei\r\n\r\nOK\r\n May 19 17:20:10 tukki ofonod[672]: > AT+CRSM=176,28590,0,0,1\r May 19 17:20:10 tukki connmand[30925]: plugins/ofono.c:modem_changed() path /huawei1 May 19 17:20:10 tukki ofonod[672]: < \r\n+CME ERROR: SIM busy\r\n May 19 17:20:10 tukki ofonod[672]: > AT+CLCC\r May 19 17:20:10 tukki ofonod[672]: < \r\n+CME ERROR: SIM busy\r\n May 19 17:20:10 tukki ofonod[672]: > AT+CRSM=192,28599\r May 19 17:20:10 tukki ofonod[672]: < \r\n+CME ERROR: SIM busy\r\n May 19 17:20:10 tukki ofonod[672]: src/voicecall.c:ecc_g2_read_cb() 0 May 19 17:20:10 tukki ofonod[672]: > AT+CGMM\r May 19 17:20:10 tukki ofonod[672]: < \r\nE1552\r\n\r\nOK\r\n
Quoted 3 lines
But if I start ofono while the usb modem is plugged in it works fine. Also modem disable and then enable workarounds it. Oh well.
Sounds like the SIM needs some time to be initialized. Perhaps a Huawei specific command might be required to figure out when the SIM is actually ready. Try listening to ^SIMST or simply re-trying a particular command until you don't get SIM busy error.
Regards,
-Denis
Zhang
Hi Kalle,
Quoted 62 lines · Kalle Valo
Quoted 14 lines · Kalle Valo
while working on third version of my huawei gprs patches I noticed that this commit breaks huawei:
commit
af976f7e524746b1b55645967e11ab8250f593a8Author: Zhenhua Zhang <[email protected]> Date: Tue May 11 09:04:28 2010 +0800Fix Use hashtable to record udev path
Sometimes, Udev device 'remove' event could not report correct parent node of current
udev_device. Current code replies on the devpath attached on the parent node to find modem and then
remove it.Quoted 6 lines
This fix is to change the way to store the devpath info into a hashtable. So that we search hashtable to get devpath and remove
the modem.I reverted the commit and huawei works again for me. More details later today.
Sorry, I was too hasty. The patch is fine, I was just testing inproperly. After a bit more testing I found out that problem always happens when I plugin the usb modem:
May 19 17:20:09 tukki connmand[30925]:plugins/ofono.c:modem_changed() path /huawei1 May 19 17:20:10 tukki ofonod[672]: < ATE0\r\r\nOK\r\n May 19 17:20:10 tukki ofonod[672]: > AT+CFUN=1\r May 19 17:20:10 tukki ofonod[672]:
< \r\nOK\r\n May 19 17:20:10 tukki ofonod[672]:
plugins/huawei.c:cfun_enable() May 19 17:20:10 tukki ofonod[672]: > AT+CRC=1\r May 19 17:20:10 tukki ofonod[672]: < \r\n+CME ERROR: SIM busy\r\n May 19 17:20:10 tukki ofonod[672]: > AT+CLIP=1\r May 19 17:20:10 tukki ofonod[672]:
< \r\n+CME ERROR: SIM busy\r\n May 19 17:20:10 tukki ofonod[672]: > AT+COLP=1\r May 19 17:20:10 tukki ofonod[672]:
< \r\n+CME ERROR: SIM busy\r\n May 19 17:20:10 tukki ofonod[672]: > AT+CCWA=1\r May 19 17:20:10 tukki ofonod[672]:
< \r\n+CME ERROR: SIM busy\r\n May 19 17:20:10 tukki ofonod[672]:
drivers/atmodem/voicecall.c:at_voicecall_initialized()voicecall_init: registering to notifications May 19 17:20:10 tukki ofonod[672]: src/sim.c:ofono_sim_add_state_watch()0x132bcd0May 19 17:20:10 tukki ofonod[672]: * < \r\n^STIN:0,0,0\r\n May 19 17:20:10 tukki ofonod[672]: > AT+CGMI\r May 19 17:20:10 tukki connmand[30925]:
plugins/ofono.c:modem_changed() path /huawei1 May 19 17:20:10 tukki ofonod[672]: < \r\nhuawei\r\n\r\nOK\r\n May 19 17:20:10 tukki ofonod[672]: > AT+CRSM=176,28590,0,0,1\r May 19 17:20:10 tukki connmand[30925]: plugins/ofono.c:modem_changed() path /huawei1 May 19 17:20:10 tukki ofonod[672]: < \r\n+CME ERROR:
SIM busy\r\n May 19 17:20:10 tukki ofonod[672]: > AT+CLCC\rMay 19 17:20:10 tukki ofonod[672]: < \r\n+CME ERROR: SIMbusy\r\n May 19 17:20:10 tukki ofonod[672]: > AT+CRSM=192,28599\r May 19 17:20:10 tukki ofonod[672]: < \r\n+CME ERROR: SIM busy\r\n May 19 17:20:10 tukki ofonod[672]: src/voicecall.c:ecc_g2_read_cb() 0 May 19 17:20:10 tukki ofonod[672]: > AT+CGMM\r May 19 17:20:10 tukki ofonod[672]: < \r\nE1552\r\n\r\nOK\r\n
Quoted 2 lines
But if I start ofono while the usb modem is plugged in it works fine. Also modem disable and then enable workarounds it. Oh well.
My commit af976f7e524 should not impact modem detection and power up stage. If you found huawei modem still exists in oFono after you unplug the dungle, I guess something maybe wrong in my patch. :-)
Maybe you need to wait until SIM is settled to power on it. As Denis said, listen '^SIMST' notification should be a good idea.
Quoted 6 lines
--
Kalle Valo
_______________________________________________
ofono mailing list
ofono(a)ofono.org
http://lists.ofono.org/listinfo/ofono
Regards,
Zhenhua
Quoted 1 line · Zhenhua
Hi Kalle,
Hi Zhenhua,
Quoted 9 lines
Quoted 8 lines · Kalle Valo
Quoted 6 lines · Kalle Valo
while working on third version of my huawei gprs patches I noticed that this commit breaks huawei:
commit
af976f7e524746b1b55645967e11ab8250f593a8Author: Zhenhua Zhang <[email protected]> Date: Tue May 11 09:04:28 2010 +0800
[...]
Quoted 4 lines
Quoted 4 lines
Sorry, I was too hasty. The patch is fine, I was just testing inproperly. After a bit more testing I found out that problem always happens when I plugin the usb modem:
[...]
Quoted 3 lines
My commit
af976f7e524should not impact modem detection and power up stage. If you found huawei modem still exists in oFono after you unplug the dungle, I guess something maybe wrong in my patch. :-)
Your patch is fine, I was just testing inproperly. I didn't use the exactly the same test steps when I did the revert/unrevert cycle of your patch, and that's why I falsely assumed that your patch broke it. Sorry about that.
Signature · 1 line
Kalle Valo