vsoc_dev          128 drivers/staging/android/vsoc.c static struct vsoc_device vsoc_dev;
vsoc_dev          166 drivers/staging/android/vsoc.c 	if (iminor(inode) >= vsoc_dev.layout->region_count) {
vsoc_dev          167 drivers/staging/android/vsoc.c 		dev_err(&vsoc_dev.dev->dev,
vsoc_dev          181 drivers/staging/android/vsoc.c 		dev_err(&vsoc_dev.dev->dev,
vsoc_dev          192 drivers/staging/android/vsoc.c 	return (void __force *)vsoc_dev.kernel_mapped_shm + offset;
vsoc_dev          198 drivers/staging/android/vsoc.c 	return vsoc_dev.shm_phys_start + offset;
vsoc_dev          208 drivers/staging/android/vsoc.c 	return &vsoc_dev.regions[iminor(inode)];
vsoc_dev          278 drivers/staging/android/vsoc.c 	if (&vsoc_dev.regions[managed_region_p->managed_by] != region_p)
vsoc_dev          354 drivers/staging/android/vsoc.c 		mutex_lock(&vsoc_dev.mtx);
vsoc_dev          356 drivers/staging/android/vsoc.c 		mutex_unlock(&vsoc_dev.mtx);
vsoc_dev          374 drivers/staging/android/vsoc.c 		dev_err(&vsoc_dev.dev->dev,
vsoc_dev          403 drivers/staging/android/vsoc.c 	struct vsoc_region_data *data = vsoc_dev.regions_data + region_number;
vsoc_dev          511 drivers/staging/android/vsoc.c 	struct vsoc_region_data *data = vsoc_dev.regions_data + region_number;
vsoc_dev          541 drivers/staging/android/vsoc.c 	reg_data = vsoc_dev.regions_data + reg_num;
vsoc_dev          557 drivers/staging/android/vsoc.c 				mutex_lock(&vsoc_dev.mtx);
vsoc_dev          558 drivers/staging/android/vsoc.c 				list_add(&node->list, &vsoc_dev.permissions);
vsoc_dev          559 drivers/staging/android/vsoc.c 				mutex_unlock(&vsoc_dev.mtx);
vsoc_dev          583 drivers/staging/android/vsoc.c 			writel(reg_num, vsoc_dev.regs + DOORBELL);
vsoc_dev          591 drivers/staging/android/vsoc.c 		writel(reg_num, vsoc_dev.regs + DOORBELL);
vsoc_dev          723 drivers/staging/android/vsoc.c 	int reg_num = region_data - vsoc_dev.regions_data;
vsoc_dev          729 drivers/staging/android/vsoc.c 		     reg_num >= vsoc_dev.layout->region_count)) {
vsoc_dev          730 drivers/staging/android/vsoc.c 		dev_err(&vsoc_dev.dev->dev,
vsoc_dev          735 drivers/staging/android/vsoc.c 	if (unlikely(vsoc_dev.regions_data + reg_num != region_data)) {
vsoc_dev          736 drivers/staging/android/vsoc.c 		dev_err(&vsoc_dev.dev->dev,
vsoc_dev          753 drivers/staging/android/vsoc.c 	vsoc_dev.dev = pdev;
vsoc_dev          761 drivers/staging/android/vsoc.c 	vsoc_dev.enabled_device = true;
vsoc_dev          768 drivers/staging/android/vsoc.c 	vsoc_dev.requested_regions = true;
vsoc_dev          772 drivers/staging/android/vsoc.c 		vsoc_dev.regs =
vsoc_dev          775 drivers/staging/android/vsoc.c 		vsoc_dev.regs = pci_iomap(pdev, REGISTER_BAR, reg_size);
vsoc_dev          777 drivers/staging/android/vsoc.c 	if (!vsoc_dev.regs) {
vsoc_dev          786 drivers/staging/android/vsoc.c 	vsoc_dev.shm_phys_start = pci_resource_start(pdev, SHARED_MEMORY_BAR);
vsoc_dev          787 drivers/staging/android/vsoc.c 	vsoc_dev.shm_size = pci_resource_len(pdev, SHARED_MEMORY_BAR);
vsoc_dev          790 drivers/staging/android/vsoc.c 		 &vsoc_dev.shm_phys_start, vsoc_dev.shm_size);
vsoc_dev          791 drivers/staging/android/vsoc.c 	vsoc_dev.kernel_mapped_shm = pci_iomap_wc(pdev, SHARED_MEMORY_BAR, 0);
vsoc_dev          792 drivers/staging/android/vsoc.c 	if (!vsoc_dev.kernel_mapped_shm) {
vsoc_dev          793 drivers/staging/android/vsoc.c 		dev_err(&vsoc_dev.dev->dev, "cannot iomap region\n");
vsoc_dev          798 drivers/staging/android/vsoc.c 	vsoc_dev.layout = (struct vsoc_shm_layout_descriptor __force *)
vsoc_dev          799 drivers/staging/android/vsoc.c 				vsoc_dev.kernel_mapped_shm;
vsoc_dev          801 drivers/staging/android/vsoc.c 		 vsoc_dev.layout->major_version);
vsoc_dev          803 drivers/staging/android/vsoc.c 		 vsoc_dev.layout->minor_version);
vsoc_dev          804 drivers/staging/android/vsoc.c 	dev_info(&pdev->dev, "size: 0x%x\n", vsoc_dev.layout->size);
vsoc_dev          805 drivers/staging/android/vsoc.c 	dev_info(&pdev->dev, "regions: %d\n", vsoc_dev.layout->region_count);
vsoc_dev          806 drivers/staging/android/vsoc.c 	if (vsoc_dev.layout->major_version !=
vsoc_dev          808 drivers/staging/android/vsoc.c 		dev_err(&vsoc_dev.dev->dev,
vsoc_dev          814 drivers/staging/android/vsoc.c 	result = alloc_chrdev_region(&devt, 0, vsoc_dev.layout->region_count,
vsoc_dev          817 drivers/staging/android/vsoc.c 		dev_err(&vsoc_dev.dev->dev, "alloc_chrdev_region failed\n");
vsoc_dev          821 drivers/staging/android/vsoc.c 	vsoc_dev.major = MAJOR(devt);
vsoc_dev          822 drivers/staging/android/vsoc.c 	cdev_init(&vsoc_dev.cdev, &vsoc_ops);
vsoc_dev          823 drivers/staging/android/vsoc.c 	vsoc_dev.cdev.owner = THIS_MODULE;
vsoc_dev          824 drivers/staging/android/vsoc.c 	result = cdev_add(&vsoc_dev.cdev, devt, vsoc_dev.layout->region_count);
vsoc_dev          826 drivers/staging/android/vsoc.c 		dev_err(&vsoc_dev.dev->dev, "cdev_add error\n");
vsoc_dev          830 drivers/staging/android/vsoc.c 	vsoc_dev.cdev_added = true;
vsoc_dev          831 drivers/staging/android/vsoc.c 	vsoc_dev.class = class_create(THIS_MODULE, VSOC_DEV_NAME);
vsoc_dev          832 drivers/staging/android/vsoc.c 	if (IS_ERR(vsoc_dev.class)) {
vsoc_dev          833 drivers/staging/android/vsoc.c 		dev_err(&vsoc_dev.dev->dev, "class_create failed\n");
vsoc_dev          835 drivers/staging/android/vsoc.c 		return PTR_ERR(vsoc_dev.class);
vsoc_dev          837 drivers/staging/android/vsoc.c 	vsoc_dev.class_added = true;
vsoc_dev          838 drivers/staging/android/vsoc.c 	vsoc_dev.regions = (struct vsoc_device_region __force *)
vsoc_dev          839 drivers/staging/android/vsoc.c 		((void *)vsoc_dev.layout +
vsoc_dev          840 drivers/staging/android/vsoc.c 		 vsoc_dev.layout->vsoc_region_desc_offset);
vsoc_dev          841 drivers/staging/android/vsoc.c 	vsoc_dev.msix_entries =
vsoc_dev          842 drivers/staging/android/vsoc.c 		kcalloc(vsoc_dev.layout->region_count,
vsoc_dev          843 drivers/staging/android/vsoc.c 			sizeof(vsoc_dev.msix_entries[0]), GFP_KERNEL);
vsoc_dev          844 drivers/staging/android/vsoc.c 	if (!vsoc_dev.msix_entries) {
vsoc_dev          845 drivers/staging/android/vsoc.c 		dev_err(&vsoc_dev.dev->dev,
vsoc_dev          850 drivers/staging/android/vsoc.c 	vsoc_dev.regions_data =
vsoc_dev          851 drivers/staging/android/vsoc.c 		kcalloc(vsoc_dev.layout->region_count,
vsoc_dev          852 drivers/staging/android/vsoc.c 			sizeof(vsoc_dev.regions_data[0]), GFP_KERNEL);
vsoc_dev          853 drivers/staging/android/vsoc.c 	if (!vsoc_dev.regions_data) {
vsoc_dev          854 drivers/staging/android/vsoc.c 		dev_err(&vsoc_dev.dev->dev,
vsoc_dev          859 drivers/staging/android/vsoc.c 	for (i = 0; i < vsoc_dev.layout->region_count; ++i)
vsoc_dev          860 drivers/staging/android/vsoc.c 		vsoc_dev.msix_entries[i].entry = i;
vsoc_dev          862 drivers/staging/android/vsoc.c 	result = pci_enable_msix_exact(vsoc_dev.dev, vsoc_dev.msix_entries,
vsoc_dev          863 drivers/staging/android/vsoc.c 				       vsoc_dev.layout->region_count);
vsoc_dev          870 drivers/staging/android/vsoc.c 	for (i = 0; i < vsoc_dev.layout->region_count; ++i) {
vsoc_dev          871 drivers/staging/android/vsoc.c 		const struct vsoc_device_region *region = vsoc_dev.regions + i;
vsoc_dev          875 drivers/staging/android/vsoc.c 			dev_err(&vsoc_dev.dev->dev,
vsoc_dev          883 drivers/staging/android/vsoc.c 		    region->region_end_offset > vsoc_dev.shm_size) {
vsoc_dev          884 drivers/staging/android/vsoc.c 			dev_err(&vsoc_dev.dev->dev,
vsoc_dev          887 drivers/staging/android/vsoc.c 				region->region_end_offset, vsoc_dev.shm_size);
vsoc_dev          891 drivers/staging/android/vsoc.c 		if (region->managed_by >= vsoc_dev.layout->region_count) {
vsoc_dev          892 drivers/staging/android/vsoc.c 			dev_err(&vsoc_dev.dev->dev,
vsoc_dev          899 drivers/staging/android/vsoc.c 	vsoc_dev.msix_enabled = true;
vsoc_dev          900 drivers/staging/android/vsoc.c 	for (i = 0; i < vsoc_dev.layout->region_count; ++i) {
vsoc_dev          901 drivers/staging/android/vsoc.c 		const struct vsoc_device_region *region = vsoc_dev.regions + i;
vsoc_dev          902 drivers/staging/android/vsoc.c 		size_t name_sz = sizeof(vsoc_dev.regions_data[i].name) - 1;
vsoc_dev          908 drivers/staging/android/vsoc.c 		vsoc_dev.regions_data[i].name[name_sz] = '\0';
vsoc_dev          909 drivers/staging/android/vsoc.c 		memcpy(vsoc_dev.regions_data[i].name, region->device_name,
vsoc_dev          912 drivers/staging/android/vsoc.c 			 i, vsoc_dev.regions_data[i].name);
vsoc_dev          914 drivers/staging/android/vsoc.c 			(&vsoc_dev.regions_data[i].interrupt_wait_queue);
vsoc_dev          915 drivers/staging/android/vsoc.c 		init_waitqueue_head(&vsoc_dev.regions_data[i].futex_wait_queue);
vsoc_dev          916 drivers/staging/android/vsoc.c 		vsoc_dev.regions_data[i].incoming_signalled =
vsoc_dev          919 drivers/staging/android/vsoc.c 		vsoc_dev.regions_data[i].outgoing_signalled =
vsoc_dev          922 drivers/staging/android/vsoc.c 		result = request_irq(vsoc_dev.msix_entries[i].vector,
vsoc_dev          924 drivers/staging/android/vsoc.c 				     vsoc_dev.regions_data[i].name,
vsoc_dev          925 drivers/staging/android/vsoc.c 				     vsoc_dev.regions_data + i);
vsoc_dev          929 drivers/staging/android/vsoc.c 				i, vsoc_dev.msix_entries[i].vector);
vsoc_dev          933 drivers/staging/android/vsoc.c 		vsoc_dev.regions_data[i].irq_requested = true;
vsoc_dev          934 drivers/staging/android/vsoc.c 		if (!device_create(vsoc_dev.class, NULL,
vsoc_dev          935 drivers/staging/android/vsoc.c 				   MKDEV(vsoc_dev.major, i),
vsoc_dev          936 drivers/staging/android/vsoc.c 				   NULL, vsoc_dev.regions_data[i].name)) {
vsoc_dev          937 drivers/staging/android/vsoc.c 			dev_err(&vsoc_dev.dev->dev, "device_create failed\n");
vsoc_dev          941 drivers/staging/android/vsoc.c 		vsoc_dev.regions_data[i].device_created = true;
vsoc_dev          965 drivers/staging/android/vsoc.c 	if (!pdev || !vsoc_dev.dev)
vsoc_dev          968 drivers/staging/android/vsoc.c 	if (vsoc_dev.regions_data) {
vsoc_dev          969 drivers/staging/android/vsoc.c 		for (i = 0; i < vsoc_dev.layout->region_count; ++i) {
vsoc_dev          970 drivers/staging/android/vsoc.c 			if (vsoc_dev.regions_data[i].device_created) {
vsoc_dev          971 drivers/staging/android/vsoc.c 				device_destroy(vsoc_dev.class,
vsoc_dev          972 drivers/staging/android/vsoc.c 					       MKDEV(vsoc_dev.major, i));
vsoc_dev          973 drivers/staging/android/vsoc.c 				vsoc_dev.regions_data[i].device_created = false;
vsoc_dev          975 drivers/staging/android/vsoc.c 			if (vsoc_dev.regions_data[i].irq_requested)
vsoc_dev          976 drivers/staging/android/vsoc.c 				free_irq(vsoc_dev.msix_entries[i].vector, NULL);
vsoc_dev          977 drivers/staging/android/vsoc.c 			vsoc_dev.regions_data[i].irq_requested = false;
vsoc_dev          979 drivers/staging/android/vsoc.c 		kfree(vsoc_dev.regions_data);
vsoc_dev          980 drivers/staging/android/vsoc.c 		vsoc_dev.regions_data = NULL;
vsoc_dev          982 drivers/staging/android/vsoc.c 	if (vsoc_dev.msix_enabled) {
vsoc_dev          984 drivers/staging/android/vsoc.c 		vsoc_dev.msix_enabled = false;
vsoc_dev          986 drivers/staging/android/vsoc.c 	kfree(vsoc_dev.msix_entries);
vsoc_dev          987 drivers/staging/android/vsoc.c 	vsoc_dev.msix_entries = NULL;
vsoc_dev          988 drivers/staging/android/vsoc.c 	vsoc_dev.regions = NULL;
vsoc_dev          989 drivers/staging/android/vsoc.c 	if (vsoc_dev.class_added) {
vsoc_dev          990 drivers/staging/android/vsoc.c 		class_destroy(vsoc_dev.class);
vsoc_dev          991 drivers/staging/android/vsoc.c 		vsoc_dev.class_added = false;
vsoc_dev          993 drivers/staging/android/vsoc.c 	if (vsoc_dev.cdev_added) {
vsoc_dev          994 drivers/staging/android/vsoc.c 		cdev_del(&vsoc_dev.cdev);
vsoc_dev          995 drivers/staging/android/vsoc.c 		vsoc_dev.cdev_added = false;
vsoc_dev          997 drivers/staging/android/vsoc.c 	if (vsoc_dev.major && vsoc_dev.layout) {
vsoc_dev          998 drivers/staging/android/vsoc.c 		unregister_chrdev_region(MKDEV(vsoc_dev.major, 0),
vsoc_dev          999 drivers/staging/android/vsoc.c 					 vsoc_dev.layout->region_count);
vsoc_dev         1000 drivers/staging/android/vsoc.c 		vsoc_dev.major = 0;
vsoc_dev         1002 drivers/staging/android/vsoc.c 	vsoc_dev.layout = NULL;
vsoc_dev         1003 drivers/staging/android/vsoc.c 	if (vsoc_dev.kernel_mapped_shm) {
vsoc_dev         1004 drivers/staging/android/vsoc.c 		pci_iounmap(pdev, vsoc_dev.kernel_mapped_shm);
vsoc_dev         1005 drivers/staging/android/vsoc.c 		vsoc_dev.kernel_mapped_shm = NULL;
vsoc_dev         1007 drivers/staging/android/vsoc.c 	if (vsoc_dev.regs) {
vsoc_dev         1008 drivers/staging/android/vsoc.c 		pci_iounmap(pdev, vsoc_dev.regs);
vsoc_dev         1009 drivers/staging/android/vsoc.c 		vsoc_dev.regs = NULL;
vsoc_dev         1011 drivers/staging/android/vsoc.c 	if (vsoc_dev.requested_regions) {
vsoc_dev         1013 drivers/staging/android/vsoc.c 		vsoc_dev.requested_regions = false;
vsoc_dev         1015 drivers/staging/android/vsoc.c 	if (vsoc_dev.enabled_device) {
vsoc_dev         1017 drivers/staging/android/vsoc.c 		vsoc_dev.enabled_device = false;
vsoc_dev         1020 drivers/staging/android/vsoc.c 	vsoc_dev.dev = NULL;
vsoc_dev         1025 drivers/staging/android/vsoc.c 	vsoc_remove_device(vsoc_dev.dev);
vsoc_dev         1033 drivers/staging/android/vsoc.c 	INIT_LIST_HEAD(&vsoc_dev.permissions);
vsoc_dev         1034 drivers/staging/android/vsoc.c 	mutex_init(&vsoc_dev.mtx);
vsoc_dev         1074 drivers/staging/android/vsoc.c 			    &vsoc_dev.regions[owner_region_p->managed_by];