Lines Matching refs:fdata

38 int __afu_port_enable(struct dfl_feature_dev_data *fdata)  in __afu_port_enable()  argument
43 WARN_ON(!fdata->disable_count); in __afu_port_enable()
45 if (--fdata->disable_count != 0) in __afu_port_enable()
48 base = dfl_get_feature_ioaddr_by_id(fdata, PORT_FEATURE_ID_HEADER); in __afu_port_enable()
62 dev_err(fdata->dfl_cdev->parent, in __afu_port_enable()
78 int __afu_port_disable(struct dfl_feature_dev_data *fdata) in __afu_port_disable() argument
83 if (fdata->disable_count++ != 0) in __afu_port_disable()
86 base = dfl_get_feature_ioaddr_by_id(fdata, PORT_FEATURE_ID_HEADER); in __afu_port_disable()
101 dev_err(fdata->dfl_cdev->parent, in __afu_port_disable()
121 static int __port_reset(struct dfl_feature_dev_data *fdata) in __port_reset() argument
125 ret = __afu_port_disable(fdata); in __port_reset()
129 return __afu_port_enable(fdata); in __port_reset()
134 struct dfl_feature_dev_data *fdata = to_dfl_feature_dev_data(&pdev->dev); in port_reset() local
137 mutex_lock(&fdata->lock); in port_reset()
138 ret = __port_reset(fdata); in port_reset()
139 mutex_unlock(&fdata->lock); in port_reset()
144 static int port_get_id(struct dfl_feature_dev_data *fdata) in port_get_id() argument
148 base = dfl_get_feature_ioaddr_by_id(fdata, PORT_FEATURE_ID_HEADER); in port_get_id()
156 struct dfl_feature_dev_data *fdata = to_dfl_feature_dev_data(dev); in id_show() local
157 int id = port_get_id(fdata); in id_show()
166 struct dfl_feature_dev_data *fdata = to_dfl_feature_dev_data(dev); in ltr_show() local
170 base = dfl_get_feature_ioaddr_by_id(fdata, PORT_FEATURE_ID_HEADER); in ltr_show()
172 mutex_lock(&fdata->lock); in ltr_show()
174 mutex_unlock(&fdata->lock); in ltr_show()
183 struct dfl_feature_dev_data *fdata = to_dfl_feature_dev_data(dev); in ltr_store() local
191 base = dfl_get_feature_ioaddr_by_id(fdata, PORT_FEATURE_ID_HEADER); in ltr_store()
193 mutex_lock(&fdata->lock); in ltr_store()
198 mutex_unlock(&fdata->lock); in ltr_store()
207 struct dfl_feature_dev_data *fdata = to_dfl_feature_dev_data(dev); in ap1_event_show() local
211 base = dfl_get_feature_ioaddr_by_id(fdata, PORT_FEATURE_ID_HEADER); in ap1_event_show()
213 mutex_lock(&fdata->lock); in ap1_event_show()
215 mutex_unlock(&fdata->lock); in ap1_event_show()
224 struct dfl_feature_dev_data *fdata = to_dfl_feature_dev_data(dev); in ap1_event_store() local
231 base = dfl_get_feature_ioaddr_by_id(fdata, PORT_FEATURE_ID_HEADER); in ap1_event_store()
233 mutex_lock(&fdata->lock); in ap1_event_store()
235 mutex_unlock(&fdata->lock); in ap1_event_store()
245 struct dfl_feature_dev_data *fdata = to_dfl_feature_dev_data(dev); in ap2_event_show() local
249 base = dfl_get_feature_ioaddr_by_id(fdata, PORT_FEATURE_ID_HEADER); in ap2_event_show()
251 mutex_lock(&fdata->lock); in ap2_event_show()
253 mutex_unlock(&fdata->lock); in ap2_event_show()
262 struct dfl_feature_dev_data *fdata = to_dfl_feature_dev_data(dev); in ap2_event_store() local
269 base = dfl_get_feature_ioaddr_by_id(fdata, PORT_FEATURE_ID_HEADER); in ap2_event_store()
271 mutex_lock(&fdata->lock); in ap2_event_store()
273 mutex_unlock(&fdata->lock); in ap2_event_store()
282 struct dfl_feature_dev_data *fdata = to_dfl_feature_dev_data(dev); in power_state_show() local
286 base = dfl_get_feature_ioaddr_by_id(fdata, PORT_FEATURE_ID_HEADER); in power_state_show()
288 mutex_lock(&fdata->lock); in power_state_show()
290 mutex_unlock(&fdata->lock); in power_state_show()
300 struct dfl_feature_dev_data *fdata = to_dfl_feature_dev_data(dev); in userclk_freqcmd_store() local
307 base = dfl_get_feature_ioaddr_by_id(fdata, PORT_FEATURE_ID_HEADER); in userclk_freqcmd_store()
309 mutex_lock(&fdata->lock); in userclk_freqcmd_store()
311 mutex_unlock(&fdata->lock); in userclk_freqcmd_store()
321 struct dfl_feature_dev_data *fdata = to_dfl_feature_dev_data(dev); in userclk_freqcntrcmd_store() local
328 base = dfl_get_feature_ioaddr_by_id(fdata, PORT_FEATURE_ID_HEADER); in userclk_freqcntrcmd_store()
330 mutex_lock(&fdata->lock); in userclk_freqcntrcmd_store()
332 mutex_unlock(&fdata->lock); in userclk_freqcntrcmd_store()
342 struct dfl_feature_dev_data *fdata = to_dfl_feature_dev_data(dev); in userclk_freqsts_show() local
346 base = dfl_get_feature_ioaddr_by_id(fdata, PORT_FEATURE_ID_HEADER); in userclk_freqsts_show()
348 mutex_lock(&fdata->lock); in userclk_freqsts_show()
350 mutex_unlock(&fdata->lock); in userclk_freqsts_show()
360 struct dfl_feature_dev_data *fdata = to_dfl_feature_dev_data(dev); in userclk_freqcntrsts_show() local
364 base = dfl_get_feature_ioaddr_by_id(fdata, PORT_FEATURE_ID_HEADER); in userclk_freqcntrsts_show()
366 mutex_lock(&fdata->lock); in userclk_freqcntrsts_show()
368 mutex_unlock(&fdata->lock); in userclk_freqcntrsts_show()
392 struct dfl_feature_dev_data *fdata; in port_hdr_attrs_visible() local
396 fdata = to_dfl_feature_dev_data(dev); in port_hdr_attrs_visible()
397 base = dfl_get_feature_ioaddr_by_id(fdata, PORT_FEATURE_ID_HEADER); in port_hdr_attrs_visible()
462 struct dfl_feature_dev_data *fdata = to_dfl_feature_dev_data(dev); in afu_id_show() local
466 base = dfl_get_feature_ioaddr_by_id(fdata, PORT_FEATURE_ID_AFU); in afu_id_show()
468 mutex_lock(&fdata->lock); in afu_id_show()
469 if (fdata->disable_count) { in afu_id_show()
470 mutex_unlock(&fdata->lock); in afu_id_show()
476 mutex_unlock(&fdata->lock); in afu_id_show()
491 struct dfl_feature_dev_data *fdata; in port_afu_attrs_visible() local
493 fdata = to_dfl_feature_dev_data(dev); in port_afu_attrs_visible()
498 if (!dfl_get_feature_by_id(fdata, PORT_FEATURE_ID_AFU)) in port_afu_attrs_visible()
512 struct dfl_feature_dev_data *fdata = to_dfl_feature_dev_data(&pdev->dev); in port_afu_init() local
515 return afu_mmio_region_add(fdata, in port_afu_init()
534 struct dfl_feature_dev_data *fdata = to_dfl_feature_dev_data(&pdev->dev); in port_stp_init() local
537 return afu_mmio_region_add(fdata, in port_stp_init()
605 struct dfl_feature_dev_data *fdata = dfl_fpga_inode_to_feature_dev_data(inode); in afu_open() local
606 struct platform_device *fdev = fdata->dev; in afu_open()
609 mutex_lock(&fdata->lock); in afu_open()
610 ret = dfl_feature_dev_use_begin(fdata, filp->f_flags & O_EXCL); in afu_open()
613 dfl_feature_dev_use_count(fdata)); in afu_open()
616 mutex_unlock(&fdata->lock); in afu_open()
624 struct dfl_feature_dev_data *fdata; in afu_release() local
629 fdata = to_dfl_feature_dev_data(&pdev->dev); in afu_release()
631 mutex_lock(&fdata->lock); in afu_release()
632 dfl_feature_dev_use_end(fdata); in afu_release()
634 if (!dfl_feature_dev_use_count(fdata)) { in afu_release()
635 dfl_fpga_dev_for_each_feature(fdata, feature) in afu_release()
638 __port_reset(fdata); in afu_release()
639 afu_dma_region_destroy(fdata); in afu_release()
641 mutex_unlock(&fdata->lock); in afu_release()
646 static long afu_ioctl_check_extension(struct dfl_feature_dev_data *fdata, in afu_ioctl_check_extension() argument
654 afu_ioctl_get_info(struct dfl_feature_dev_data *fdata, void __user *arg) in afu_ioctl_get_info() argument
668 mutex_lock(&fdata->lock); in afu_ioctl_get_info()
669 afu = dfl_fpga_fdata_get_private(fdata); in afu_ioctl_get_info()
673 mutex_unlock(&fdata->lock); in afu_ioctl_get_info()
681 static long afu_ioctl_get_region_info(struct dfl_feature_dev_data *fdata, in afu_ioctl_get_region_info() argument
697 ret = afu_mmio_region_get_by_index(fdata, rinfo.index, &region); in afu_ioctl_get_region_info()
712 afu_ioctl_dma_map(struct dfl_feature_dev_data *fdata, void __user *arg) in afu_ioctl_dma_map() argument
726 ret = afu_dma_map_region(fdata, map.user_addr, map.length, &map.iova); in afu_ioctl_dma_map()
731 afu_dma_unmap_region(fdata, map.iova); in afu_ioctl_dma_map()
735 dev_dbg(&fdata->dev->dev, "dma map: ua=%llx, len=%llx, iova=%llx\n", in afu_ioctl_dma_map()
744 afu_ioctl_dma_unmap(struct dfl_feature_dev_data *fdata, void __user *arg) in afu_ioctl_dma_unmap() argument
757 return afu_dma_unmap_region(fdata, unmap.iova); in afu_ioctl_dma_unmap()
763 struct dfl_feature_dev_data *fdata; in afu_ioctl() local
769 fdata = to_dfl_feature_dev_data(&pdev->dev); in afu_ioctl()
775 return afu_ioctl_check_extension(fdata, arg); in afu_ioctl()
777 return afu_ioctl_get_info(fdata, (void __user *)arg); in afu_ioctl()
779 return afu_ioctl_get_region_info(fdata, (void __user *)arg); in afu_ioctl()
781 return afu_ioctl_dma_map(fdata, (void __user *)arg); in afu_ioctl()
783 return afu_ioctl_dma_unmap(fdata, (void __user *)arg); in afu_ioctl()
791 dfl_fpga_dev_for_each_feature(fdata, f) in afu_ioctl()
812 struct dfl_feature_dev_data *fdata; in afu_mmap() local
820 fdata = to_dfl_feature_dev_data(&pdev->dev); in afu_mmap()
823 ret = afu_mmio_region_get_by_offset(fdata, offset, size, &region); in afu_mmap()
857 struct dfl_feature_dev_data *fdata = to_dfl_feature_dev_data(&pdev->dev); in afu_dev_init() local
864 mutex_lock(&fdata->lock); in afu_dev_init()
865 dfl_fpga_fdata_set_private(fdata, afu); in afu_dev_init()
866 afu_mmio_region_init(fdata); in afu_dev_init()
867 afu_dma_region_init(fdata); in afu_dev_init()
868 mutex_unlock(&fdata->lock); in afu_dev_init()
875 struct dfl_feature_dev_data *fdata = to_dfl_feature_dev_data(&pdev->dev); in afu_dev_destroy() local
877 mutex_lock(&fdata->lock); in afu_dev_destroy()
878 afu_mmio_region_destroy(fdata); in afu_dev_destroy()
879 afu_dma_region_destroy(fdata); in afu_dev_destroy()
880 dfl_fpga_fdata_set_private(fdata, NULL); in afu_dev_destroy()
881 mutex_unlock(&fdata->lock); in afu_dev_destroy()
886 static int port_enable_set(struct dfl_feature_dev_data *fdata, bool enable) in port_enable_set() argument
890 mutex_lock(&fdata->lock); in port_enable_set()
892 ret = __afu_port_enable(fdata); in port_enable_set()
894 ret = __afu_port_disable(fdata); in port_enable_set()
895 mutex_unlock(&fdata->lock); in port_enable_set()