[maemo-commits] [maemo-commits] r18861 - projects/haf/trunk/ke-recv/src

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Fri Jul 17 11:18:49 EEST 2009
Author: kihamala
Date: 2009-07-17 11:18:48 +0300 (Fri, 17 Jul 2009)
New Revision: 18861

Modified:
   projects/haf/trunk/ke-recv/src/ke-recv.c
Log:
workaround + bug fix


Modified: projects/haf/trunk/ke-recv/src/ke-recv.c
===================================================================
--- projects/haf/trunk/ke-recv/src/ke-recv.c	2009-07-17 04:41:57 UTC (rev 18860)
+++ projects/haf/trunk/ke-recv/src/ke-recv.c	2009-07-17 08:18:48 UTC (rev 18861)
@@ -2038,7 +2038,8 @@
                         ULOG_DEBUG_F("rmmod for g_nada done");
                 }
                 handle_usb_event(E_ENTER_CHARGING_MODE);
-        } else if (strcmp(usb_mode, "disconnected") == 0) {
+        } else if (strcmp(usb_mode, "disconnected") == 0 ||
+                   strcmp(usb_mode, "b_peripheral") == 0) {
                 ULOG_DEBUG_F("PC host charger");
                 if (!rmmod_g_nada()) {
                         ULOG_ERR_F("rmmod for g_nada failed");
@@ -2076,12 +2077,6 @@
         if (is_added) {
                 /*
                 ULOG_DEBUG_F("udi %s added %s", udi, key);
-                if (strcmp(USB_VBUS_PROP, key) == 0) {
-                        if (usb_state == S_CHARGER_PROBE) {
-                                check_charger();
-                        }
-                        return;
-                }
                 */
         } else if (is_removed) {
                 /*
@@ -2106,6 +2101,10 @@
                 if (strcmp(USB_VBUS_PROP, key) == 0 ||
                     (usb_cable_udi && strcmp("usb_device.mode", key) == 0)) {
                         if (usb_state == S_CHARGER_PROBE) {
+                                /* workaround for usb_device.mode == b_idle
+                                 * in early phase of host cable detection
+                                 * sometimes */
+                                g_usleep(1000 * 500);
                                 check_charger();
                         }
                         return;
@@ -3129,6 +3128,9 @@
                         } else if (usb_state == S_PERIPHERAL_WAIT) {
                                 ULOG_INFO_F("E_CABLE_DETACHED in "
                                             "S_PERIPHERAL_WAIT");
+                                /* it's possible that g_file_storage is
+                                 * inserted and should be removed */
+                                rmmod_g_file_storage();
                         } else if (usb_state == S_CHARGING) {
                                 ULOG_INFO_F("E_CABLE_DETACHED in "
                                             "S_CHARGING");

More information about the maemo-commits mailing list