Linux bluetooth development
 help / color / mirror / Atom feed
* [PATCH 1/3] android/gatt: Fix reading attribute value
@ 2014-05-16  8:37 Marcin Kraglak
  2014-05-16  8:37 ` [PATCH 2/3] android/gatt: Set length to READ_INIT before read request Marcin Kraglak
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Marcin Kraglak @ 2014-05-16  8:37 UTC (permalink / raw)
  To: linux-bluetooth

If value and length was set by callback while gatt_db_read(), don't set
length to READ_PENDING. We have to set it only for async callbacks, then
length is still READ_INIT.
---
 android/gatt.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/android/gatt.c b/android/gatt.c
index b367eef..2a2e649 100644
--- a/android/gatt.c
+++ b/android/gatt.c
@@ -3670,7 +3670,7 @@ static void read_requested_attributes(void *data, void *user_data)
 
 		memcpy(resp_data->value, value, value_len);
 		resp_data->length = value_len;
-	} else {
+	} else if (resp_data->length == READ_INIT) {
 		resp_data->length = READ_PENDING;
 	}
 }
-- 
1.9.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 2/3] android/gatt: Set length to READ_INIT before read request
  2014-05-16  8:37 [PATCH 1/3] android/gatt: Fix reading attribute value Marcin Kraglak
@ 2014-05-16  8:37 ` Marcin Kraglak
  2014-05-16  8:37 ` [PATCH 3/3] android/gatt: Don't try send responses after process_dev_pending_req() Marcin Kraglak
  2014-05-16  8:45 ` [PATCH 1/3] android/gatt: Fix reading attribute value Szymon Janc
  2 siblings, 0 replies; 4+ messages in thread
From: Marcin Kraglak @ 2014-05-16  8:37 UTC (permalink / raw)
  To: linux-bluetooth

It is needed while we pass read request to framework.
---
 android/gatt.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/android/gatt.c b/android/gatt.c
index 2a2e649..f2fd17d 100644
--- a/android/gatt.c
+++ b/android/gatt.c
@@ -4337,6 +4337,7 @@ static uint8_t read_by_type(const uint8_t *cmd, uint16_t cmd_len,
 			return ATT_ECODE_INSUFF_RESOURCES;
 		}
 
+		data->length = READ_INIT;
 		data->handle = handle;
 		queue_push_tail(device->pending_requests, data);
 	}
@@ -4550,6 +4551,7 @@ static uint8_t find_by_type_request(const uint8_t *cmd, uint16_t cmd_len,
 			return ATT_ECODE_INSUFF_RESOURCES;
 		}
 
+		data->length = READ_INIT;
 		data->handle = handle;
 		data->filter_vlen = search_vlen;
 		memcpy(data->filter_value, search_value, search_vlen);
-- 
1.9.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 3/3] android/gatt: Don't try send responses after process_dev_pending_req()
  2014-05-16  8:37 [PATCH 1/3] android/gatt: Fix reading attribute value Marcin Kraglak
  2014-05-16  8:37 ` [PATCH 2/3] android/gatt: Set length to READ_INIT before read request Marcin Kraglak
@ 2014-05-16  8:37 ` Marcin Kraglak
  2014-05-16  8:45 ` [PATCH 1/3] android/gatt: Fix reading attribute value Szymon Janc
  2 siblings, 0 replies; 4+ messages in thread
From: Marcin Kraglak @ 2014-05-16  8:37 UTC (permalink / raw)
  To: linux-bluetooth

Process_dev_pending_requests call send_pending_respone, so we don't
have to call it again.
---
 android/gatt.c | 10 ----------
 1 file changed, 10 deletions(-)

diff --git a/android/gatt.c b/android/gatt.c
index f2fd17d..9bbcc48 100644
--- a/android/gatt.c
+++ b/android/gatt.c
@@ -4346,11 +4346,6 @@ static uint8_t read_by_type(const uint8_t *cmd, uint16_t cmd_len,
 
 	process_dev_pending_requests(device, ATT_OP_READ_BY_TYPE_REQ);
 
-	/* We send immediate if no data left to be filled by async callbacks */
-	if (!queue_find(device->pending_requests, match_pending_dev_request,
-									NULL))
-		send_dev_pending_response(device, ATT_OP_READ_BY_TYPE_REQ);
-
 	return 0;
 }
 
@@ -4565,11 +4560,6 @@ static uint8_t find_by_type_request(const uint8_t *cmd, uint16_t cmd_len,
 
 	process_dev_pending_requests(device, ATT_OP_FIND_BY_TYPE_REQ);
 
-	/* Send if no response_data elements left to be filled by callbacks */
-	if (!queue_find(device->pending_requests, match_pending_dev_request,
-									NULL))
-		send_dev_pending_response(device, cmd[0]);
-
 	return 0;
 }
 
-- 
1.9.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/3] android/gatt: Fix reading attribute value
  2014-05-16  8:37 [PATCH 1/3] android/gatt: Fix reading attribute value Marcin Kraglak
  2014-05-16  8:37 ` [PATCH 2/3] android/gatt: Set length to READ_INIT before read request Marcin Kraglak
  2014-05-16  8:37 ` [PATCH 3/3] android/gatt: Don't try send responses after process_dev_pending_req() Marcin Kraglak
@ 2014-05-16  8:45 ` Szymon Janc
  2 siblings, 0 replies; 4+ messages in thread
From: Szymon Janc @ 2014-05-16  8:45 UTC (permalink / raw)
  To: Marcin Kraglak; +Cc: linux-bluetooth

Hi Marcin,

On Friday 16 of May 2014 10:37:37 Marcin Kraglak wrote:
> If value and length was set by callback while gatt_db_read(), don't set
> length to READ_PENDING. We have to set it only for async callbacks, then
> length is still READ_INIT.
> ---
>  android/gatt.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/android/gatt.c b/android/gatt.c
> index b367eef..2a2e649 100644
> --- a/android/gatt.c
> +++ b/android/gatt.c
> @@ -3670,7 +3670,7 @@ static void read_requested_attributes(void *data, void *user_data)
>  
>  		memcpy(resp_data->value, value, value_len);
>  		resp_data->length = value_len;
> -	} else {
> +	} else if (resp_data->length == READ_INIT) {
>  		resp_data->length = READ_PENDING;
>  	}
>  }
> 

All patches applied, thanks.

-- 
Best regards, 
Szymon Janc

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2014-05-16  8:45 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-05-16  8:37 [PATCH 1/3] android/gatt: Fix reading attribute value Marcin Kraglak
2014-05-16  8:37 ` [PATCH 2/3] android/gatt: Set length to READ_INIT before read request Marcin Kraglak
2014-05-16  8:37 ` [PATCH 3/3] android/gatt: Don't try send responses after process_dev_pending_req() Marcin Kraglak
2014-05-16  8:45 ` [PATCH 1/3] android/gatt: Fix reading attribute value Szymon Janc

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox