Lines Matching refs:mdrv
43 struct mic_driver *mdrv = g_drv; in mic_dp_init() local
44 struct mic_device *mdev = &mdrv->mdev; in mic_dp_init()
49 lo = mic_read_spad(&mdrv->mdev, MIC_DPLO_SPAD); in mic_dp_init()
50 hi = mic_read_spad(&mdrv->mdev, MIC_DPHI_SPAD); in mic_dp_init()
53 mdrv->dp = mic_card_map(mdev, dp_dma_addr, MIC_DP_SIZE); in mic_dp_init()
54 if (!mdrv->dp) { in mic_dp_init()
55 dev_err(mdrv->dev, "Cannot remap Aperture BAR\n"); in mic_dp_init()
58 bootparam = mdrv->dp; in mic_dp_init()
61 dev_err(mdrv->dev, "bootparam magic mismatch 0x%x\n", magic); in mic_dp_init()
97 struct mic_driver *mdrv = g_drv; in mic_request_card_irq() local
99 rc = request_threaded_irq(mic_db_to_irq(mdrv, index), handler, in mic_request_card_irq()
102 dev_err(mdrv->dev, "request_threaded_irq failed rc = %d\n", rc); in mic_request_card_irq()
105 mdrv->irq_info.irq_usage_count[index]++; in mic_request_card_irq()
124 struct mic_driver *mdrv = g_drv; in mic_free_card_irq() local
127 free_irq(mic_db_to_irq(mdrv, index), data); in mic_free_card_irq()
128 mdrv->irq_info.irq_usage_count[index]--; in mic_free_card_irq()
140 struct mic_driver *mdrv = g_drv; in mic_next_card_db() local
142 for (i = 0; i < mdrv->intr_info.num_intr; i++) { in mic_next_card_db()
143 if (mdrv->irq_info.irq_usage_count[i] < in mic_next_card_db()
144 mdrv->irq_info.irq_usage_count[index]) in mic_next_card_db()
158 struct mic_driver *mdrv = g_drv; in mic_init_irq() local
160 mdrv->irq_info.irq_usage_count = kzalloc((sizeof(u32) * in mic_init_irq()
161 mdrv->intr_info.num_intr), in mic_init_irq()
163 if (!mdrv->irq_info.irq_usage_count) in mic_init_irq()
175 struct mic_driver *mdrv = g_drv; in mic_uninit_irq() local
177 kfree(mdrv->irq_info.irq_usage_count); in mic_uninit_irq()
203 struct mic_driver *mdrv = scdev_to_mdrv(scdev); in ___mic_ack_interrupt() local
205 mic_ack_interrupt(&mdrv->mdev); in ___mic_ack_interrupt()
215 struct mic_driver *mdrv = scdev_to_mdrv(scdev); in ___mic_send_intr() local
217 mic_send_intr(&mdrv->mdev, db); in ___mic_send_intr()
230 struct mic_driver *mdrv = scdev_to_mdrv(scdev); in ___mic_ioremap() local
232 return mic_card_map(&mdrv->mdev, pa, len); in ___mic_ioremap()
237 struct mic_driver *mdrv = scdev_to_mdrv(scdev); in ___mic_iounmap() local
239 mic_card_unmap(&mdrv->mdev, va); in ___mic_iounmap()
253 static int mic_request_dma_chans(struct mic_driver *mdrv) in mic_request_dma_chans() argument
265 mdrv->dma_ch[mdrv->num_dma_ch++] = chan; in mic_request_dma_chans()
266 if (mdrv->num_dma_ch >= MIC_MAX_DMA_CHAN) in mic_request_dma_chans()
270 dev_info(mdrv->dev, "DMA channels # %d\n", mdrv->num_dma_ch); in mic_request_dma_chans()
271 return mdrv->num_dma_ch; in mic_request_dma_chans()
274 static void mic_free_dma_chans(struct mic_driver *mdrv) in mic_free_dma_chans() argument
278 for (i = 0; i < mdrv->num_dma_ch; i++) { in mic_free_dma_chans()
279 dma_release_channel(mdrv->dma_ch[i]); in mic_free_dma_chans()
280 mdrv->dma_ch[i] = NULL; in mic_free_dma_chans()
282 mdrv->num_dma_ch = 0; in mic_free_dma_chans()
290 int __init mic_driver_init(struct mic_driver *mdrv) in mic_driver_init() argument
296 g_drv = mdrv; in mic_driver_init()
298 if (!try_module_get(mdrv->dev->driver->owner)) { in mic_driver_init()
308 if (!mic_request_dma_chans(mdrv)) { in mic_driver_init()
312 rc = mic_devices_init(mdrv); in mic_driver_init()
315 bootparam = mdrv->dp; in mic_driver_init()
317 mdrv->scdev = scif_register_device(mdrv->dev, MIC_SCIF_DEV, in mic_driver_init()
319 0, node_id, &mdrv->mdev.mmio, NULL, in mic_driver_init()
320 NULL, mdrv->dp, mdrv->dma_ch, in mic_driver_init()
321 mdrv->num_dma_ch, true); in mic_driver_init()
322 if (IS_ERR(mdrv->scdev)) { in mic_driver_init()
323 rc = PTR_ERR(mdrv->scdev); in mic_driver_init()
326 mic_create_card_debug_dir(mdrv); in mic_driver_init()
330 mic_devices_uninit(mdrv); in mic_driver_init()
332 mic_free_dma_chans(mdrv); in mic_driver_init()
338 module_put(mdrv->dev->driver->owner); in mic_driver_init()
347 void mic_driver_uninit(struct mic_driver *mdrv) in mic_driver_uninit() argument
349 mic_delete_card_debug_dir(mdrv); in mic_driver_uninit()
350 scif_unregister_device(mdrv->scdev); in mic_driver_uninit()
351 mic_devices_uninit(mdrv); in mic_driver_uninit()
352 mic_free_dma_chans(mdrv); in mic_driver_uninit()
355 module_put(mdrv->dev->driver->owner); in mic_driver_uninit()