lkml.org 
[lkml]   [2023]   [Jan]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    SubjectRe: [PATCH v2] HID: Recognize sensors with application collections too.
    From
    Date

    Don't add full stop at the end.

    HID: Recognize sensors with application collection

    On Tue, 2023-01-10 at 08:57 +0000, Aditya Garg wrote:
    > From: Ronald Tschalär <ronald@innovation.ch>
    >
    > According to HUTRR39 logical sensor devices may be nested inside
    > physical collections or may be specified in multiple top-level
    > application collections (see page 59, strategies 1 and 2). However,
    > the current code was only recognizing those with physical
    > collections.
    >
    > This issue turned up in the T2 MacBook Pro's which define the ALS in
    > a top-level application collection.
    >
    > Signed-off-by: Ronald Tschalär <ronald@innovation.ch>
    > Signed-off-by: Aditya Garg <gargaditya08@live.com>
    > —
    > V2 :- Add missing signed-off-by
    >  drivers/hid/hid-core.c       | 3 ++-
    >  drivers/hid/hid-sensor-hub.c | 6 ++++--
    >  2 files changed, 6 insertions(+), 3 deletions(-)
    >
    > diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
    > index b7f5566e338d..8fcd663b10e2 100644
    > --- a/drivers/hid/hid-core.c
    > +++ b/drivers/hid/hid-core.c
    > @@ -804,7 +804,8 @@ static void hid_scan_collection(struct hid_parser
    > *parser, unsigned type)
    >         int i;
    >  
    >         if (((parser->global.usage_page << 16) == HID_UP_SENSOR) &&
    > -           type == HID_COLLECTION_PHYSICAL)
    > +           (type == HID_COLLECTION_PHYSICAL ||
    > +            type == HID_COLLECTION_APPLICATION))
    >                 hid->group = HID_GROUP_SENSOR_HUB;
    >  
    >         if (hid->vendor == USB_VENDOR_ID_MICROSOFT &&
    > diff --git a/drivers/hid/hid-sensor-hub.c b/drivers/hid/hid-sensor-
    > hub.c
    > index 6abd3e2a9094..d03dc4ca095f 100644
    > --- a/drivers/hid/hid-sensor-hub.c
    > +++ b/drivers/hid/hid-sensor-hub.c
    > @@ -397,7 +397,8 @@ int sensor_hub_input_get_attribute_info(struct
    > hid_sensor_hub_device *hsdev,
    >                 for (i = 0; i < report->maxfield; ++i) {
    >                         field = report->field[i];
    >                         if (field->maxusage) {
    > -                               if (field->physical == usage_id &&
    > +                               if ((field->physical == usage_id ||
    > +                                    field->application == usage_id)
    > &&
    >                                         (field->logical ==
    > attr_usage_id ||
    >                                         field->usage[0].hid ==
    >                                                         attr_usage_id
    > ) &&
    > @@ -506,7 +507,8 @@ static int sensor_hub_raw_event(struct hid_device
    > *hdev,
    >                                         collection->usage);
    >  
    >                 callback = sensor_hub_get_callback(hdev,
    > -                               report->field[i]->physical,
    > +                               report->field[i]->physical ?:
    > +                                       report->field[i]->application
    Better not use language extensions. Simple to use

    report->field[i]->physical ? report->field[i]->physical : report-
    >field[i]->application

    Otherwise patch is fine.

    Thanks,
    Srinivas

    > ,
    >                                 report->field[i]-
    > >usage[0].collection_index,
    >                                 &hsdev, &priv);
    >                 if (!callback) {
    > --
    > 2.38.1
    >

    \
     
     \ /
      Last update: 2023-03-26 23:35    [W:2.352 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site