All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Cameron <jic23-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
To: Srinivas Pandruvada
	<srinivas.pandruvada-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>,
	jkosina-AlSwsSmVLrQ@public.gmane.org,
	a.zummo-BfzFCNDTiLLj+vYz1yj4TQ@public.gmane.org
Cc: linux-iio-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-input-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	holler-SXC+2es9fhnfWeYVQQPykw@public.gmane.org,
	rtc-linux-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
Subject: Re: [PATCH 1/9] HID: hid-sensor-hub: Extend API for async reads
Date: Sat, 10 Jan 2015 22:43:41 +0000	[thread overview]
Message-ID: <54B1AB1D.5030905@kernel.org> (raw)
In-Reply-To: <1420656483-7093-2-git-send-email-srinivas.pandruvada-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>

On 07/01/15 18:47, Srinivas Pandruvada wrote:
> Add additional flag to read in async mode. In this mode the caller
> need to register for events and match attribute usage id for result.
An example of this being used would make ti easier to see how it is meant
to work...
> 
> Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
> ---
>  drivers/hid/hid-sensor-hub.c   | 15 ++++++++++++++-
>  include/linux/hid-sensor-hub.h | 19 +++++++++++++------
>  2 files changed, 27 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/hid/hid-sensor-hub.c b/drivers/hid/hid-sensor-hub.c
> index 8bed109..7403b25 100644
> --- a/drivers/hid/hid-sensor-hub.c
> +++ b/drivers/hid/hid-sensor-hub.c
> @@ -275,13 +275,26 @@ EXPORT_SYMBOL_GPL(sensor_hub_get_feature);
>  
>  int sensor_hub_input_attr_get_raw_value(struct hid_sensor_hub_device *hsdev,
>  					u32 usage_id,
> -					u32 attr_usage_id, u32 report_id)
> +					u32 attr_usage_id, u32 report_id,
> +					enum sensor_hub_read_flags flag)
>  {
>  	struct sensor_hub_data *data = hid_get_drvdata(hsdev->hdev);
>  	unsigned long flags;
>  	struct hid_report *report;
>  	int ret_val = 0;
>  
> +	if (flag == SENSOR_HUB_ASYNC) {
> +		report = sensor_hub_report(report_id, hsdev->hdev,
> +					   HID_INPUT_REPORT);
> +		if (!report)
> +			return -EINVAL;
> +
> +		mutex_lock(&data->mutex);
> +		hid_hw_request(hsdev->hdev, report, HID_REQ_GET_REPORT);
> +		mutex_unlock(&data->mutex);
> +		return 0;
> +	}
> +
>  	mutex_lock(&hsdev->mutex);
>  	memset(&hsdev->pending, 0, sizeof(hsdev->pending));
>  	init_completion(&hsdev->pending.ready);
> diff --git a/include/linux/hid-sensor-hub.h b/include/linux/hid-sensor-hub.h
> index a51c768..d48e91f 100644
> --- a/include/linux/hid-sensor-hub.h
> +++ b/include/linux/hid-sensor-hub.h
> @@ -171,20 +171,27 @@ int sensor_hub_input_get_attribute_info(struct hid_sensor_hub_device *hsdev,
>  			struct hid_sensor_hub_attribute_info *info);
>  
>  /**
> -* sensor_hub_input_attr_get_raw_value() - Synchronous read request
> +* sensor_hub_input_attr_get_raw_value() - Attribute read request
>  * @hsdev:	Hub device instance.
>  * @usage_id:	Attribute usage id of parent physical device as per spec
>  * @attr_usage_id:	Attribute usage id as per spec
>  * @report_id:	Report id to look for
> +* @flag:	Synchronour or asynchronous read
>  *
> -* Issues a synchronous read request for an input attribute. Returns
> -* data upto 32 bits. Since client can get events, so this call should
> -* not be used for data paths, this will impact performance.
> +* Issues a synchronous or asynchronous read request for an input attribute.
> +* Returns data upto 32 bits.
>  */
>  
> +enum sensor_hub_read_flags {
> +	SENSOR_HUB_SYNC,
> +	SENSOR_HUB_ASYNC,
> +};
> +
>  int sensor_hub_input_attr_get_raw_value(struct hid_sensor_hub_device *hsdev,
> -			u32 usage_id,
> -			u32 attr_usage_id, u32 report_id);
> +					u32 usage_id,
> +					u32 attr_usage_id, u32 report_id,
> +					enum sensor_hub_read_flags flag
> +);
>  /**
>  * sensor_hub_set_feature() - Feature set request
>  * @hsdev:	Hub device instance.
> 

WARNING: multiple messages have this Message-ID (diff)
From: Jonathan Cameron <jic23@kernel.org>
To: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>,
	jkosina@suse.cz, a.zummo@towertech.it
Cc: linux-iio@vger.kernel.org, linux-input@vger.kernel.org,
	holler@ahsoftware.de, rtc-linux@googlegroups.com
Subject: Re: [PATCH 1/9] HID: hid-sensor-hub: Extend API for async reads
Date: Sat, 10 Jan 2015 22:43:41 +0000	[thread overview]
Message-ID: <54B1AB1D.5030905@kernel.org> (raw)
In-Reply-To: <1420656483-7093-2-git-send-email-srinivas.pandruvada@linux.intel.com>

On 07/01/15 18:47, Srinivas Pandruvada wrote:
> Add additional flag to read in async mode. In this mode the caller
> need to register for events and match attribute usage id for result.
An example of this being used would make ti easier to see how it is meant
to work...
> 
> Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
> ---
>  drivers/hid/hid-sensor-hub.c   | 15 ++++++++++++++-
>  include/linux/hid-sensor-hub.h | 19 +++++++++++++------
>  2 files changed, 27 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/hid/hid-sensor-hub.c b/drivers/hid/hid-sensor-hub.c
> index 8bed109..7403b25 100644
> --- a/drivers/hid/hid-sensor-hub.c
> +++ b/drivers/hid/hid-sensor-hub.c
> @@ -275,13 +275,26 @@ EXPORT_SYMBOL_GPL(sensor_hub_get_feature);
>  
>  int sensor_hub_input_attr_get_raw_value(struct hid_sensor_hub_device *hsdev,
>  					u32 usage_id,
> -					u32 attr_usage_id, u32 report_id)
> +					u32 attr_usage_id, u32 report_id,
> +					enum sensor_hub_read_flags flag)
>  {
>  	struct sensor_hub_data *data = hid_get_drvdata(hsdev->hdev);
>  	unsigned long flags;
>  	struct hid_report *report;
>  	int ret_val = 0;
>  
> +	if (flag == SENSOR_HUB_ASYNC) {
> +		report = sensor_hub_report(report_id, hsdev->hdev,
> +					   HID_INPUT_REPORT);
> +		if (!report)
> +			return -EINVAL;
> +
> +		mutex_lock(&data->mutex);
> +		hid_hw_request(hsdev->hdev, report, HID_REQ_GET_REPORT);
> +		mutex_unlock(&data->mutex);
> +		return 0;
> +	}
> +
>  	mutex_lock(&hsdev->mutex);
>  	memset(&hsdev->pending, 0, sizeof(hsdev->pending));
>  	init_completion(&hsdev->pending.ready);
> diff --git a/include/linux/hid-sensor-hub.h b/include/linux/hid-sensor-hub.h
> index a51c768..d48e91f 100644
> --- a/include/linux/hid-sensor-hub.h
> +++ b/include/linux/hid-sensor-hub.h
> @@ -171,20 +171,27 @@ int sensor_hub_input_get_attribute_info(struct hid_sensor_hub_device *hsdev,
>  			struct hid_sensor_hub_attribute_info *info);
>  
>  /**
> -* sensor_hub_input_attr_get_raw_value() - Synchronous read request
> +* sensor_hub_input_attr_get_raw_value() - Attribute read request
>  * @hsdev:	Hub device instance.
>  * @usage_id:	Attribute usage id of parent physical device as per spec
>  * @attr_usage_id:	Attribute usage id as per spec
>  * @report_id:	Report id to look for
> +* @flag:	Synchronour or asynchronous read
>  *
> -* Issues a synchronous read request for an input attribute. Returns
> -* data upto 32 bits. Since client can get events, so this call should
> -* not be used for data paths, this will impact performance.
> +* Issues a synchronous or asynchronous read request for an input attribute.
> +* Returns data upto 32 bits.
>  */
>  
> +enum sensor_hub_read_flags {
> +	SENSOR_HUB_SYNC,
> +	SENSOR_HUB_ASYNC,
> +};
> +
>  int sensor_hub_input_attr_get_raw_value(struct hid_sensor_hub_device *hsdev,
> -			u32 usage_id,
> -			u32 attr_usage_id, u32 report_id);
> +					u32 usage_id,
> +					u32 attr_usage_id, u32 report_id,
> +					enum sensor_hub_read_flags flag
> +);
>  /**
>  * sensor_hub_set_feature() - Feature set request
>  * @hsdev:	Hub device instance.
> 


  parent reply	other threads:[~2015-01-10 22:43 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-07 18:47 [PATCH 0/9] Asynchronous attribute reads Srinivas Pandruvada
2015-01-07 18:47 ` Srinivas Pandruvada
2015-01-07 18:47 ` [PATCH 2/9] iio: hid-sensor-accel-3d: Adjust parameter for attribute read Srinivas Pandruvada
     [not found]   ` <1420656483-7093-3-git-send-email-srinivas.pandruvada-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-01-10 22:42     ` Jonathan Cameron
2015-01-10 22:42       ` Jonathan Cameron
2015-01-11 23:08       ` Srinivas Pandruvada
2015-01-11 23:24         ` Srinivas Pandruvada
     [not found]           ` <54B30610.3070907-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-01-12 21:24             ` Jonathan Cameron
2015-01-12 21:24               ` Jonathan Cameron
     [not found]               ` <54B43B70.4070501-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2015-01-12 21:33                 ` Srinivas Pandruvada
2015-01-12 21:33                   ` Srinivas Pandruvada
2015-01-07 18:47 ` [PATCH 3/9] iio: hid-sensor-gyro-3d: " Srinivas Pandruvada
2015-01-07 18:47 ` [PATCH 4/9] iio: hid-sensor-als: " Srinivas Pandruvada
     [not found] ` <1420656483-7093-1-git-send-email-srinivas.pandruvada-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-01-07 18:47   ` [PATCH 1/9] HID: hid-sensor-hub: Extend API for async reads Srinivas Pandruvada
2015-01-07 18:47     ` Srinivas Pandruvada
     [not found]     ` <1420656483-7093-2-git-send-email-srinivas.pandruvada-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-01-10 22:43       ` Jonathan Cameron [this message]
2015-01-10 22:43         ` Jonathan Cameron
2015-01-07 18:47   ` [PATCH 5/9] iio: hid-sensor-prox: Adjust parameter for attribute read Srinivas Pandruvada
2015-01-07 18:47     ` Srinivas Pandruvada
2015-01-07 18:48   ` [PATCH 6/9] iio: hid-sensor-magn-3d: " Srinivas Pandruvada
2015-01-07 18:48     ` Srinivas Pandruvada
2015-01-07 18:48   ` [PATCH 8/9] iio: hid-sensor-press: " Srinivas Pandruvada
2015-01-07 18:48     ` Srinivas Pandruvada
2015-01-07 18:48   ` [PATCH 9/9] drivers/rtc/rtc-hid-sensor-time.c: " Srinivas Pandruvada
2015-01-07 18:48     ` Srinivas Pandruvada
2015-01-07 18:48 ` [PATCH 7/9] iio: hid-sensor-incl-3d: " Srinivas Pandruvada
  -- strict thread matches above, loose matches on Subject: below --
2015-01-07  0:58 [PATCH] HID: hid-sensor-hub: Correct documentation Srinivas Pandruvada
2015-01-07  0:58 ` [PATCH 1/9] HID: hid-sensor-hub: Extend API for async reads Srinivas Pandruvada

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=54B1AB1D.5030905@kernel.org \
    --to=jic23-dgejt+ai2ygdnm+yrofe0a@public.gmane.org \
    --cc=a.zummo-BfzFCNDTiLLj+vYz1yj4TQ@public.gmane.org \
    --cc=holler-SXC+2es9fhnfWeYVQQPykw@public.gmane.org \
    --cc=jkosina-AlSwsSmVLrQ@public.gmane.org \
    --cc=linux-iio-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-input-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=rtc-linux-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org \
    --cc=srinivas.pandruvada-VuQAYsv1563Yd54FQh9/CA@public.gmane.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.