* [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