Lines Matching full:lm
226 /* Enable DMA, mailbox & LM Interrupts */ in ca91cx42_irq_init()
1290 * This does not enable the LM monitor - that should be done when the first
1293 static int ca91cx42_lm_set(struct vme_lm_resource *lm, in ca91cx42_lm_set() argument
1301 bridge = lm->parent->driver_priv; in ca91cx42_lm_set()
1302 dev = lm->parent->parent; in ca91cx42_lm_set()
1312 mutex_lock(&lm->mtx); in ca91cx42_lm_set()
1315 for (i = 0; i < lm->monitors; i++) { in ca91cx42_lm_set()
1317 mutex_unlock(&lm->mtx); in ca91cx42_lm_set()
1335 mutex_unlock(&lm->mtx); in ca91cx42_lm_set()
1353 mutex_unlock(&lm->mtx); in ca91cx42_lm_set()
1361 static int ca91cx42_lm_get(struct vme_lm_resource *lm, in ca91cx42_lm_get() argument
1367 bridge = lm->parent->driver_priv; in ca91cx42_lm_get()
1369 mutex_lock(&lm->mtx); in ca91cx42_lm_get()
1394 mutex_unlock(&lm->mtx); in ca91cx42_lm_get()
1404 static int ca91cx42_lm_attach(struct vme_lm_resource *lm, int monitor, in ca91cx42_lm_attach() argument
1411 bridge = lm->parent->driver_priv; in ca91cx42_lm_attach()
1412 dev = lm->parent->parent; in ca91cx42_lm_attach()
1414 mutex_lock(&lm->mtx); in ca91cx42_lm_attach()
1419 mutex_unlock(&lm->mtx); in ca91cx42_lm_attach()
1426 mutex_unlock(&lm->mtx); in ca91cx42_lm_attach()
1446 mutex_unlock(&lm->mtx); in ca91cx42_lm_attach()
1454 static int ca91cx42_lm_detach(struct vme_lm_resource *lm, int monitor) in ca91cx42_lm_detach() argument
1459 bridge = lm->parent->driver_priv; in ca91cx42_lm_detach()
1461 mutex_lock(&lm->mtx); in ca91cx42_lm_detach()
1483 mutex_unlock(&lm->mtx); in ca91cx42_lm_detach()
1606 struct vme_lm_resource *lm; in ca91cx42_probe() local
1740 lm = kmalloc(sizeof(*lm), GFP_KERNEL); in ca91cx42_probe()
1741 if (!lm) { in ca91cx42_probe()
1745 lm->parent = ca91cx42_bridge; in ca91cx42_probe()
1746 mutex_init(&lm->mtx); in ca91cx42_probe()
1747 lm->locked = 0; in ca91cx42_probe()
1748 lm->number = 1; in ca91cx42_probe()
1749 lm->monitors = 4; in ca91cx42_probe()
1750 list_add_tail(&lm->list, &ca91cx42_bridge->lm_resources); in ca91cx42_probe()
1799 lm = list_entry(pos, struct vme_lm_resource, list); in ca91cx42_probe()
1801 kfree(lm); in ca91cx42_probe()
1849 struct vme_lm_resource *lm; in ca91cx42_remove() local
1883 lm = list_entry(pos, struct vme_lm_resource, list); in ca91cx42_remove()
1885 kfree(lm); in ca91cx42_remove()