[maemo-commits] [maemo-commits] r18689 - in projects/haf/trunk/ke-recv: debian src

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Wed Jun 10 14:13:37 EEST 2009
Author: kihamala
Date: 2009-06-10 14:13:32 +0300 (Wed, 10 Jun 2009)
New Revision: 18689

Modified:
   projects/haf/trunk/ke-recv/debian/changelog
   projects/haf/trunk/ke-recv/debian/init.d
   projects/haf/trunk/ke-recv/src/ke-recv.c
   projects/haf/trunk/ke-recv/src/osso-usb-mass-storage-disable.sh
   projects/haf/trunk/ke-recv/src/osso-usb-mass-storage-enable.sh
   projects/haf/trunk/ke-recv/src/pcsuite-disable.sh
   projects/haf/trunk/ke-recv/src/pcsuite-enable.sh
Log:
changes for the new USB architecture


Modified: projects/haf/trunk/ke-recv/debian/changelog
===================================================================
--- projects/haf/trunk/ke-recv/debian/changelog	2009-06-10 10:33:01 UTC (rev 18688)
+++ projects/haf/trunk/ke-recv/debian/changelog	2009-06-10 11:13:32 UTC (rev 18689)
@@ -3,6 +3,7 @@
   * Fixes: NB#121472 - mmc-pre-unmount crashes on mass storage mode when
     memory is full
   * Changes for the new USB handling architecture.
+  * Reduce some syslog spam.
 
  -- Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>  Wed, 10 Jun 2009 09:47:20 +0300
 

Modified: projects/haf/trunk/ke-recv/debian/init.d
===================================================================
--- projects/haf/trunk/ke-recv/debian/init.d	2009-06-10 10:33:01 UTC (rev 18688)
+++ projects/haf/trunk/ke-recv/debian/init.d	2009-06-10 11:13:32 UTC (rev 18689)
@@ -60,14 +60,22 @@
 	# Start daemons
 	echo -n "Starting $DESC: "
 
-        # g_nokia is loaded as the default
-        modprobe g_nokia
+        # g_nada is loaded as the default
+        modprobe g_nada
 
         # check if this is the first boot
         if [ -e /home/user/first-boot-flag ]; then
                 export FIRST_BOOT=1
         fi
 
+        # check if this is TA image
+        if [ -x /usr/bin/sysinfo-tool ]; then
+                sysinfo-tool -g /device/sw-release-ver | grep -q _TA_
+                if [ $? = 0 ]; then
+                        export TA_IMAGE=1
+                fi
+        fi
+
 	if [ -x $DTOOL ]; then
         	$DTOOL -U $USER -n -1 -t $DAEMON
 	else

Modified: projects/haf/trunk/ke-recv/src/ke-recv.c
===================================================================
--- projects/haf/trunk/ke-recv/src/ke-recv.c	2009-06-10 10:33:01 UTC (rev 18688)
+++ projects/haf/trunk/ke-recv/src/ke-recv.c	2009-06-10 11:13:32 UTC (rev 18689)
@@ -1629,15 +1629,31 @@
         return 1;
 }
 
+#define USB_PROP "usb_device.vbus"
+
 usb_state_t get_usb_state(void)
 {
         usb_state_t ret;
-        char *prop = NULL;
+        int prop = -1;
 
         if (usb_cable_udi != NULL) {
-                prop = get_prop_string(usb_cable_udi, "usb_device.mode");
+                prop = get_prop_int(usb_cable_udi, USB_PROP);
         }
 
+        if (prop == -1) {
+                ULOG_ERR_F("couldn't read '" USB_PROP "' from %s",
+                           usb_cable_udi);
+                ret = S_INVALID_USB_STATE;
+        } else if (prop == 0) {
+                ret = S_CABLE_DETACHED;
+        } else if (prop == 1) {
+                ret = S_PERIPHERAL_WAIT;
+        } else {
+                ULOG_ERR_F("unknown " USB_PROP " value %d", prop);
+                ret = S_CABLE_DETACHED;
+        }
+
+#if 0  /* old architecture */
         if (prop == NULL) {
                 ULOG_ERR_F("couldn't read 'usb_device.mode' from %s",
                            usb_cable_udi);
@@ -1660,6 +1676,7 @@
                 ret = S_CABLE_DETACHED;
         }
         if (prop != NULL) libhal_free_string(prop);
+#endif
 
         return ret;
 }
