OSDN Git Service

HID: amd_sfh: Add physical location to HID device
authorBasavaraj Natikar <Basavaraj.Natikar@amd.com>
Mon, 9 May 2022 13:20:24 +0000 (18:50 +0530)
committerJiri Kosina <jkosina@suse.cz>
Wed, 11 May 2022 12:16:26 +0000 (14:16 +0200)
when HID device is loaded a wrong string is shown as
physical location is not declared.
```
hid-generic 0020:1022:0001.0009: hidraw4: <UNKNOWN>
 HID v0.00 Device [hid-amdtp 1022:0001] on
```

Hence use amd sfh driver name or device name which is connected
to the HID device.

Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Basavaraj Natikar <Basavaraj.Natikar@amd.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/amd-sfh-hid/amd_sfh_hid.c

index e2a9679..1089134 100644 (file)
@@ -12,6 +12,7 @@
 #include <linux/sched.h>
 
 #include "amd_sfh_hid.h"
+#include "amd_sfh_pcie.h"
 
 #define AMD_SFH_RESPONSE_TIMEOUT       1500
 
@@ -120,6 +121,8 @@ static struct hid_ll_driver amdtp_hid_ll_driver = {
 
 int amdtp_hid_probe(u32 cur_hid_dev, struct amdtp_cl_data *cli_data)
 {
+       struct amd_mp2_dev *mp2 = container_of(cli_data->in_data, struct amd_mp2_dev, in_data);
+       struct device *dev = &mp2->pdev->dev;
        struct hid_device *hid;
        struct amdtp_hid_data *hid_data;
        int rc;
@@ -141,6 +144,8 @@ int amdtp_hid_probe(u32 cur_hid_dev, struct amdtp_cl_data *cli_data)
 
        hid->driver_data = hid_data;
        cli_data->hid_sensor_hubs[cur_hid_dev] = hid;
+       strscpy(hid->phys, dev->driver ? dev->driver->name : dev_name(dev),
+               sizeof(hid->phys));
        hid->bus = BUS_AMD_SFH;
        hid->vendor = AMD_SFH_HID_VENDOR;
        hid->product = AMD_SFH_HID_PRODUCT;