Re: [PATCH] Write discoverable mode on storage after HCI response

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello all,

I'm writing in order to discuss the point when bluez writes Discoverable Mode value.

Currently BlueZ writes it on the storage right after it sends HCI command.
Except DiscoverableTimeout is 0 case. it works fine.
hciconfig, bluez Adapter.GetProperties 's value are the same with the discoverable mode
on the storage.

But in case of DiscoverableTimeout is not 0 the value on the storage should be updated after BlueZ gets HCI Discoverable Mode change response. However the change is not
 applied on the storage , so it's skipped.
* Fortunately hciconfig, Adapter.GetProperties 's value are updated fine.

I think if we move the logic that writing the value on the storage FROM the point before bluez sends HCI commands TO the point after we get HCI response , this problem
would be resolved naturally.

If you need more explanation, please ask me.

Regards
chanyeol

On 08/08/2012 10:03 PM, chanyeol.park@xxxxxxxxxxx wrote:
From: Chan-yeol Park <chanyeol.park@xxxxxxxxxxx>

Right after HCI mode command is sent, Bluez writes mode value
on the storage. but in case of DiscoverableTimeout, storage value
is not updated like adapter->mode value. So this logic is moved.
---
  src/adapter.c |   11 ++++++-----
  1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/src/adapter.c b/src/adapter.c
index acb845e..1b8e3b0 100644
--- a/src/adapter.c
+++ b/src/adapter.c
@@ -302,7 +302,6 @@ static int set_mode(struct btd_adapter *adapter, uint8_t new_mode,
done:
  	modestr = mode2str(new_mode);
-	write_device_mode(&adapter->bdaddr, modestr);
DBG("%s", modestr); @@ -2244,6 +2243,12 @@ static void set_mode_complete(struct btd_adapter *adapter)
  		adapter->mode_sessions = NULL;
  	}
+ modestr = mode2str(adapter->mode);
+
+	DBG("%s", modestr);
+
+	write_device_mode(&adapter->bdaddr, modestr);
+
  	if (adapter->pending_mode == NULL)
  		return;
@@ -2268,10 +2273,6 @@ static void set_mode_complete(struct btd_adapter *adapter)
  		g_dbus_send_message(connection, reply);
  	}
- modestr = mode2str(adapter->mode);
-
-	DBG("%s", modestr);
-
  	/* restore if the mode doesn't matches the pending */
  	if (err != 0) {
  		write_device_mode(&adapter->bdaddr, modestr);

--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux