HID: amd_sfh: Move common macros and structures
authorBasavaraj Natikar <Basavaraj.Natikar@amd.com>
Tue, 12 Jul 2022 18:18:27 +0000 (23:48 +0530)
committerJiri Kosina <jkosina@suse.cz>
Thu, 21 Jul 2022 11:43:58 +0000 (13:43 +0200)
Introduce common macros and structures to support multiple generations
of AMD SOCs, move them to amd_sfh_common.h.

Signed-off-by: Basavaraj Natikar <Basavaraj.Natikar@amd.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/amd-sfh-hid/amd_sfh_common.h [new file with mode: 0644]
drivers/hid/amd-sfh-hid/amd_sfh_pcie.h

diff --git a/drivers/hid/amd-sfh-hid/amd_sfh_common.h b/drivers/hid/amd-sfh-hid/amd_sfh_common.h
new file mode 100644 (file)
index 0000000..40da53d
--- /dev/null
@@ -0,0 +1,59 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/*
+ * AMD MP2 common macros and structures
+ *
+ * Copyright (c) 2022, Advanced Micro Devices, Inc.
+ * All Rights Reserved.
+ *
+ * Author: Basavaraj Natikar <Basavaraj.Natikar@amd.com>
+ */
+#ifndef AMD_SFH_COMMON_H
+#define AMD_SFH_COMMON_H
+
+#include <linux/pci.h>
+#include "amd_sfh_hid.h"
+
+#define PCI_DEVICE_ID_AMD_MP2          0x15E4
+
+#define AMD_C2P_MSG(regno) (0x10500 + ((regno) * 4))
+#define AMD_P2C_MSG(regno) (0x10680 + ((regno) * 4))
+
+#define SENSOR_ENABLED                 4
+#define SENSOR_DISABLED                        5
+
+#define AMD_SFH_IDLE_LOOP              200
+
+enum cmd_id {
+       NO_OP,
+       ENABLE_SENSOR,
+       DISABLE_SENSOR,
+       STOP_ALL_SENSORS = 8,
+};
+
+struct amd_mp2_sensor_info {
+       u8 sensor_idx;
+       u32 period;
+       dma_addr_t dma_address;
+};
+
+struct amd_mp2_dev {
+       struct pci_dev *pdev;
+       struct amdtp_cl_data *cl_data;
+       void __iomem *mmio;
+       const struct amd_mp2_ops *mp2_ops;
+       struct amd_input_data in_data;
+       /* mp2 active control status */
+       u32 mp2_acs;
+};
+
+struct amd_mp2_ops {
+       void (*start)(struct amd_mp2_dev *privdata, struct amd_mp2_sensor_info info);
+       void (*stop)(struct amd_mp2_dev *privdata, u16 sensor_idx);
+       void (*stop_all)(struct amd_mp2_dev *privdata);
+       int (*response)(struct amd_mp2_dev *mp2, u8 sid, u32 sensor_sts);
+       void (*clear_intr)(struct amd_mp2_dev *privdata);
+       int (*init_intr)(struct amd_mp2_dev *privdata);
+       int (*discovery_status)(struct amd_mp2_dev *privdata);
+};
+
+#endif
index 8c76052..2feac14 100644 (file)
 #ifndef PCIE_MP2_AMD_H
 #define PCIE_MP2_AMD_H
 
-#include <linux/pci.h>
-#include "amd_sfh_hid.h"
-
-#define PCI_DEVICE_ID_AMD_MP2  0x15E4
-
-#define ENABLE_SENSOR          1
-#define DISABLE_SENSOR         2
-#define STOP_ALL_SENSORS       8
+#include "amd_sfh_common.h"
 
 /* MP2 C2P Message Registers */
 #define AMD_C2P_MSG0   0x10500
 #define AMD_C2P_MSG1   0x10504
 #define AMD_C2P_MSG2   0x10508
 
-#define AMD_C2P_MSG(regno) (0x10500 + ((regno) * 4))
-#define AMD_P2C_MSG(regno) (0x10680 + ((regno) * 4))
-
 /* MP2 P2C Message Registers */
 #define AMD_P2C_MSG3   0x1068C /* Supported Sensors info */
 
 #define V2_STATUS      0x2
 
-#define SENSOR_ENABLED     4
-#define SENSOR_DISABLED    5
-
 #define HPD_IDX                16
 
-#define AMD_SFH_IDLE_LOOP      200
-
 #define SENSOR_DISCOVERY_STATUS_MASK           GENMASK(5, 3)
 #define SENSOR_DISCOVERY_STATUS_SHIFT          3
 
@@ -96,22 +81,6 @@ enum sensor_idx {
        als_idx = 19
 };
 
-struct amd_mp2_dev {
-       struct pci_dev *pdev;
-       struct amdtp_cl_data *cl_data;
-       void __iomem *mmio;
-       const struct amd_mp2_ops *mp2_ops;
-       struct amd_input_data in_data;
-       /* mp2 active control status */
-       u32 mp2_acs;
-};
-
-struct amd_mp2_sensor_info {
-       u8 sensor_idx;
-       u32 period;
-       dma_addr_t dma_address;
-};
-
 enum mem_use_type {
        USE_DRAM,
        USE_C2P_REG,
@@ -140,13 +109,4 @@ void amd_mp2_suspend(struct amd_mp2_dev *mp2);
 void amd_mp2_resume(struct amd_mp2_dev *mp2);
 const char *get_sensor_name(int idx);
 
-struct amd_mp2_ops {
-        void (*start)(struct amd_mp2_dev *privdata, struct amd_mp2_sensor_info info);
-        void (*stop)(struct amd_mp2_dev *privdata, u16 sensor_idx);
-        void (*stop_all)(struct amd_mp2_dev *privdata);
-        int (*response)(struct amd_mp2_dev *mp2, u8 sid, u32 sensor_sts);
-        void (*clear_intr)(struct amd_mp2_dev *privdata);
-        int (*init_intr)(struct amd_mp2_dev *privdata);
-        int (*discovery_status)(struct amd_mp2_dev *privdata);
-};
 #endif