Hey Srinivas,It shouldn't be an issue for few more attributes. The idea is that
Well I could use sensor_hub_input_get_attribute_info() for each usage
attribute. I was just thinking that since each usage attribute is
found in a row, one for each field I think, it'd be easier to create
iio channels that way. This would eliminate running the for loop
search for usage id each time.
I realize that my parse_report function is quite ugly espically ending
in four closing parenthesis and copying code from
sensor_hub_input_get_attribute_info(). I will change it if you don't
think it will slow down the driver or have any negative effects.
Thanks,
Reyad
On Wed, May 28, 2014 at 4:25 PM, Srinivas Pandruvada
<srinivas.pandruvada@xxxxxxxxxxxxxxx> wrote:
On 05/28/2014 02:15 PM, Reyad Attiyat wrote:
+static void sensor_hub_fill_attr_info(I copied this function from hid/hid-sensor-hub.c as it is marked
+ struct hid_sensor_hub_attribute_info *info,
+ s32 index, s32 report_id, struct hid_field *field)
+{
+ info->index = index;
+ info->report_id = report_id;
+ info->units = field->unit;
+ info->unit_expo = field->unit_exponent;
+ info->size = (field->report_size * field->report_count)/8;
+ info->logical_minimum = field->logical_minimum;
+ info->logical_maximum = field->logical_maximum;
}
static in that file. I use it to fill attributes as I find them.
Should I create an another patch to make it non-static?
I didn't check your implementation. But
sensor_hub_input_get_attribute_info()
function is not enough? We are already using to get other attributes for x,
y and Z.
Thanks,
Srinivas
+ list_for_each_entry(report, &report_enum->report_list, list) {This is how I mange to find all possible hid reports in the parse
+ for (i = 0; i < report->maxfield; ++i) {
+ field = report->field[i];
+
+ for (j = 0; j < field->maxusage; j++) {
+ usage = &(field->usage[j]);
+
reports function. I noticed that in the other function that was used,
sensor_hub_input_get_attribute_info(), it only uses field->usage[0].
Is there a reason for this and should I change my current
implementation?