Lines Matching refs:mdrv

30 	struct mic_driver *mdrv = g_drv;  in mic_dp_init()  local
31 struct mic_device *mdev = &mdrv->mdev; in mic_dp_init()
36 lo = mic_read_spad(&mdrv->mdev, MIC_DPLO_SPAD); in mic_dp_init()
37 hi = mic_read_spad(&mdrv->mdev, MIC_DPHI_SPAD); in mic_dp_init()
40 mdrv->dp = mic_card_map(mdev, dp_dma_addr, MIC_DP_SIZE); in mic_dp_init()
41 if (!mdrv->dp) { in mic_dp_init()
42 dev_err(mdrv->dev, "Cannot remap Aperture BAR\n"); in mic_dp_init()
45 bootparam = mdrv->dp; in mic_dp_init()
48 dev_err(mdrv->dev, "bootparam magic mismatch 0x%x\n", magic); in mic_dp_init()
84 struct mic_driver *mdrv = g_drv; in mic_request_card_irq() local
86 rc = request_threaded_irq(mic_db_to_irq(mdrv, index), handler, in mic_request_card_irq()
89 dev_err(mdrv->dev, "request_threaded_irq failed rc = %d\n", rc); in mic_request_card_irq()
92 mdrv->irq_info.irq_usage_count[index]++; in mic_request_card_irq()
111 struct mic_driver *mdrv = g_drv; in mic_free_card_irq() local
114 free_irq(mic_db_to_irq(mdrv, index), data); in mic_free_card_irq()
115 mdrv->irq_info.irq_usage_count[index]--; in mic_free_card_irq()
127 struct mic_driver *mdrv = g_drv; in mic_next_card_db() local
129 for (i = 0; i < mdrv->intr_info.num_intr; i++) { in mic_next_card_db()
130 if (mdrv->irq_info.irq_usage_count[i] < in mic_next_card_db()
131 mdrv->irq_info.irq_usage_count[index]) in mic_next_card_db()
145 struct mic_driver *mdrv = g_drv; in mic_init_irq() local
147 mdrv->irq_info.irq_usage_count = kzalloc((sizeof(u32) * in mic_init_irq()
148 mdrv->intr_info.num_intr), in mic_init_irq()
150 if (!mdrv->irq_info.irq_usage_count) in mic_init_irq()
162 struct mic_driver *mdrv = g_drv; in mic_uninit_irq() local
164 kfree(mdrv->irq_info.irq_usage_count); in mic_uninit_irq()
190 struct mic_driver *mdrv = scdev_to_mdrv(scdev); in ___mic_ack_interrupt() local
192 mic_ack_interrupt(&mdrv->mdev); in ___mic_ack_interrupt()
202 struct mic_driver *mdrv = scdev_to_mdrv(scdev); in ___mic_send_intr() local
204 mic_send_intr(&mdrv->mdev, db); in ___mic_send_intr()
217 struct mic_driver *mdrv = scdev_to_mdrv(scdev); in ___mic_ioremap() local
219 return mic_card_map(&mdrv->mdev, pa, len); in ___mic_ioremap()
224 struct mic_driver *mdrv = scdev_to_mdrv(scdev); in ___mic_iounmap() local
226 mic_card_unmap(&mdrv->mdev, va); in ___mic_iounmap()
261 struct mic_driver *mdrv = vpdev_to_mdrv(vpdev); in __mic_ack_interrupt() local
263 mic_ack_interrupt(&mdrv->mdev); in __mic_ack_interrupt()
273 struct mic_driver *mdrv = vpdev_to_mdrv(vpdev); in __mic_get_remote_dp() local
275 return mdrv->dp; in __mic_get_remote_dp()
280 struct mic_driver *mdrv = vpdev_to_mdrv(vpdev); in __mic_send_intr() local
282 mic_send_intr(&mdrv->mdev, db); in __mic_send_intr()
288 struct mic_driver *mdrv = vpdev_to_mdrv(vpdev); in __mic_ioremap() local
290 return mic_card_map(&mdrv->mdev, pa, len); in __mic_ioremap()
295 struct mic_driver *mdrv = vpdev_to_mdrv(vpdev); in __mic_iounmap() local
297 mic_card_unmap(&mdrv->mdev, va); in __mic_iounmap()
311 static int mic_request_dma_chans(struct mic_driver *mdrv) in mic_request_dma_chans() argument
322 mdrv->dma_ch[mdrv->num_dma_ch++] = chan; in mic_request_dma_chans()
323 if (mdrv->num_dma_ch >= MIC_MAX_DMA_CHAN) in mic_request_dma_chans()
327 dev_info(mdrv->dev, "DMA channels # %d\n", mdrv->num_dma_ch); in mic_request_dma_chans()
328 return mdrv->num_dma_ch; in mic_request_dma_chans()
331 static void mic_free_dma_chans(struct mic_driver *mdrv) in mic_free_dma_chans() argument
335 for (i = 0; i < mdrv->num_dma_ch; i++) { in mic_free_dma_chans()
336 dma_release_channel(mdrv->dma_ch[i]); in mic_free_dma_chans()
337 mdrv->dma_ch[i] = NULL; in mic_free_dma_chans()
339 mdrv->num_dma_ch = 0; in mic_free_dma_chans()
347 int __init mic_driver_init(struct mic_driver *mdrv) in mic_driver_init() argument
353 g_drv = mdrv; in mic_driver_init()
355 if (!try_module_get(mdrv->dev->driver->owner)) { in mic_driver_init()
365 if (!mic_request_dma_chans(mdrv)) { in mic_driver_init()
369 mdrv->vpdev = vop_register_device(mdrv->dev, VOP_DEV_TRNSP, in mic_driver_init()
371 NULL, mdrv->dma_ch[0]); in mic_driver_init()
372 if (IS_ERR(mdrv->vpdev)) { in mic_driver_init()
373 rc = PTR_ERR(mdrv->vpdev); in mic_driver_init()
376 bootparam = mdrv->dp; in mic_driver_init()
378 mdrv->scdev = scif_register_device(mdrv->dev, MIC_SCIF_DEV, in mic_driver_init()
380 0, node_id, &mdrv->mdev.mmio, NULL, in mic_driver_init()
381 NULL, mdrv->dp, mdrv->dma_ch, in mic_driver_init()
382 mdrv->num_dma_ch, true); in mic_driver_init()
383 if (IS_ERR(mdrv->scdev)) { in mic_driver_init()
384 rc = PTR_ERR(mdrv->scdev); in mic_driver_init()
387 mic_create_card_debug_dir(mdrv); in mic_driver_init()
391 vop_unregister_device(mdrv->vpdev); in mic_driver_init()
393 mic_free_dma_chans(mdrv); in mic_driver_init()
399 module_put(mdrv->dev->driver->owner); in mic_driver_init()
408 void mic_driver_uninit(struct mic_driver *mdrv) in mic_driver_uninit() argument
410 mic_delete_card_debug_dir(mdrv); in mic_driver_uninit()
411 scif_unregister_device(mdrv->scdev); in mic_driver_uninit()
412 vop_unregister_device(mdrv->vpdev); in mic_driver_uninit()
413 mic_free_dma_chans(mdrv); in mic_driver_uninit()
416 module_put(mdrv->dev->driver->owner); in mic_driver_uninit()