[maemo-commits] [maemo-commits] r17506 - in projects/haf/trunk/ke-recv: debian src
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Tue Feb 24 16:41:52 EET 2009
- Previous message: [maemo-commits] r17505 - projects/haf/trunk/clutter/debian
- Next message: [maemo-commits] r17507 - in projects/haf/trunk/hildon-welcome: . debian src
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: kihamala Date: 2009-02-24 16:41:46 +0200 (Tue, 24 Feb 2009) New Revision: 17506 Modified: projects/haf/trunk/ke-recv/debian/changelog projects/haf/trunk/ke-recv/src/ke-recv.c projects/haf/trunk/ke-recv/src/osso-usb-mass-storage-disable.sh Log: fixes for USB stuhv Modified: projects/haf/trunk/ke-recv/debian/changelog =================================================================== --- projects/haf/trunk/ke-recv/debian/changelog 2009-02-24 11:51:13 UTC (rev 17505) +++ projects/haf/trunk/ke-recv/debian/changelog 2009-02-24 14:41:46 UTC (rev 17506) @@ -20,6 +20,10 @@ * Add max. retry limit to init_usb_cable_status(), give up after retrying 100 times. * Remove automatically generated files from SVN. + * Fix problem with determining the UDI for USB cable, it was resorting to a + unusable default value. + * Handle "UNDEFINED" value for 'usb_device.mode' when switching modules and + the USB cable is connected. -- Kimmo Hämäläinen <kimmo.hamalainen at nokia.com> Tue, 24 Feb 2009 08:25:34 +0200 Modified: projects/haf/trunk/ke-recv/src/ke-recv.c =================================================================== --- projects/haf/trunk/ke-recv/src/ke-recv.c 2009-02-24 11:51:13 UTC (rev 17505) +++ projects/haf/trunk/ke-recv/src/ke-recv.c 2009-02-24 14:41:46 UTC (rev 17506) @@ -3,7 +3,7 @@ This file is part of ke-recv. - Copyright (C) 2004-2008 Nokia Corporation. All rights reserved. + Copyright (C) 2004-2009 Nokia Corporation. All rights reserved. Author: Kimmo Hämäläinen <kimmo.hamalainen at nokia.com> @@ -36,8 +36,6 @@ #define FDO_OBJECT_PATH "/org/freedesktop/Notifications" #define FDO_INTERFACE "org.freedesktop.Notifications" #define USB_DOMAIN "hildon-status-bar-usb" -#define DEFAULT_USB_CABLE_UDI \ - "/org/freedesktop/Hal/devices/usb_device_0_0_musb_hdrc" #define DESKTOP_SVC "com.nokia.hildon-desktop" #define FREMANTLE_MODE 1 @@ -100,6 +98,7 @@ static int mount_usb_volumes(void); static storage_info_t *storage_from_list(const char *udi); static mmc_info_t *mmc_from_dev_name(const char *dev); +static void get_usb_cable_udi(); static void set_usb_mode_key(const char *mode) { @@ -1639,6 +1638,10 @@ } else if (strcmp(prop, "b_idle") == 0 || strcmp(prop, "a_idle") == 0) { ret = S_CABLE_DETACHED; + } else if (strcmp(prop, "UNDEFINED") == 0) { + ULOG_ERR_F("'usb_device.mode' is UNDEFINED, not changing" + " the state"); + ret = usb_state; } else { ULOG_ERR_F("unknown USB cable type '%s'", prop); ret = S_CABLE_DETACHED; @@ -1648,6 +1651,25 @@ return ret; } +static void get_usb_cable_udi() +{ + char **list; + int num_devices = 0; + DBusError error; + + dbus_error_init(&error); + + /* figure out USB cable and mode */ + list = libhal_manager_find_device_string_match(hal_ctx, + "button.type", "usb.cable", &num_devices, &error); + if (list != NULL && num_devices >= 1) { + usb_cable_udi = strdup(list[0]); + } else { + ULOG_ERR_F("coudn't find USB cable indicator"); + } + libhal_free_string_array(list); +} + static void read_config() { int num_hosts = 0, num_devices = 0, i; @@ -1707,24 +1729,10 @@ } libhal_free_string_array(list); - /* figure out USB cable and mode */ - list = libhal_manager_find_device_string_match(hal_ctx, - "button.type", "usb.cable", &num_devices, &error); - if (list != NULL && num_devices == 1) { - usb_cable_udi = strdup(list[0]); - } else { - ULOG_ERR_F("coudn't find USB cable indicator, using " - DEFAULT_USB_CABLE_UDI); - usb_cable_udi = DEFAULT_USB_CABLE_UDI; - } - libhal_free_string_array(list); + get_usb_cable_udi(); if (usb_cable_udi != NULL) { init_usb_cable_status((void*)1); - } else { - usb_state = S_CABLE_DETACHED; - inform_usb_cable_attached(FALSE); - set_usb_mode_key("idle"); } } @@ -1782,6 +1790,12 @@ return FALSE; } + if (usb_cable_udi == NULL) { + get_usb_cable_udi(); + if (usb_cable_udi) + add_prop_watch(usb_cable_udi); + } + usb_state = get_usb_state(); if (usb_state == S_INVALID_USB_STATE) { if (--retry_times > 0) { @@ -3145,7 +3159,8 @@ add_prop_watch(camera_turned_udi); */ add_prop_watch(slide_keyboard_udi); - add_prop_watch(usb_cable_udi); + if (usb_cable_udi) + add_prop_watch(usb_cable_udi); if (!libhal_ctx_set_device_added(hal_ctx, device_added)) { ULOG_CRIT_L("libhal_ctx_set_device_added failed"); @@ -3185,8 +3200,7 @@ * (needs rechecking and possibly fixing hildon-desktop) */ desktop_started = TRUE; - if (usb_state != S_INVALID_USB_STATE /* valid USB state is required */ - && (desktop_started || first_boot)) { + if (usb_state != S_INVALID_USB_STATE) { /* initialise GConf keys and possibly mount or USB-share */ if (int_mmc_enabled) { handle_event(E_INIT_CARD, &int_mmc, NULL); 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-02-24 11:51:13 UTC (rev 17505) +++ projects/haf/trunk/ke-recv/src/osso-usb-mass-storage-disable.sh 2009-02-24 14:41:46 UTC (rev 17506) @@ -1,7 +1,7 @@ #!/bin/sh # This file is part of ke-recv # -# Copyright (C) 2004-2006 Nokia Corporation. All rights reserved. +# Copyright (C) 2004-2009 Nokia Corporation. All rights reserved. # # Contact: Kimmo Hämäläinen <kimmo.hamalainen at nokia.com> # @@ -30,8 +30,6 @@ exit 0 fi -initctl emit G_FILE_STORAGE_REMOVE - GADGETPATH='/sys/devices/platform/musb_hdrc/gadget' LUN0='gadget-lun0' LUN1='gadget-lun1'
- Previous message: [maemo-commits] r17505 - projects/haf/trunk/clutter/debian
- Next message: [maemo-commits] r17507 - in projects/haf/trunk/hildon-welcome: . debian src
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]