Lines Matching refs:privdata

51 static void amd_start_sensor_v2(struct amd_mp2_dev *privdata, struct amd_mp2_sensor_info info)  in amd_start_sensor_v2()  argument
65 writeq(info.dma_address, privdata->mmio + AMD_C2P_MSG1); in amd_start_sensor_v2()
66 writel(cmd_base.ul, privdata->mmio + AMD_C2P_MSG0); in amd_start_sensor_v2()
69 static void amd_stop_sensor_v2(struct amd_mp2_dev *privdata, u16 sensor_idx) in amd_stop_sensor_v2() argument
80 writeq(0x0, privdata->mmio + AMD_C2P_MSG1); in amd_stop_sensor_v2()
81 writel(cmd_base.ul, privdata->mmio + AMD_C2P_MSG0); in amd_stop_sensor_v2()
84 static void amd_stop_all_sensor_v2(struct amd_mp2_dev *privdata) in amd_stop_all_sensor_v2() argument
93 writel(cmd_base.ul, privdata->mmio + AMD_C2P_MSG0); in amd_stop_all_sensor_v2()
96 void amd_sfh_clear_intr_v2(struct amd_mp2_dev *privdata) in amd_sfh_clear_intr_v2() argument
98 if (readl(privdata->mmio + AMD_P2C_MSG(4))) { in amd_sfh_clear_intr_v2()
99 writel(0, privdata->mmio + AMD_P2C_MSG(4)); in amd_sfh_clear_intr_v2()
100 writel(0xf, privdata->mmio + AMD_P2C_MSG(5)); in amd_sfh_clear_intr_v2()
104 void amd_sfh_clear_intr(struct amd_mp2_dev *privdata) in amd_sfh_clear_intr() argument
106 if (privdata->mp2_ops->clear_intr) in amd_sfh_clear_intr()
107 privdata->mp2_ops->clear_intr(privdata); in amd_sfh_clear_intr()
117 int amd_sfh_irq_init_v2(struct amd_mp2_dev *privdata) in amd_sfh_irq_init_v2() argument
121 pci_intx(privdata->pdev, true); in amd_sfh_irq_init_v2()
123 rc = devm_request_irq(&privdata->pdev->dev, privdata->pdev->irq, in amd_sfh_irq_init_v2()
124 amd_sfh_irq_handler, 0, DRIVER_NAME, privdata); in amd_sfh_irq_init_v2()
126 dev_err(&privdata->pdev->dev, "failed to request irq %d err=%d\n", in amd_sfh_irq_init_v2()
127 privdata->pdev->irq, rc); in amd_sfh_irq_init_v2()
134 static int amd_sfh_dis_sts_v2(struct amd_mp2_dev *privdata) in amd_sfh_dis_sts_v2() argument
136 return (readl(privdata->mmio + AMD_P2C_MSG(1)) & in amd_sfh_dis_sts_v2()
140 static void amd_start_sensor(struct amd_mp2_dev *privdata, struct amd_mp2_sensor_info info) in amd_start_sensor() argument
156 writeq(info.dma_address, privdata->mmio + AMD_C2P_MSG2); in amd_start_sensor()
157 writel(cmd_param.ul, privdata->mmio + AMD_C2P_MSG1); in amd_start_sensor()
158 writel(cmd_base.ul, privdata->mmio + AMD_C2P_MSG0); in amd_start_sensor()
161 static void amd_stop_sensor(struct amd_mp2_dev *privdata, u16 sensor_idx) in amd_stop_sensor() argument
171 writeq(0x0, privdata->mmio + AMD_C2P_MSG2); in amd_stop_sensor()
172 writel(cmd_base.ul, privdata->mmio + AMD_C2P_MSG0); in amd_stop_sensor()
175 static void amd_stop_all_sensors(struct amd_mp2_dev *privdata) in amd_stop_all_sensors() argument
185 writel(cmd_base.ul, privdata->mmio + AMD_C2P_MSG0); in amd_stop_all_sensors()
204 int amd_mp2_get_sensor_num(struct amd_mp2_dev *privdata, u8 *sensor_id) in amd_mp2_get_sensor_num() argument
218 activestatus = privdata->mp2_acs >> 4; in amd_mp2_get_sensor_num()
239 static void amd_mp2_pci_remove(void *privdata) in amd_mp2_pci_remove() argument
241 struct amd_mp2_dev *mp2 = privdata; in amd_mp2_pci_remove()
242 amd_sfh_hid_client_deinit(privdata); in amd_mp2_pci_remove()
266 static void mp2_select_ops(struct amd_mp2_dev *privdata) in mp2_select_ops() argument
270 privdata->mp2_acs = readl(privdata->mmio + AMD_P2C_MSG3); in mp2_select_ops()
271 acs = privdata->mp2_acs & GENMASK(3, 0); in mp2_select_ops()
275 privdata->mp2_ops = &amd_sfh_ops_v2; in mp2_select_ops()
278 privdata->mp2_ops = &amd_sfh_ops; in mp2_select_ops()
283 int amd_sfh_irq_init(struct amd_mp2_dev *privdata) in amd_sfh_irq_init() argument
285 if (privdata->mp2_ops->init_intr) in amd_sfh_irq_init()
286 return privdata->mp2_ops->init_intr(privdata); in amd_sfh_irq_init()
308 struct amd_mp2_dev *privdata; in amd_mp2_pci_probe() local
314 privdata = devm_kzalloc(&pdev->dev, sizeof(*privdata), GFP_KERNEL); in amd_mp2_pci_probe()
315 if (!privdata) in amd_mp2_pci_probe()
318 privdata->pdev = pdev; in amd_mp2_pci_probe()
319 dev_set_drvdata(&pdev->dev, privdata); in amd_mp2_pci_probe()
328 privdata->mmio = pcim_iomap_table(pdev)[2]; in amd_mp2_pci_probe()
336 privdata->cl_data = devm_kzalloc(&pdev->dev, sizeof(struct amdtp_cl_data), GFP_KERNEL); in amd_mp2_pci_probe()
337 if (!privdata->cl_data) in amd_mp2_pci_probe()
340 privdata->sfh1_1_ops = (const struct amd_sfh1_1_ops *)id->driver_data; in amd_mp2_pci_probe()
341 if (privdata->sfh1_1_ops) { in amd_mp2_pci_probe()
342 rc = privdata->sfh1_1_ops->init(privdata); in amd_mp2_pci_probe()
348 mp2_select_ops(privdata); in amd_mp2_pci_probe()
350 rc = amd_sfh_irq_init(privdata); in amd_mp2_pci_probe()
356 rc = amd_sfh_hid_client_init(privdata); in amd_mp2_pci_probe()
358 amd_sfh_clear_intr(privdata); in amd_mp2_pci_probe()
365 amd_sfh_clear_intr(privdata); in amd_mp2_pci_probe()
367 return devm_add_action_or_reset(&pdev->dev, privdata->mp2_ops->remove, privdata); in amd_mp2_pci_probe()