Lines Matching defs:privdata

54 static void amd_start_sensor_v2(struct amd_mp2_dev *privdata, struct amd_mp2_sensor_info info)
68 writeq(info.dma_address, privdata->mmio + AMD_C2P_MSG1);
69 writel(cmd_base.ul, privdata->mmio + AMD_C2P_MSG0);
72 static void amd_stop_sensor_v2(struct amd_mp2_dev *privdata, u16 sensor_idx)
83 writeq(0x0, privdata->mmio + AMD_C2P_MSG1);
84 writel(cmd_base.ul, privdata->mmio + AMD_C2P_MSG0);
87 static void amd_stop_all_sensor_v2(struct amd_mp2_dev *privdata)
96 writel(cmd_base.ul, privdata->mmio + AMD_C2P_MSG0);
99 void amd_sfh_clear_intr_v2(struct amd_mp2_dev *privdata)
101 if (readl(privdata->mmio + AMD_P2C_MSG(4))) {
102 writel(0, privdata->mmio + AMD_P2C_MSG(4));
103 writel(0xf, privdata->mmio + AMD_P2C_MSG(5));
107 void amd_sfh_clear_intr(struct amd_mp2_dev *privdata)
109 if (privdata->mp2_ops->clear_intr)
110 privdata->mp2_ops->clear_intr(privdata);
120 int amd_sfh_irq_init_v2(struct amd_mp2_dev *privdata)
124 pci_intx(privdata->pdev, true);
126 rc = devm_request_irq(&privdata->pdev->dev, privdata->pdev->irq,
127 amd_sfh_irq_handler, 0, DRIVER_NAME, privdata);
129 dev_err(&privdata->pdev->dev, "failed to request irq %d err=%d\n",
130 privdata->pdev->irq, rc);
137 static int amd_sfh_dis_sts_v2(struct amd_mp2_dev *privdata)
139 return (readl(privdata->mmio + AMD_P2C_MSG(1)) &
143 static void amd_start_sensor(struct amd_mp2_dev *privdata, struct amd_mp2_sensor_info info)
159 writeq(info.dma_address, privdata->mmio + AMD_C2P_MSG2);
160 writel(cmd_param.ul, privdata->mmio + AMD_C2P_MSG1);
161 writel(cmd_base.ul, privdata->mmio + AMD_C2P_MSG0);
164 static void amd_stop_sensor(struct amd_mp2_dev *privdata, u16 sensor_idx)
174 writeq(0x0, privdata->mmio + AMD_C2P_MSG2);
175 writel(cmd_base.ul, privdata->mmio + AMD_C2P_MSG0);
178 static void amd_stop_all_sensors(struct amd_mp2_dev *privdata)
188 writel(cmd_base.ul, privdata->mmio + AMD_C2P_MSG0);
207 int amd_mp2_get_sensor_num(struct amd_mp2_dev *privdata, u8 *sensor_id)
221 activestatus = privdata->mp2_acs >> 4;
245 static void amd_mp2_pci_remove(void *privdata)
247 struct amd_mp2_dev *mp2 = privdata;
248 amd_sfh_hid_client_deinit(privdata);
272 static void mp2_select_ops(struct amd_mp2_dev *privdata)
276 privdata->mp2_acs = readl(privdata->mmio + AMD_P2C_MSG3);
277 acs = privdata->mp2_acs & GENMASK(3, 0);
281 privdata->mp2_ops = &amd_sfh_ops_v2;
284 privdata->mp2_ops = &amd_sfh_ops;
289 int amd_sfh_irq_init(struct amd_mp2_dev *privdata)
291 if (privdata->mp2_ops->init_intr)
292 return privdata->mp2_ops->init_intr(privdata);
334 struct amd_mp2_dev *privdata;
342 privdata = devm_kzalloc(&pdev->dev, sizeof(*privdata), GFP_KERNEL);
343 if (!privdata)
346 privdata->pdev = pdev;
347 dev_set_drvdata(&pdev->dev, privdata);
356 privdata->mmio = pcim_iomap_table(pdev)[2];
364 privdata->cl_data = devm_kzalloc(&pdev->dev, sizeof(struct amdtp_cl_data), GFP_KERNEL);
365 if (!privdata->cl_data)
368 privdata->sfh1_1_ops = (const struct amd_sfh1_1_ops *)id->driver_data;
369 if (privdata->sfh1_1_ops) {
370 rc = privdata->sfh1_1_ops->init(privdata);
376 mp2_select_ops(privdata);
378 rc = amd_sfh_irq_init(privdata);
384 rc = amd_sfh_hid_client_init(privdata);
386 amd_sfh_clear_intr(privdata);
393 amd_sfh_clear_intr(privdata);
395 return devm_add_action_or_reset(&pdev->dev, privdata->mp2_ops->remove, privdata);