Lines Matching refs:privdata

56 static void amd_start_sensor_v2(struct amd_mp2_dev *privdata, struct amd_mp2_sensor_info info)
70 writeq(info.dma_address, privdata->mmio + AMD_C2P_MSG1);
71 writel(cmd_base.ul, privdata->mmio + AMD_C2P_MSG0);
74 static void amd_stop_sensor_v2(struct amd_mp2_dev *privdata, u16 sensor_idx)
85 writeq(0x0, privdata->mmio + AMD_C2P_MSG1);
86 writel(cmd_base.ul, privdata->mmio + AMD_C2P_MSG0);
89 static void amd_stop_all_sensor_v2(struct amd_mp2_dev *privdata)
98 writel(cmd_base.ul, privdata->mmio + AMD_C2P_MSG0);
101 void amd_sfh_clear_intr_v2(struct amd_mp2_dev *privdata)
103 if (readl(privdata->mmio + amd_get_p2c_val(privdata, 4))) {
104 writel(0, privdata->mmio + amd_get_p2c_val(privdata, 4));
105 writel(0xf, privdata->mmio + amd_get_p2c_val(privdata, 5));
109 void amd_sfh_clear_intr(struct amd_mp2_dev *privdata)
111 if (privdata->mp2_ops->clear_intr)
112 privdata->mp2_ops->clear_intr(privdata);
122 int amd_sfh_irq_init_v2(struct amd_mp2_dev *privdata)
126 pcim_intx(privdata->pdev, true);
128 rc = devm_request_irq(&privdata->pdev->dev, privdata->pdev->irq,
129 amd_sfh_irq_handler, 0, DRIVER_NAME, privdata);
131 dev_err(&privdata->pdev->dev, "failed to request irq %d err=%d\n",
132 privdata->pdev->irq, rc);
139 static int amd_sfh_dis_sts_v2(struct amd_mp2_dev *privdata)
141 return (readl(privdata->mmio + AMD_P2C_MSG(1)) &
145 static void amd_start_sensor(struct amd_mp2_dev *privdata, struct amd_mp2_sensor_info info)
161 writeq(info.dma_address, privdata->mmio + AMD_C2P_MSG2);
162 writel(cmd_param.ul, privdata->mmio + AMD_C2P_MSG1);
163 writel(cmd_base.ul, privdata->mmio + AMD_C2P_MSG0);
166 static void amd_stop_sensor(struct amd_mp2_dev *privdata, u16 sensor_idx)
176 writeq(0x0, privdata->mmio + AMD_C2P_MSG2);
177 writel(cmd_base.ul, privdata->mmio + AMD_C2P_MSG0);
180 static void amd_stop_all_sensors(struct amd_mp2_dev *privdata)
190 writel(cmd_base.ul, privdata->mmio + AMD_C2P_MSG0);
209 int amd_mp2_get_sensor_num(struct amd_mp2_dev *privdata, u8 *sensor_id)
223 activestatus = privdata->mp2_acs >> 4;
247 static void amd_mp2_pci_remove(void *privdata)
249 struct amd_mp2_dev *mp2 = privdata;
250 amd_sfh_hid_client_deinit(privdata);
274 static void mp2_select_ops(struct amd_mp2_dev *privdata)
278 privdata->mp2_acs = readl(privdata->mmio + AMD_P2C_MSG3);
279 acs = privdata->mp2_acs & GENMASK(3, 0);
283 privdata->mp2_ops = &amd_sfh_ops_v2;
286 privdata->mp2_ops = &amd_sfh_ops;
291 int amd_sfh_irq_init(struct amd_mp2_dev *privdata)
293 if (privdata->mp2_ops->init_intr)
294 return privdata->mp2_ops->init_intr(privdata);
431 struct amd_mp2_dev *privdata;
439 privdata = devm_kzalloc(&pdev->dev, sizeof(*privdata), GFP_KERNEL);
440 if (!privdata)
443 privdata->pdev = pdev;
444 dev_set_drvdata(&pdev->dev, privdata);
453 privdata->mmio = pcim_iomap_table(pdev)[2];
461 privdata->cl_data = devm_kzalloc(&pdev->dev, sizeof(struct amdtp_cl_data), GFP_KERNEL);
462 if (!privdata->cl_data)
465 privdata->sfh1_1_ops = (const struct amd_sfh1_1_ops *)id->driver_data;
466 if (privdata->sfh1_1_ops) {
468 privdata->rver = 1;
470 rc = devm_work_autocancel(&pdev->dev, &privdata->work, sfh1_1_init_work);
474 schedule_work(&privdata->work);
478 mp2_select_ops(privdata);
480 rc = amd_sfh_irq_init(privdata);
486 rc = devm_work_autocancel(&pdev->dev, &privdata->work, sfh_init_work);
488 amd_sfh_clear_intr(privdata);
492 schedule_work(&privdata->work);