All of lore.kernel.org
 help / color / mirror / Atom feed
From: Szymon Janc <szymon.janc@tieto.com>
To: Andrei Emeltchenko <Andrei.Emeltchenko.news@gmail.com>
Cc: linux-bluetooth@vger.kernel.org
Subject: Re: [PATCHv3 05/12] android/health: Refactor channel creation
Date: Fri, 27 Jun 2014 15:54:20 +0200	[thread overview]
Message-ID: <2928119.zKrzGcmLP8@uw000953> (raw)
In-Reply-To: <1403868303-8129-5-git-send-email-Andrei.Emeltchenko.news@gmail.com>

Hi Andrei,

On Friday 27 of June 2014 14:24:56 Andrei Emeltchenko wrote:
> From: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
> 
> Avoid using app_id when we shall use app structure itself. Otherwise we
> end up with unnecessary searches for app and problems for incoming
> connections.
> ---
>  android/health.c | 43 ++++++++++++++++++++++---------------------
>  1 file changed, 22 insertions(+), 21 deletions(-)
> 
> diff --git a/android/health.c b/android/health.c
> index 3cb2016..d664324 100644
> --- a/android/health.c
> +++ b/android/health.c
> @@ -1477,43 +1477,37 @@ static struct health_device *create_device(struct health_app *app,
>  	return dev;
>  }
>  
> -static struct health_device *get_device(uint16_t app_id, const uint8_t *addr)
> +static struct health_app *get_app(uint16_t app_id)
> +{
> +	return queue_find(apps, match_app_by_id, INT_TO_PTR(app_id));
> +}
> +
> +static struct health_device *get_device(struct health_app *app,
> +							const uint8_t *addr)
>  {
> -	struct health_app *app;
>  	struct health_device *dev;
>  	bdaddr_t bdaddr;
>  
> -	app = queue_find(apps, match_app_by_id, INT_TO_PTR(app_id));
> -	if (!app)
> -		return NULL;
> -
>  	android2bdaddr(addr, &bdaddr);
>  	dev = queue_find(app->devices, match_dev_by_addr, &bdaddr);
>  	if (dev)
>  		return dev;
>  
> -	dev = create_device(app, addr);
> -	if (dev)
> -		dev->app_id = app_id;
> -
> -	return dev;
> +	return create_device(app, addr);
>  }
>  
> -static struct health_channel *create_channel(uint16_t app_id,
> +static struct health_channel *create_channel(struct health_app *app,
>  						uint8_t mdep_index,
>  						struct health_device *dev)
>  {
> -	struct health_app *app;
>  	struct mdep_cfg *mdep;
>  	struct health_channel *channel;
>  	uint8_t index;
>  	static unsigned int channel_id = 1;
>  
> -	if (!dev)
> -		return NULL;
> +	DBG("mdep %u", mdep_index);
>  
> -	app = queue_find(apps, match_app_by_id, INT_TO_PTR(app_id));
> -	if (!app)
> +	if (!dev || !app)
>  		return NULL;
>  
>  	index = mdep_index + 1;
> @@ -1539,7 +1533,7 @@ static struct health_channel *create_channel(uint16_t app_id,
>  	return channel;
>  }
>  
> -static struct health_channel *get_channel(uint16_t app_id,
> +static struct health_channel *get_channel(struct health_app *app,
>  						uint8_t mdep_index,
>  						struct health_device *dev)
>  {
> @@ -1555,7 +1549,7 @@ static struct health_channel *get_channel(uint16_t app_id,
>  	if (channel)
>  		return channel;
>  
> -	return create_channel(app_id, mdep_index, dev);
> +	return create_channel(app, index, dev);
>  }
>  
>  static void bt_health_connect_channel(const void *buf, uint16_t len)
> @@ -1564,14 +1558,21 @@ static void bt_health_connect_channel(const void *buf, uint16_t len)
>  	struct hal_rsp_health_connect_channel rsp;
>  	struct health_device *dev = NULL;
>  	struct health_channel *channel = NULL;
> +	struct health_app *app;
>  
>  	DBG("");
>  
> -	dev = get_device(cmd->app_id, cmd->bdaddr);
> +	app = get_app(cmd->app_id);
> +	if (!app)
> +		goto fail;
> +
> +	dev = get_device(app, cmd->bdaddr);
>  	if (!dev)
>  		goto fail;
>  
> -	channel = get_channel(cmd->app_id, cmd->mdep_index, dev);
> +	dev->app_id = cmd->app_id;

Isn't device already having this set?

> +
> +	channel = get_channel(app, cmd->mdep_index, dev);
>  	if (!channel)
>  		goto fail;
>  
> 

-- 
Best regards, 
Szymon Janc

  reply	other threads:[~2014-06-27 13:54 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-26 12:04 [PATCH 1/9] android/health: Add error check when creating app Andrei Emeltchenko
2014-06-26 12:04 ` [PATCH 2/9] android/health: Add handling MDL connection request Andrei Emeltchenko
2014-06-26 14:13   ` Szymon Janc
2014-06-26 12:04 ` [PATCH 3/9] android/health: Fix wrong callback return type Andrei Emeltchenko
2014-06-26 14:35   ` Szymon Janc
2014-06-26 12:04 ` [PATCH 4/9] android/health: Refactor channel creation Andrei Emeltchenko
2014-06-26 12:04 ` [PATCH 5/9] android/health: Add channel connect Andrei Emeltchenko
2014-06-26 12:04 ` [PATCH 6/9] android/health: Assign channel to user_data Andrei Emeltchenko
2014-06-26 12:04 ` [PATCH 7/9] android/health: Create mdep for ECHO channel Andrei Emeltchenko
2014-06-26 12:04 ` [PATCH 8/9] android/health: Add handling for ECHO service Andrei Emeltchenko
2014-06-26 12:04 ` [PATCH 9/9] android/health: Improve debug Andrei Emeltchenko
2014-06-27  7:39 ` [PATCHv2 1/9] android/health: Add error check when creating app Andrei Emeltchenko
2014-06-27  7:39   ` [PATCHv2 2/9] android/health: Fix wrong callback return type Andrei Emeltchenko
2014-06-27  7:39   ` [PATCHv2 3/9] android/health: Add handling MDL connection request Andrei Emeltchenko
2014-06-27  7:39   ` [PATCHv2 4/9] android/health: Refactor channel creation Andrei Emeltchenko
2014-06-27  7:39   ` [PATCHv2 5/9] android/health: Add channel connect Andrei Emeltchenko
2014-06-27  7:40   ` [PATCHv2 6/9] android/health: Assign channel to user_data Andrei Emeltchenko
2014-06-27  7:40   ` [PATCHv2 7/9] android/health: Create mdep for ECHO channel Andrei Emeltchenko
2014-06-27  7:40   ` [PATCHv2 8/9] android/health: Add handling for ECHO service Andrei Emeltchenko
2014-06-27  7:40   ` [PATCHv2 9/9] android/health: Improve debug Andrei Emeltchenko
2014-06-27  7:59 ` [PATCH] android/pts: Update HDP test results Andrei Emeltchenko
2014-06-27 11:24   ` [PATCHv3 01/12] android/health: Add error check when creating app Andrei Emeltchenko
2014-06-27 11:24     ` [PATCHv3 02/12] android/health: Fix wrong callback return type Andrei Emeltchenko
2014-06-27 14:11       ` Szymon Janc
2014-06-27 11:24     ` [PATCHv3 03/12] android/health: Add HDP definitions Andrei Emeltchenko
2014-06-27 13:41       ` Szymon Janc
2014-06-27 11:24     ` [PATCHv3 04/12] android/health: Add handling MDL connection request Andrei Emeltchenko
2014-06-27 11:24     ` [PATCHv3 05/12] android/health: Refactor channel creation Andrei Emeltchenko
2014-06-27 13:54       ` Szymon Janc [this message]
2014-06-27 14:10         ` Andrei Emeltchenko
2014-06-27 14:36           ` Szymon Janc
2014-06-27 11:24     ` [PATCHv3 06/12] android/health: Add channel connect Andrei Emeltchenko
2014-06-27 11:24     ` [PATCHv3 07/12] android/health: Assign channel to user_data Andrei Emeltchenko
2014-06-27 11:24     ` [PATCHv3 08/12] android/health: Create mdep for ECHO channel Andrei Emeltchenko
2014-06-27 11:25     ` [PATCHv3 09/12] android/health: Add handling for ECHO service Andrei Emeltchenko
2014-06-27 14:09       ` Szymon Janc
2014-06-27 14:26         ` Andrei Emeltchenko
2014-06-27 11:25     ` [PATCHv3 10/12] android/health: Improve debug Andrei Emeltchenko
2014-06-27 11:25     ` [PATCHv3 11/12] android/mcap: Fix using uninitialised value Andrei Emeltchenko
2014-06-27 14:11       ` Szymon Janc
2014-06-27 11:25     ` [PATCHv3 12/12] android/pts: Update HDP test results Andrei Emeltchenko
2014-06-27 13:38     ` [PATCHv3 01/12] android/health: Add error check when creating app Szymon Janc

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2928119.zKrzGcmLP8@uw000953 \
    --to=szymon.janc@tieto.com \
    --cc=Andrei.Emeltchenko.news@gmail.com \
    --cc=linux-bluetooth@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.