summaryrefslogtreecommitdiffstats
path: root/drivers/hid/amd-sfh-hid
diff options
context:
space:
mode:
authorBasavaraj Natikar <Basavaraj.Natikar@amd.com>2022-07-12 20:18:32 +0200
committerJiri Kosina <jkosina@suse.cz>2022-07-21 13:43:58 +0200
commit722658f86a23e5aa46f321e370503f557b20b0c8 (patch)
tree0be634cf346bc5e61eb7c281e969f49bccca7744 /drivers/hid/amd-sfh-hid
parentHID: amd_sfh: Add PM operations in amd_mp2_ops (diff)
downloadlinux-722658f86a23e5aa46f321e370503f557b20b0c8.tar.xz
linux-722658f86a23e5aa46f321e370503f557b20b0c8.zip
HID: amd_sfh: Add remove operation in amd_mp2_ops
Add remove operation as part of amd_mp2_ops structure to support all AMD SOCs and use wherever applicable. Signed-off-by: Basavaraj Natikar <Basavaraj.Natikar@amd.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Diffstat (limited to 'drivers/hid/amd-sfh-hid')
-rw-r--r--drivers/hid/amd-sfh-hid/amd_sfh_common.h1
-rw-r--r--drivers/hid/amd-sfh-hid/amd_sfh_pcie.c4
2 files changed, 4 insertions, 1 deletions
diff --git a/drivers/hid/amd-sfh-hid/amd_sfh_common.h b/drivers/hid/amd-sfh-hid/amd_sfh_common.h
index 2b45d507ead7..afecf7d2bebe 100644
--- a/drivers/hid/amd-sfh-hid/amd_sfh_common.h
+++ b/drivers/hid/amd-sfh-hid/amd_sfh_common.h
@@ -56,6 +56,7 @@ struct amd_mp2_ops {
int (*discovery_status)(struct amd_mp2_dev *privdata);
void (*suspend)(struct amd_mp2_dev *mp2);
void (*resume)(struct amd_mp2_dev *mp2);
+ void (*remove)(void *privdata);
int (*get_rep_desc)(int sensor_idx, u8 rep_desc[]);
u32 (*get_desc_sz)(int sensor_idx, int descriptor_name);
u8 (*get_feat_rep)(int sensor_idx, int report_id, u8 *feature_report);
diff --git a/drivers/hid/amd-sfh-hid/amd_sfh_pcie.c b/drivers/hid/amd-sfh-hid/amd_sfh_pcie.c
index be9ac3778f37..62e6757f889d 100644
--- a/drivers/hid/amd-sfh-hid/amd_sfh_pcie.c
+++ b/drivers/hid/amd-sfh-hid/amd_sfh_pcie.c
@@ -252,12 +252,14 @@ static struct amd_mp2_ops amd_sfh_ops_v2 = {
.clear_intr = amd_sfh_clear_intr_v2,
.init_intr = amd_sfh_irq_init_v2,
.discovery_status = amd_sfh_dis_sts_v2,
+ .remove = amd_mp2_pci_remove,
};
static struct amd_mp2_ops amd_sfh_ops = {
.start = amd_start_sensor,
.stop = amd_stop_sensor,
.stop_all = amd_stop_all_sensors,
+ .remove = amd_mp2_pci_remove,
};
static void mp2_select_ops(struct amd_mp2_dev *privdata)
@@ -333,7 +335,7 @@ static int amd_mp2_pci_probe(struct pci_dev *pdev, const struct pci_device_id *i
amd_sfh_clear_intr(privdata);
- return devm_add_action_or_reset(&pdev->dev, amd_mp2_pci_remove, privdata);
+ return devm_add_action_or_reset(&pdev->dev, privdata->mp2_ops->remove, privdata);
}
static int __maybe_unused amd_mp2_pci_resume(struct device *dev)