Lines Matching refs:bank

75 	struct axon_ram_bank *bank = device->dev.platform_data;  in axon_ram_sysfs_ecc()  local
77 BUG_ON(!bank); in axon_ram_sysfs_ecc()
79 return sprintf(buf, "%ld\n", bank->ecc_counter); in axon_ram_sysfs_ecc()
93 struct axon_ram_bank *bank = device->dev.platform_data; in axon_ram_irq_handler() local
95 BUG_ON(!bank); in axon_ram_irq_handler()
98 bank->ecc_counter++; in axon_ram_irq_handler()
109 struct axon_ram_bank *bank = bio->bi_bdev->bd_disk->private_data; in axon_ram_make_request() local
116 phys_mem = bank->io_addr + (bio->bi_iter.bi_sector << in axon_ram_make_request()
118 phys_end = bank->io_addr + bank->size; in axon_ram_make_request()
147 struct axon_ram_bank *bank = device->bd_disk->private_data; in axon_ram_direct_access() local
149 void *addr = (void *)(bank->ph_addr + offset); in axon_ram_direct_access()
154 return bank->size - offset; in axon_ram_direct_access()
169 struct axon_ram_bank *bank; in axon_ram_probe() local
178 bank = kzalloc(sizeof(struct axon_ram_bank), GFP_KERNEL); in axon_ram_probe()
179 if (bank == NULL) { in axon_ram_probe()
185 device->dev.platform_data = bank; in axon_ram_probe()
187 bank->device = device; in axon_ram_probe()
195 bank->size = resource_size(&resource); in axon_ram_probe()
197 if (bank->size == 0) { in axon_ram_probe()
205 AXON_RAM_DEVICE_NAME, axon_ram_bank_id, bank->size >> 20); in axon_ram_probe()
207 bank->ph_addr = resource.start; in axon_ram_probe()
208 bank->io_addr = (unsigned long) ioremap_prot( in axon_ram_probe()
209 bank->ph_addr, bank->size, _PAGE_NO_CACHE); in axon_ram_probe()
210 if (bank->io_addr == 0) { in axon_ram_probe()
216 bank->disk = alloc_disk(AXON_RAM_MINORS_PER_DISK); in axon_ram_probe()
217 if (bank->disk == NULL) { in axon_ram_probe()
223 bank->disk->major = azfs_major; in axon_ram_probe()
224 bank->disk->first_minor = azfs_minor; in axon_ram_probe()
225 bank->disk->fops = &axon_ram_devops; in axon_ram_probe()
226 bank->disk->private_data = bank; in axon_ram_probe()
227 bank->disk->driverfs_dev = &device->dev; in axon_ram_probe()
229 sprintf(bank->disk->disk_name, "%s%d", in axon_ram_probe()
232 bank->disk->queue = blk_alloc_queue(GFP_KERNEL); in axon_ram_probe()
233 if (bank->disk->queue == NULL) { in axon_ram_probe()
239 set_capacity(bank->disk, bank->size >> AXON_RAM_SECTOR_SHIFT); in axon_ram_probe()
240 blk_queue_make_request(bank->disk->queue, axon_ram_make_request); in axon_ram_probe()
241 blk_queue_logical_block_size(bank->disk->queue, AXON_RAM_SECTOR_SIZE); in axon_ram_probe()
242 add_disk(bank->disk); in axon_ram_probe()
244 bank->irq_id = irq_of_parse_and_map(device->dev.of_node, 0); in axon_ram_probe()
245 if (bank->irq_id == NO_IRQ) { in axon_ram_probe()
251 rc = request_irq(bank->irq_id, axon_ram_irq_handler, in axon_ram_probe()
252 AXON_RAM_IRQ_FLAGS, bank->disk->disk_name, device); in axon_ram_probe()
255 bank->irq_id = NO_IRQ; in axon_ram_probe()
267 azfs_minor += bank->disk->minors; in axon_ram_probe()
272 if (bank != NULL) { in axon_ram_probe()
273 if (bank->irq_id != NO_IRQ) in axon_ram_probe()
274 free_irq(bank->irq_id, device); in axon_ram_probe()
275 if (bank->disk != NULL) { in axon_ram_probe()
276 if (bank->disk->major > 0) in axon_ram_probe()
277 unregister_blkdev(bank->disk->major, in axon_ram_probe()
278 bank->disk->disk_name); in axon_ram_probe()
279 del_gendisk(bank->disk); in axon_ram_probe()
282 if (bank->io_addr != 0) in axon_ram_probe()
283 iounmap((void __iomem *) bank->io_addr); in axon_ram_probe()
284 kfree(bank); in axon_ram_probe()
297 struct axon_ram_bank *bank = device->dev.platform_data; in axon_ram_remove() local
299 BUG_ON(!bank || !bank->disk); in axon_ram_remove()
302 free_irq(bank->irq_id, device); in axon_ram_remove()
303 del_gendisk(bank->disk); in axon_ram_remove()
304 iounmap((void __iomem *) bank->io_addr); in axon_ram_remove()
305 kfree(bank); in axon_ram_remove()