@@ -1677,6 +1694,7 @@
                  "button.type", "usb.cable", &num_devices, &error);
         if (list != NULL && num_devices >= 1) {
                 usb_cable_udi = strdup(list[0]);
+                ULOG_DEBUG_F("using USB cable udi '%s'", usb_cable_udi);
         } else {
                 ULOG_ERR_F("coudn't find USB cable indicator");
         } 
@@ -1786,7 +1804,11 @@
         if (state == S_HOST) {
                 handle_usb_event(E_ENTER_HOST_MODE);
         } else if (state == S_PERIPHERAL_WAIT) {
-                handle_usb_event(E_ENTER_PERIPHERAL_WAIT_MODE);
+                if (getenv("TA_IMAGE"))
+                        /* in TA image, we don't wait for user's decision */
+                        handle_usb_event(E_ENTER_PCSUITE_MODE);
+                else
+                        handle_usb_event(E_ENTER_PERIPHERAL_WAIT_MODE);
         } else if (state == S_CABLE_DETACHED) {
                 handle_usb_event(E_CABLE_DETACHED);
         }
@@ -1872,9 +1894,13 @@
                           dbus_bool_t is_added)
 {
         if (is_added) {
+                /*
                 ULOG_DEBUG_F("udi %s added %s", udi, key);
+                */
         } else if (is_removed) {
+                /*
                 ULOG_DEBUG_F("udi %s removed %s", udi, key);
+                */
         } else {
                 int val;
 
@@ -1884,7 +1910,7 @@
                         return;
                 }
 
-                if (strcmp("usb_device.mode", key) == 0) {
+                if (strcmp(USB_PROP, key) == 0) {
                         check_usb_cable();
                         return;
                 }
@@ -2995,7 +3021,8 @@
                         break;
                 case E_ENTER_PCSUITE_MODE:
                         if (usb_state == S_PERIPHERAL_WAIT ||
-                            usb_state == S_CHARGING) {
+                            usb_state == S_CHARGING ||
+                            usb_state == S_CABLE_DETACHED) {
                                 usb_state = S_PCSUITE;
                                 if (!enable_pcsuite()) {
                                         ULOG_ERR_F("Couldn't enable PC Suite");

Modified: projects/haf/trunk/ke-recv/src/osso-usb-mass-storage-disable.sh
===================================================================
--- projects/haf/trunk/ke-recv/src/osso-usb-mass-storage-disable.sh	2009-06-10 10:33:01 UTC (rev 18688)
+++ projects/haf/trunk/ke-recv/src/osso-usb-mass-storage-disable.sh	2009-06-10 11:13:32 UTC (rev 18689)
@@ -26,7 +26,11 @@
 
 /sbin/lsmod | grep g_file_storage > /dev/null
 if [ $? != 0 ]; then
-  # the module is not loaded
+  # the module is not loaded, ensure g_nada
+  /sbin/modprobe g_nada
+  if [ $? != 0 ]; then
+    logger "$0: failed to install g_nada"
+  fi
   exit 0
 fi
 
@@ -35,27 +39,46 @@
 LUN1='gadget-lun1'
 
 if [ $# = 0 ]; then
-  # unload all
+  # unload both
   echo "" > $GADGETPATH/$LUN0/file
   echo "" > $GADGETPATH/$LUN1/file
-  exit 0
+else
+  # NOTE: works only for 1 or 2 device arguments
+  for lun in $LUN0 $LUN1; do
+    grep $1 $GADGETPATH/$lun/file > /dev/null
+    RC=$?
+
+    if [ $# = 2 ]; then
+      grep $2 $GADGETPATH/$lun/file > /dev/null
+      RC2=$?
+    else
+      RC2=1
+    fi
+
+    if [ $RC = 0 -o $RC2 = 0 ]; then
+      echo "" > $GADGETPATH/$lun/file
+    fi
+  done
 fi
 
-# NOTE: works only for 1 or 2 device arguments
-for lun in $LUN0 $LUN1; do
-  grep $1 $GADGETPATH/$lun/file > /dev/null
-  RC=$?
+# unload g_file_storage only if it is "empty"
+TMP1=$(cat $GADGETPATH/$LUN0/file)
+TMP2=$(cat $GADGETPATH/$LUN1/file)
 
-  if [ $# = 2 ]; then
-    grep $2 $GADGETPATH/$lun/file > /dev/null
-    RC2=$?
-  else
-    RC2=1
+if [ x${TMP1}${TMP2}x = xx ]; then
+  /sbin/lsmod | grep g_file_storage > /dev/null
+  if [ $? = 0 ]; then
+    logger "$0: removing g_file_storage"
+    /sbin/rmmod g_file_storage
+    if [ $? != 0 ]; then
+        logger "$0: failed to rmmod g_file_storage!"
+    fi
   fi
 
-  if [ $RC = 0 -o $RC2 = 0 ]; then
-    echo "" > $GADGETPATH/$lun/file
+  /sbin/modprobe g_nada
+  if [ $? != 0 ]; then
+    logger "$0: failed to install g_nada"
   fi
-done
+fi
 
 exit 0

Modified: projects/haf/trunk/ke-recv/src/osso-usb-mass-storage-enable.sh
===================================================================
--- projects/haf/trunk/ke-recv/src/osso-usb-mass-storage-enable.sh	2009-06-10 10:33:01 UTC (rev 18688)
+++ projects/haf/trunk/ke-recv/src/osso-usb-mass-storage-enable.sh	2009-06-10 11:13:32 UTC (rev 18689)
@@ -3,7 +3,7 @@
 #
 # Copyright (C) 2004-2009 Nokia Corporation. All rights reserved.
 #
-# Contact: Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
+# Author: Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
 #
 # This program is free software; you can redistribute it and/or
 # modify it under the terms of the GNU General Public License 
@@ -19,41 +19,13 @@
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
 # 02110-1301 USA
 
-RC=0
-
-/sbin/lsmod | grep g_nokia > /dev/null
+/sbin/lsmod | grep g_nada > /dev/null
 if [ $? = 0 ]; then
-    logger "$0: removing g_nokia"
-
-    initctl emit G_NOKIA_REMOVE
-
-    PNATD_PID=`pidof pnatd`
-    if [ $? = 0 ]; then
-        kill $PNATD_PID
-    else
-        logger "$0: pnatd is not running"
-    fi
-    OBEXD_PID=`pidof obexd`
-    if [ $? = 0 ]; then
-        kill -HUP $OBEXD_PID
-    else
-        logger "$0: obexd is not running"
-    fi
-    SYNCD_PID=`pidof syncd`
-    if [ $? = 0 ]; then
-        kill $SYNCD_PID
-    else
-        logger "$0: syncd is not running"
-    fi
-
-    sleep 2
-    /sbin/rmmod g_nokia
-    if [ $? != 0 ]; then
-        logger "$0: failed to rmmod g_nokia!"
-        exit 1
-    fi
+    logger "$0: removing g_nada"
+    /sbin/rmmod g_nada
 fi
 
+RC=0
 /sbin/lsmod | grep g_file_storage > /dev/null
 if [ $? != 0 ]; then
     /sbin/modprobe g_file_storage stall=0 luns=2 removable
@@ -62,6 +34,11 @@
 
 if [ $RC != 0 ]; then
     logger "$0: failed to install g_file_storage"
+    # put g_nada back
+    /sbin/modprobe g_nada
+    if [ $? != 0 ]; then
+      logger "$0: failed to install g_nada back"
+    fi
     exit 1
 fi
 

Modified: projects/haf/trunk/ke-recv/src/pcsuite-disable.sh
===================================================================
--- projects/haf/trunk/ke-recv/src/pcsuite-disable.sh	2009-06-10 10:33:01 UTC (rev 18688)
+++ projects/haf/trunk/ke-recv/src/pcsuite-disable.sh	2009-06-10 11:13:32 UTC (rev 18689)
@@ -1,9 +1,9 @@
 #!/bin/sh
 # This file is part of ke-recv
 #
-# Copyright (C) 2008 Nokia Corporation. All rights reserved.
+# Copyright (C) 2008-2009 Nokia Corporation. All rights reserved.
 #
-# Contact: Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
+# Author: Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
 #
 # This program is free software; you can redistribute it and/or
 # modify it under the terms of the GNU General Public License 
@@ -19,5 +19,49 @@
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
 # 02110-1301 USA
 
-echo "$0: I ain't no doing nothing"
+/sbin/lsmod | grep g_nokia > /dev/null
+if [ $? = 0 ]; then
+    logger "$0: removing g_nokia"
+
+    initctl emit G_NOKIA_REMOVE
+
+    PNATD_PID=`pidof pnatd`
+    if [ $? = 0 ]; then
+        kill $PNATD_PID
+    else
+        logger "$0: pnatd is not running"
+    fi
+    OBEXD_PID=`pidof obexd`
+    if [ $? = 0 ]; then
+        kill -HUP $OBEXD_PID
+    else
+        logger "$0: obexd is not running"
+    fi
+    SYNCD_PID=`pidof syncd`
+    if [ $? = 0 ]; then
+        kill $SYNCD_PID
+    else
+        logger "$0: syncd is not running"
+    fi
+
+    sleep 2
+    /sbin/rmmod g_nokia
+    if [ $? != 0 ]; then
+        logger "$0: failed to rmmod g_nokia!"
+        exit 1
+    fi
+fi
+
+RC=0
+/sbin/lsmod | grep g_nada > /dev/null
+if [ $? != 0 ]; then
+    /sbin/modprobe g_nada
+    RC=$?
+fi
+
+if [ $RC != 0 ]; then
+    logger "$0: failed to install g_nada"
+    exit 1
+fi
+
 exit 0

Modified: projects/haf/trunk/ke-recv/src/pcsuite-enable.sh
===================================================================
--- projects/haf/trunk/ke-recv/src/pcsuite-enable.sh	2009-06-10 10:33:01 UTC (rev 18688)
+++ projects/haf/trunk/ke-recv/src/pcsuite-enable.sh	2009-06-10 11:13:32 UTC (rev 18689)
@@ -19,13 +19,13 @@
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
 # 02110-1301 USA
 
-/sbin/lsmod | grep g_file_storage > /dev/null
+/sbin/lsmod | grep g_nada > /dev/null
 if [ $? = 0 ]; then
-    logger "$0: removing g_file_storage"
-    initctl emit G_FILE_STORAGE_REMOVE
-    /sbin/rmmod g_file_storage
+    logger "$0: removing g_nada"
+    /sbin/rmmod g_nada
 fi
 
+RC=0
 /sbin/lsmod | grep g_nokia > /dev/null
 if [ $? != 0 ]; then
     /sbin/modprobe g_nokia
@@ -34,15 +34,21 @@
 
 if [ $RC != 0 ]; then
     logger "$0: failed to install g_nokia"
+    # put g_nada back
+    /sbin/modprobe g_nada
+    if [ $? != 0 ]; then
+      logger "$0: failed to install g_nada back"
+    fi
     exit 1
-else
-    # TODO: remove the sleep when the wait is in place
-    sleep 2
 fi
 
+# TODO: wait for device files
+sleep 1
+
 initctl emit --no-wait G_NOKIA_READY
 
-# TODO: wait for the devices
+# TODO: wait for daemons
+sleep 1
 
 OBEXD_PID=`pidof obexd`
 if [ $? != 0 ]; then

More information about the maemo-commits mailing list