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()
146 struct axon_ram_bank *bank = device->bd_disk->private_data; in axon_ram_direct_access() local
149 *kaddr = (void *)(bank->ph_addr + offset); in axon_ram_direct_access()
152 return bank->size - offset; in axon_ram_direct_access()
167 struct axon_ram_bank *bank; in axon_ram_probe() local
176 bank = kzalloc(sizeof(struct axon_ram_bank), GFP_KERNEL); in axon_ram_probe()
177 if (bank == NULL) { in axon_ram_probe()
183 device->dev.platform_data = bank; in axon_ram_probe()
185 bank->device = device; in axon_ram_probe()
193 bank->size = resource_size(&resource); in axon_ram_probe()
195 if (bank->size == 0) { in axon_ram_probe()
203 AXON_RAM_DEVICE_NAME, axon_ram_bank_id, bank->size >> 20); in axon_ram_probe()
205 bank->ph_addr = resource.start; in axon_ram_probe()
206 bank->io_addr = (unsigned long) ioremap_prot( in axon_ram_probe()
207 bank->ph_addr, bank->size, _PAGE_NO_CACHE); in axon_ram_probe()
208 if (bank->io_addr == 0) { in axon_ram_probe()
214 bank->disk = alloc_disk(AXON_RAM_MINORS_PER_DISK); in axon_ram_probe()
215 if (bank->disk == NULL) { in axon_ram_probe()
221 bank->disk->major = azfs_major; in axon_ram_probe()
222 bank->disk->first_minor = azfs_minor; in axon_ram_probe()
223 bank->disk->fops = &axon_ram_devops; in axon_ram_probe()
224 bank->disk->private_data = bank; in axon_ram_probe()
225 bank->disk->driverfs_dev = &device->dev; in axon_ram_probe()
227 sprintf(bank->disk->disk_name, "%s%d", in axon_ram_probe()
230 bank->disk->queue = blk_alloc_queue(GFP_KERNEL); in axon_ram_probe()
231 if (bank->disk->queue == NULL) { in axon_ram_probe()
237 set_capacity(bank->disk, bank->size >> AXON_RAM_SECTOR_SHIFT); in axon_ram_probe()
238 blk_queue_make_request(bank->disk->queue, axon_ram_make_request); in axon_ram_probe()
239 blk_queue_logical_block_size(bank->disk->queue, AXON_RAM_SECTOR_SIZE); in axon_ram_probe()
240 add_disk(bank->disk); in axon_ram_probe()
242 bank->irq_id = irq_of_parse_and_map(device->dev.of_node, 0); in axon_ram_probe()
243 if (bank->irq_id == NO_IRQ) { in axon_ram_probe()
249 rc = request_irq(bank->irq_id, axon_ram_irq_handler, in axon_ram_probe()
250 AXON_RAM_IRQ_FLAGS, bank->disk->disk_name, device); in axon_ram_probe()
253 bank->irq_id = NO_IRQ; in axon_ram_probe()
265 azfs_minor += bank->disk->minors; in axon_ram_probe()
270 if (bank != NULL) { in axon_ram_probe()
271 if (bank->irq_id != NO_IRQ) in axon_ram_probe()
272 free_irq(bank->irq_id, device); in axon_ram_probe()
273 if (bank->disk != NULL) { in axon_ram_probe()
274 if (bank->disk->major > 0) in axon_ram_probe()
275 unregister_blkdev(bank->disk->major, in axon_ram_probe()
276 bank->disk->disk_name); in axon_ram_probe()
277 del_gendisk(bank->disk); in axon_ram_probe()
280 if (bank->io_addr != 0) in axon_ram_probe()
281 iounmap((void __iomem *) bank->io_addr); in axon_ram_probe()
282 kfree(bank); in axon_ram_probe()
295 struct axon_ram_bank *bank = device->dev.platform_data; in axon_ram_remove() local
297 BUG_ON(!bank || !bank->disk); in axon_ram_remove()
300 free_irq(bank->irq_id, device); in axon_ram_remove()
301 del_gendisk(bank->disk); in axon_ram_remove()
302 iounmap((void __iomem *) bank->io_addr); in axon_ram_remove()
303 kfree(bank); in axon_ram_remove()