• Home
  • Raw
  • Download

Lines Matching refs:privdata

49 static void amd_start_sensor_v2(struct amd_mp2_dev *privdata, struct amd_mp2_sensor_info info)  in amd_start_sensor_v2()  argument
62 writeq(info.dma_address, privdata->mmio + AMD_C2P_MSG1); in amd_start_sensor_v2()
63 writel(cmd_base.ul, privdata->mmio + AMD_C2P_MSG0); in amd_start_sensor_v2()
66 static void amd_stop_sensor_v2(struct amd_mp2_dev *privdata, u16 sensor_idx) in amd_stop_sensor_v2() argument
76 writeq(0x0, privdata->mmio + AMD_C2P_MSG1); in amd_stop_sensor_v2()
77 writel(cmd_base.ul, privdata->mmio + AMD_C2P_MSG0); in amd_stop_sensor_v2()
80 static void amd_stop_all_sensor_v2(struct amd_mp2_dev *privdata) in amd_stop_all_sensor_v2() argument
88 writel(cmd_base.ul, privdata->mmio + AMD_C2P_MSG0); in amd_stop_all_sensor_v2()
91 static void amd_sfh_clear_intr_v2(struct amd_mp2_dev *privdata) in amd_sfh_clear_intr_v2() argument
93 if (readl(privdata->mmio + AMD_P2C_MSG(4))) { in amd_sfh_clear_intr_v2()
94 writel(0, privdata->mmio + AMD_P2C_MSG(4)); in amd_sfh_clear_intr_v2()
95 writel(0xf, privdata->mmio + AMD_P2C_MSG(5)); in amd_sfh_clear_intr_v2()
99 static void amd_sfh_clear_intr(struct amd_mp2_dev *privdata) in amd_sfh_clear_intr() argument
101 if (privdata->mp2_ops->clear_intr) in amd_sfh_clear_intr()
102 privdata->mp2_ops->clear_intr(privdata); in amd_sfh_clear_intr()
112 static int amd_sfh_irq_init_v2(struct amd_mp2_dev *privdata) in amd_sfh_irq_init_v2() argument
116 pci_intx(privdata->pdev, true); in amd_sfh_irq_init_v2()
118 rc = devm_request_irq(&privdata->pdev->dev, privdata->pdev->irq, in amd_sfh_irq_init_v2()
119 amd_sfh_irq_handler, 0, DRIVER_NAME, privdata); in amd_sfh_irq_init_v2()
121 dev_err(&privdata->pdev->dev, "failed to request irq %d err=%d\n", in amd_sfh_irq_init_v2()
122 privdata->pdev->irq, rc); in amd_sfh_irq_init_v2()
129 static int amd_sfh_dis_sts_v2(struct amd_mp2_dev *privdata) in amd_sfh_dis_sts_v2() argument
131 return (readl(privdata->mmio + AMD_P2C_MSG(1)) & in amd_sfh_dis_sts_v2()
135 void amd_start_sensor(struct amd_mp2_dev *privdata, struct amd_mp2_sensor_info info) in amd_start_sensor() argument
151 writeq(info.dma_address, privdata->mmio + AMD_C2P_MSG2); in amd_start_sensor()
152 writel(cmd_param.ul, privdata->mmio + AMD_C2P_MSG1); in amd_start_sensor()
153 writel(cmd_base.ul, privdata->mmio + AMD_C2P_MSG0); in amd_start_sensor()
156 void amd_stop_sensor(struct amd_mp2_dev *privdata, u16 sensor_idx) in amd_stop_sensor() argument
166 writeq(0x0, privdata->mmio + AMD_C2P_MSG2); in amd_stop_sensor()
167 writel(cmd_base.ul, privdata->mmio + AMD_C2P_MSG0); in amd_stop_sensor()
170 void amd_stop_all_sensors(struct amd_mp2_dev *privdata) in amd_stop_all_sensors() argument
180 writel(cmd_base.ul, privdata->mmio + AMD_C2P_MSG0); in amd_stop_all_sensors()
199 int amd_mp2_get_sensor_num(struct amd_mp2_dev *privdata, u8 *sensor_id) in amd_mp2_get_sensor_num() argument
213 activestatus = privdata->mp2_acs >> 4; in amd_mp2_get_sensor_num()
234 static void amd_mp2_pci_remove(void *privdata) in amd_mp2_pci_remove() argument
236 struct amd_mp2_dev *mp2 = privdata; in amd_mp2_pci_remove()
237 amd_sfh_hid_client_deinit(privdata); in amd_mp2_pci_remove()
259 static void mp2_select_ops(struct amd_mp2_dev *privdata) in mp2_select_ops() argument
263 privdata->mp2_acs = readl(privdata->mmio + AMD_P2C_MSG3); in mp2_select_ops()
264 acs = privdata->mp2_acs & GENMASK(3, 0); in mp2_select_ops()
268 privdata->mp2_ops = &amd_sfh_ops_v2; in mp2_select_ops()
271 privdata->mp2_ops = &amd_sfh_ops; in mp2_select_ops()
276 static int amd_sfh_irq_init(struct amd_mp2_dev *privdata) in amd_sfh_irq_init() argument
278 if (privdata->mp2_ops->init_intr) in amd_sfh_irq_init()
279 return privdata->mp2_ops->init_intr(privdata); in amd_sfh_irq_init()
301 struct amd_mp2_dev *privdata; in amd_mp2_pci_probe() local
307 privdata = devm_kzalloc(&pdev->dev, sizeof(*privdata), GFP_KERNEL); in amd_mp2_pci_probe()
308 if (!privdata) in amd_mp2_pci_probe()
311 privdata->pdev = pdev; in amd_mp2_pci_probe()
312 pci_set_drvdata(pdev, privdata); in amd_mp2_pci_probe()
321 privdata->mmio = pcim_iomap_table(pdev)[2]; in amd_mp2_pci_probe()
329 privdata->cl_data = devm_kzalloc(&pdev->dev, sizeof(struct amdtp_cl_data), GFP_KERNEL); in amd_mp2_pci_probe()
330 if (!privdata->cl_data) in amd_mp2_pci_probe()
333 mp2_select_ops(privdata); in amd_mp2_pci_probe()
335 rc = amd_sfh_irq_init(privdata); in amd_mp2_pci_probe()
341 rc = amd_sfh_hid_client_init(privdata); in amd_mp2_pci_probe()
343 amd_sfh_clear_intr(privdata); in amd_mp2_pci_probe()
349 amd_sfh_clear_intr(privdata); in amd_mp2_pci_probe()
351 return devm_add_action_or_reset(&pdev->dev, amd_mp2_pci_remove, privdata); in amd_mp2_pci_probe()