Lines Matching refs:cd

32 static int genwqe_open_files(struct genwqe_dev *cd)  in genwqe_open_files()  argument
37 spin_lock_irqsave(&cd->file_lock, flags); in genwqe_open_files()
38 rc = list_empty(&cd->file_list); in genwqe_open_files()
39 spin_unlock_irqrestore(&cd->file_lock, flags); in genwqe_open_files()
43 static void genwqe_add_file(struct genwqe_dev *cd, struct genwqe_file *cfile) in genwqe_add_file() argument
48 spin_lock_irqsave(&cd->file_lock, flags); in genwqe_add_file()
49 list_add(&cfile->list, &cd->file_list); in genwqe_add_file()
50 spin_unlock_irqrestore(&cd->file_lock, flags); in genwqe_add_file()
53 static int genwqe_del_file(struct genwqe_dev *cd, struct genwqe_file *cfile) in genwqe_del_file() argument
57 spin_lock_irqsave(&cd->file_lock, flags); in genwqe_del_file()
59 spin_unlock_irqrestore(&cd->file_lock, flags); in genwqe_del_file()
157 struct pci_dev *pci_dev = cfile->cd->pci_dev; in __genwqe_search_mapping()
193 struct genwqe_dev *cd = cfile->cd; in genwqe_remove_mappings() local
194 struct pci_dev *pci_dev = cfile->cd->pci_dev; in genwqe_remove_mappings()
216 __genwqe_free_consistent(cd, dma_map->size, in genwqe_remove_mappings()
222 genwqe_user_vunmap(cd, dma_map); in genwqe_remove_mappings()
231 struct genwqe_dev *cd = cfile->cd; in genwqe_remove_pinnings() local
245 genwqe_user_vunmap(cd, dma_map); in genwqe_remove_pinnings()
255 static int genwqe_kill_fasync(struct genwqe_dev *cd, int sig) in genwqe_kill_fasync() argument
261 spin_lock_irqsave(&cd->file_lock, flags); in genwqe_kill_fasync()
262 list_for_each_entry(cfile, &cd->file_list, list) { in genwqe_kill_fasync()
267 spin_unlock_irqrestore(&cd->file_lock, flags); in genwqe_kill_fasync()
271 static int genwqe_terminate(struct genwqe_dev *cd) in genwqe_terminate() argument
277 spin_lock_irqsave(&cd->file_lock, flags); in genwqe_terminate()
278 list_for_each_entry(cfile, &cd->file_list, list) { in genwqe_terminate()
282 spin_unlock_irqrestore(&cd->file_lock, flags); in genwqe_terminate()
298 struct genwqe_dev *cd; in genwqe_open() local
305 cd = container_of(inode->i_cdev, struct genwqe_dev, cdev_genwqe); in genwqe_open()
306 cfile->cd = cd; in genwqe_open()
318 genwqe_add_file(cd, cfile); in genwqe_open()
357 struct genwqe_dev *cd = cfile->cd; in genwqe_release() local
371 genwqe_del_file(cd, cfile); in genwqe_release()
391 struct genwqe_dev *cd = container_of(inode->i_cdev, struct genwqe_dev, in genwqe_vma_close() local
393 struct pci_dev *pci_dev = cd->pci_dev; in genwqe_vma_close()
407 __genwqe_free_consistent(cd, dma_map->size, dma_map->k_vaddr, in genwqe_vma_close()
434 struct genwqe_dev *cd = cfile->cd; in genwqe_mmap() local
451 dma_map->k_vaddr = __genwqe_alloc_consistent(cd, vsize, in genwqe_mmap()
479 __genwqe_free_consistent(cd, dma_map->size, in genwqe_mmap()
509 struct genwqe_dev *cd = cfile->cd; in do_flash_update() local
511 struct pci_dev *pci_dev = cd->pci_dev; in do_flash_update()
535 xbuf = __genwqe_alloc_consistent(cd, FLASH_BLOCK, &dma_addr); in do_flash_update()
572 if (genwqe_get_slu_id(cd) <= 0x2) { in do_flash_update()
605 rc = __genwqe_execute_raw_ddcb(cd, req, filp->f_flags); in do_flash_update()
630 __genwqe_free_consistent(cd, FLASH_BLOCK, xbuf, dma_addr); in do_flash_update()
644 struct genwqe_dev *cd = cfile->cd; in do_flash_read() local
646 struct pci_dev *pci_dev = cd->pci_dev; in do_flash_read()
671 xbuf = __genwqe_alloc_consistent(cd, FLASH_BLOCK, &dma_addr); in do_flash_read()
698 if (genwqe_get_slu_id(cd) <= 0x2) { in do_flash_read()
723 rc = __genwqe_execute_raw_ddcb(cd, cmd, filp->f_flags); in do_flash_read()
760 __genwqe_free_consistent(cd, FLASH_BLOCK, xbuf, dma_addr); in do_flash_read()
767 struct genwqe_dev *cd = cfile->cd; in genwqe_pin_mem() local
768 struct pci_dev *pci_dev = cfile->cd->pci_dev; in genwqe_pin_mem()
786 rc = genwqe_user_vmap(cd, dma_map, (void *)map_addr, map_size); in genwqe_pin_mem()
800 struct genwqe_dev *cd = cfile->cd; in genwqe_unpin_mem() local
816 genwqe_user_vunmap(cd, dma_map); in genwqe_unpin_mem()
830 struct genwqe_dev *cd = cfile->cd; in ddcb_cmd_cleanup() local
837 genwqe_user_vunmap(cd, dma_map); in ddcb_cmd_cleanup()
840 genwqe_free_sync_sgl(cd, &req->sgls[i]); in ddcb_cmd_cleanup()
857 struct genwqe_dev *cd = cfile->cd; in ddcb_cmd_fixups() local
939 rc = genwqe_user_vmap(cd, m, (void *)u_addr, in ddcb_cmd_fixups()
949 rc = genwqe_alloc_sync_sgl(cd, &req->sgls[i], in ddcb_cmd_fixups()
955 genwqe_setup_sgl(cd, &req->sgls[i], in ddcb_cmd_fixups()
986 struct genwqe_dev *cd = cfile->cd; in genwqe_execute_ddcb() local
994 rc = __genwqe_execute_raw_ddcb(cd, cmd, filp->f_flags); in genwqe_execute_ddcb()
1004 struct genwqe_dev *cd = cfile->cd; in do_execute_ddcb() local
1019 rc = __genwqe_execute_raw_ddcb(cd, cmd, filp->f_flags); in do_execute_ddcb()
1046 struct genwqe_dev *cd = cfile->cd; in genwqe_ioctl() local
1047 struct pci_dev *pci_dev = cd->pci_dev; in genwqe_ioctl()
1062 put_user(cd->card_state, (enum genwqe_card_state __user *)arg); in genwqe_ioctl()
1072 if ((reg_offs >= cd->mmio_len) || (reg_offs & 0x7)) in genwqe_ioctl()
1075 val = __genwqe_readq(cd, reg_offs); in genwqe_ioctl()
1092 if ((reg_offs >= cd->mmio_len) || (reg_offs & 0x7)) in genwqe_ioctl()
1098 __genwqe_writeq(cd, reg_offs, val); in genwqe_ioctl()
1108 if ((reg_offs >= cd->mmio_len) || (reg_offs & 0x3)) in genwqe_ioctl()
1111 val = __genwqe_readl(cd, reg_offs); in genwqe_ioctl()
1128 if ((reg_offs >= cd->mmio_len) || (reg_offs & 0x3)) in genwqe_ioctl()
1134 __genwqe_writel(cd, reg_offs, val); in genwqe_ioctl()
1142 if (!genwqe_is_privileged(cd)) in genwqe_ioctl()
1163 if (!genwqe_is_privileged(cd)) in genwqe_ioctl()
1166 if (genwqe_flash_readback_fails(cd)) in genwqe_ioctl()
1249 static int genwqe_device_initialized(struct genwqe_dev *cd) in genwqe_device_initialized() argument
1251 return cd->dev != NULL; in genwqe_device_initialized()
1262 int genwqe_device_create(struct genwqe_dev *cd) in genwqe_device_create() argument
1265 struct pci_dev *pci_dev = cd->pci_dev; in genwqe_device_create()
1273 rc = alloc_chrdev_region(&cd->devnum_genwqe, 0, in genwqe_device_create()
1280 cdev_init(&cd->cdev_genwqe, &genwqe_fops); in genwqe_device_create()
1281 cd->cdev_genwqe.owner = THIS_MODULE; in genwqe_device_create()
1283 rc = cdev_add(&cd->cdev_genwqe, cd->devnum_genwqe, 1); in genwqe_device_create()
1293 cd->dev = device_create_with_groups(cd->class_genwqe, in genwqe_device_create()
1294 &cd->pci_dev->dev, in genwqe_device_create()
1295 cd->devnum_genwqe, cd, in genwqe_device_create()
1298 cd->card_idx); in genwqe_device_create()
1299 if (IS_ERR(cd->dev)) { in genwqe_device_create()
1300 rc = PTR_ERR(cd->dev); in genwqe_device_create()
1304 genwqe_init_debugfs(cd); in genwqe_device_create()
1309 cdev_del(&cd->cdev_genwqe); in genwqe_device_create()
1311 unregister_chrdev_region(cd->devnum_genwqe, GENWQE_MAX_MINOR); in genwqe_device_create()
1313 cd->dev = NULL; in genwqe_device_create()
1317 static int genwqe_inform_and_stop_processes(struct genwqe_dev *cd) in genwqe_inform_and_stop_processes() argument
1321 struct pci_dev *pci_dev = cd->pci_dev; in genwqe_inform_and_stop_processes()
1323 if (!genwqe_open_files(cd)) in genwqe_inform_and_stop_processes()
1328 rc = genwqe_kill_fasync(cd, SIGIO); in genwqe_inform_and_stop_processes()
1332 genwqe_open_files(cd); i++) { in genwqe_inform_and_stop_processes()
1340 if (!genwqe_open_files(cd)) in genwqe_inform_and_stop_processes()
1346 rc = genwqe_terminate(cd); in genwqe_inform_and_stop_processes()
1350 genwqe_open_files(cd); i++) { in genwqe_inform_and_stop_processes()
1370 int genwqe_device_remove(struct genwqe_dev *cd) in genwqe_device_remove() argument
1373 struct pci_dev *pci_dev = cd->pci_dev; in genwqe_device_remove()
1375 if (!genwqe_device_initialized(cd)) in genwqe_device_remove()
1378 genwqe_inform_and_stop_processes(cd); in genwqe_device_remove()
1386 rc = kref_read(&cd->cdev_genwqe.kobj.kref); in genwqe_device_remove()
1393 genqwe_exit_debugfs(cd); in genwqe_device_remove()
1394 device_destroy(cd->class_genwqe, cd->devnum_genwqe); in genwqe_device_remove()
1395 cdev_del(&cd->cdev_genwqe); in genwqe_device_remove()
1396 unregister_chrdev_region(cd->devnum_genwqe, GENWQE_MAX_MINOR); in genwqe_device_remove()
1397 cd->dev = NULL; in genwqe_device_remove()