static int __ws_p2p_firmware_start(const char *interface_name)
{
- int rv = 0;
-
- rv = hal_wifi_get_backend();
- if (rv < 0) {
- WDP_LOGD("hal_wifi_get_backend() failed, ret: %d", rv);
- return -1;
+ GError *error = NULL;
+ GDBusConnection *conn = g_bus_get_sync(G_BUS_TYPE_SYSTEM, NULL, &error);
+ if (conn == NULL) {
+ WDP_LOGE("Failed to get system bus");
+ return -1;
}
- rv = hal_wifi_p2p_start(interface_name);
- if (rv < 0) {
- WDP_LOGD("hal_wifi_p2p_start() failed, ret: %d", rv);
- return -1;
+ error = NULL;
+ GVariant *params = g_variant_new("(sb)", interface_name, FALSE);
+ GVariant *reply = g_dbus_connection_call_sync(
+ conn,
+ NETCONFIG_SERVICE, /* bus name */
+ NETCONFIG_WIFI_PATH, /* object path */
+ NETCONFIG_WIFI_INTERFACE, /* interface name */
+ "LoadDriver", /* method name */
+ params, /* GVariant *params */
+ NULL, /* reply_type */
+ G_DBUS_CALL_FLAGS_NONE, /* flags */
+ SUPPLICANT_TIMEOUT , /* timeout */
+ NULL, /* cancellable */
+ &error); /* error */
+
+ if (error != NULL) {
+ WDP_LOGE("Error! Failed to call method: [%s]", error->message);
+ g_error_free(error);
+ __WDP_LOG_FUNC_EXIT__;
}
- WDP_LOGI("Successfully loaded p2p device driver");
+ if (reply)
+ g_variant_unref(reply);
+ g_object_unref(conn);
+
return 0;
}