From 39a3a90c3e0bd6c719d71d9904825c7a8955555f Mon Sep 17 00:00:00 2001 From: Simo Piiroinen Date: Thu, 12 Jul 2018 10:28:14 +0300 Subject: [PATCH] [usb_moded] Move connect/disconnect signaling to udev Cable connect/disconnect is detected at udev module - handling the related dbus signaling in the same place allows simplifying the usb mode related logic. Signed-off-by: Simo Piiroinen --- src/usb_moded-udev.c | 5 +++++ src/usb_moded.c | 16 +--------------- 2 files changed, 6 insertions(+), 15 deletions(-) diff --git a/src/usb_moded-udev.c b/src/usb_moded-udev.c index ee621f7..c842668 100644 --- a/src/usb_moded-udev.c +++ b/src/usb_moded-udev.c @@ -44,6 +44,7 @@ #include "usb_moded-udev.h" #include "usb_moded.h" #include "usb_moded-modes.h" +#include "usb_moded-dbus-private.h" /* ========================================================================= * * Types @@ -202,10 +203,12 @@ static void cable_state_changed(void) break; case CABLE_STATE_CHARGER_CONNECTED: log_debug("*** HANDLE CHARGER DISCONNECT"); + umdbus_send_state_signal(CHARGER_DISCONNECTED); usbmoded_set_charger_connected(false); break; case CABLE_STATE_PC_CONNECTED: log_debug("*** HANDLE PC DISCONNECT"); + umdbus_send_state_signal(USB_DISCONNECTED); usbmoded_set_usb_connected(false); break; } @@ -221,10 +224,12 @@ static void cable_state_changed(void) break; case CABLE_STATE_CHARGER_CONNECTED: log_debug("*** HANDLE CHARGER CONNECT"); + umdbus_send_state_signal(CHARGER_CONNECTED); usbmoded_set_charger_connected(true); break; case CABLE_STATE_PC_CONNECTED: log_debug("*** HANDLE PC CONNECT"); + umdbus_send_state_signal(USB_CONNECTED); usbmoded_set_usb_connected(true); break; } diff --git a/src/usb_moded.c b/src/usb_moded.c index 7193b60..4a5a483 100644 --- a/src/usb_moded.c +++ b/src/usb_moded.c @@ -763,26 +763,14 @@ void usbmoded_set_usb_connected_state(void) */ void usbmoded_set_usb_connected(bool connected) { - /* Do not go through the routine if already connected to avoid - * spurious load/unloads due to faulty signalling - * NOKIA: careful with devicelock - */ if( !usbmoded_set_connection_state(connected) ) goto EXIT; if( usbmoded_get_connection_state() ) { - log_debug("usb connected\n"); - - /* signal usb connected */ - umdbus_send_state_signal(USB_CONNECTED); - - /* choose mode, then call usbmoded_set_usb_mode(chosen_mode) - */ + /* choose mode + call usbmoded_set_usb_mode() */ usbmoded_set_usb_connected_state(); } else { - log_debug("usb disconnected\n"); - umdbus_send_state_signal(USB_DISCONNECTED); usbmoded_set_usb_mode(MODE_UNDEFINED); } EXIT: @@ -800,11 +788,9 @@ void usbmoded_set_charger_connected(bool state) goto EXIT; if( usbmoded_get_connection_state() ) { - umdbus_send_state_signal(CHARGER_CONNECTED); usbmoded_set_usb_mode(MODE_CHARGER); } else { - umdbus_send_state_signal(CHARGER_DISCONNECTED); usbmoded_set_usb_mode(MODE_UNDEFINED); } EXIT: