Lines Matching refs:mdrv
42 struct mic_driver *mdrv = g_drv; in mic_dp_init() local
43 struct mic_device *mdev = &mdrv->mdev; in mic_dp_init()
48 lo = mic_read_spad(&mdrv->mdev, MIC_DPLO_SPAD); in mic_dp_init()
49 hi = mic_read_spad(&mdrv->mdev, MIC_DPHI_SPAD); in mic_dp_init()
52 mdrv->dp = mic_card_map(mdev, dp_dma_addr, MIC_DP_SIZE); in mic_dp_init()
53 if (!mdrv->dp) { in mic_dp_init()
54 dev_err(mdrv->dev, "Cannot remap Aperture BAR\n"); in mic_dp_init()
57 bootparam = mdrv->dp; in mic_dp_init()
60 dev_err(mdrv->dev, "bootparam magic mismatch 0x%x\n", magic); in mic_dp_init()
96 struct mic_driver *mdrv = g_drv; in mic_request_card_irq() local
98 rc = request_threaded_irq(mic_db_to_irq(mdrv, index), handler, in mic_request_card_irq()
101 dev_err(mdrv->dev, "request_threaded_irq failed rc = %d\n", rc); in mic_request_card_irq()
104 mdrv->irq_info.irq_usage_count[index]++; in mic_request_card_irq()
123 struct mic_driver *mdrv = g_drv; in mic_free_card_irq() local
126 free_irq(mic_db_to_irq(mdrv, index), data); in mic_free_card_irq()
127 mdrv->irq_info.irq_usage_count[index]--; in mic_free_card_irq()
139 struct mic_driver *mdrv = g_drv; in mic_next_card_db() local
141 for (i = 0; i < mdrv->intr_info.num_intr; i++) { in mic_next_card_db()
142 if (mdrv->irq_info.irq_usage_count[i] < in mic_next_card_db()
143 mdrv->irq_info.irq_usage_count[index]) in mic_next_card_db()
157 struct mic_driver *mdrv = g_drv; in mic_init_irq() local
159 mdrv->irq_info.irq_usage_count = kzalloc((sizeof(u32) * in mic_init_irq()
160 mdrv->intr_info.num_intr), in mic_init_irq()
162 if (!mdrv->irq_info.irq_usage_count) in mic_init_irq()
174 struct mic_driver *mdrv = g_drv; in mic_uninit_irq() local
176 kfree(mdrv->irq_info.irq_usage_count); in mic_uninit_irq()
202 struct mic_driver *mdrv = scdev_to_mdrv(scdev); in ___mic_ack_interrupt() local
204 mic_ack_interrupt(&mdrv->mdev); in ___mic_ack_interrupt()
214 struct mic_driver *mdrv = scdev_to_mdrv(scdev); in ___mic_send_intr() local
216 mic_send_intr(&mdrv->mdev, db); in ___mic_send_intr()
229 struct mic_driver *mdrv = scdev_to_mdrv(scdev); in ___mic_ioremap() local
231 return mic_card_map(&mdrv->mdev, pa, len); in ___mic_ioremap()
236 struct mic_driver *mdrv = scdev_to_mdrv(scdev); in ___mic_iounmap() local
238 mic_card_unmap(&mdrv->mdev, va); in ___mic_iounmap()
273 struct mic_driver *mdrv = vpdev_to_mdrv(vpdev); in __mic_ack_interrupt() local
275 mic_ack_interrupt(&mdrv->mdev); in __mic_ack_interrupt()
285 struct mic_driver *mdrv = vpdev_to_mdrv(vpdev); in __mic_get_remote_dp() local
287 return mdrv->dp; in __mic_get_remote_dp()
292 struct mic_driver *mdrv = vpdev_to_mdrv(vpdev); in __mic_send_intr() local
294 mic_send_intr(&mdrv->mdev, db); in __mic_send_intr()
300 struct mic_driver *mdrv = vpdev_to_mdrv(vpdev); in __mic_ioremap() local
302 return mic_card_map(&mdrv->mdev, pa, len); in __mic_ioremap()
307 struct mic_driver *mdrv = vpdev_to_mdrv(vpdev); in __mic_iounmap() local
309 mic_card_unmap(&mdrv->mdev, va); in __mic_iounmap()
323 static int mic_request_dma_chans(struct mic_driver *mdrv) in mic_request_dma_chans() argument
334 mdrv->dma_ch[mdrv->num_dma_ch++] = chan; in mic_request_dma_chans()
335 if (mdrv->num_dma_ch >= MIC_MAX_DMA_CHAN) in mic_request_dma_chans()
339 dev_info(mdrv->dev, "DMA channels # %d\n", mdrv->num_dma_ch); in mic_request_dma_chans()
340 return mdrv->num_dma_ch; in mic_request_dma_chans()
343 static void mic_free_dma_chans(struct mic_driver *mdrv) in mic_free_dma_chans() argument
347 for (i = 0; i < mdrv->num_dma_ch; i++) { in mic_free_dma_chans()
348 dma_release_channel(mdrv->dma_ch[i]); in mic_free_dma_chans()
349 mdrv->dma_ch[i] = NULL; in mic_free_dma_chans()
351 mdrv->num_dma_ch = 0; in mic_free_dma_chans()
359 int __init mic_driver_init(struct mic_driver *mdrv) in mic_driver_init() argument
365 g_drv = mdrv; in mic_driver_init()
367 if (!try_module_get(mdrv->dev->driver->owner)) { in mic_driver_init()
377 if (!mic_request_dma_chans(mdrv)) { in mic_driver_init()
381 mdrv->vpdev = vop_register_device(mdrv->dev, VOP_DEV_TRNSP, in mic_driver_init()
383 NULL, mdrv->dma_ch[0]); in mic_driver_init()
384 if (IS_ERR(mdrv->vpdev)) { in mic_driver_init()
385 rc = PTR_ERR(mdrv->vpdev); in mic_driver_init()
388 bootparam = mdrv->dp; in mic_driver_init()
390 mdrv->scdev = scif_register_device(mdrv->dev, MIC_SCIF_DEV, in mic_driver_init()
392 0, node_id, &mdrv->mdev.mmio, NULL, in mic_driver_init()
393 NULL, mdrv->dp, mdrv->dma_ch, in mic_driver_init()
394 mdrv->num_dma_ch, true); in mic_driver_init()
395 if (IS_ERR(mdrv->scdev)) { in mic_driver_init()
396 rc = PTR_ERR(mdrv->scdev); in mic_driver_init()
399 mic_create_card_debug_dir(mdrv); in mic_driver_init()
403 vop_unregister_device(mdrv->vpdev); in mic_driver_init()
405 mic_free_dma_chans(mdrv); in mic_driver_init()
411 module_put(mdrv->dev->driver->owner); in mic_driver_init()
420 void mic_driver_uninit(struct mic_driver *mdrv) in mic_driver_uninit() argument
422 mic_delete_card_debug_dir(mdrv); in mic_driver_uninit()
423 scif_unregister_device(mdrv->scdev); in mic_driver_uninit()
424 vop_unregister_device(mdrv->vpdev); in mic_driver_uninit()
425 mic_free_dma_chans(mdrv); in mic_driver_uninit()
428 module_put(mdrv->dev->driver->owner); in mic_driver_uninit()