Lines Matching refs:idev

109 static int imr_read(struct imr_device *idev, u32 imr_id, struct imr_regs *imr)  in imr_read()  argument
111 u32 reg = imr_id * IMR_NUM_REGS + idev->reg_base; in imr_read()
145 static int imr_write(struct imr_device *idev, u32 imr_id, in imr_write() argument
149 u32 reg = imr_id * IMR_NUM_REGS + idev->reg_base; in imr_write()
210 struct imr_device *idev = s->private; in imr_dbgfs_state_show() local
215 mutex_lock(&idev->lock); in imr_dbgfs_state_show()
217 for (i = 0; i < idev->max_imr; i++) { in imr_dbgfs_state_show()
219 ret = imr_read(idev, i, &imr); in imr_dbgfs_state_show()
243 mutex_unlock(&idev->lock); in imr_dbgfs_state_show()
272 static int imr_debugfs_register(struct imr_device *idev) in imr_debugfs_register() argument
274 idev->file = debugfs_create_file("imr_state", S_IFREG | S_IRUGO, NULL, in imr_debugfs_register()
275 idev, &imr_state_ops); in imr_debugfs_register()
276 return PTR_ERR_OR_ZERO(idev->file); in imr_debugfs_register()
285 static void imr_debugfs_unregister(struct imr_device *idev) in imr_debugfs_unregister() argument
287 debugfs_remove(idev->file); in imr_debugfs_unregister()
352 struct imr_device *idev = &imr_dev; in imr_add_range() local
358 if (WARN_ONCE(idev->init == false, "driver not initialized")) in imr_add_range()
380 mutex_lock(&idev->lock); in imr_add_range()
389 for (i = 0; i < idev->max_imr; i++) { in imr_add_range()
390 ret = imr_read(idev, i, &imr); in imr_add_range()
421 ret = imr_write(idev, reg, &imr, lock); in imr_add_range()
432 imr_write(idev, reg, &imr, false); in imr_add_range()
435 mutex_unlock(&idev->lock); in imr_add_range()
461 struct imr_device *idev = &imr_dev; in __imr_remove_range() local
466 if (WARN_ONCE(idev->init == false, "driver not initialized")) in __imr_remove_range()
483 mutex_lock(&idev->lock); in __imr_remove_range()
487 ret = imr_read(idev, reg, &imr); in __imr_remove_range()
498 for (i = 0; i < idev->max_imr; i++) { in __imr_remove_range()
499 ret = imr_read(idev, i, &imr); in __imr_remove_range()
528 ret = imr_write(idev, reg, &imr, false); in __imr_remove_range()
531 mutex_unlock(&idev->lock); in __imr_remove_range()
586 static void __init imr_fixup_memmap(struct imr_device *idev) in imr_fixup_memmap() argument
594 for (i = 0; i < idev->max_imr; i++) in imr_fixup_memmap()
626 struct imr_device *idev = &imr_dev; in imr_init() local
632 idev->max_imr = QUARK_X1000_IMR_MAX; in imr_init()
633 idev->reg_base = QUARK_X1000_IMR_REGBASE; in imr_init()
634 idev->init = true; in imr_init()
636 mutex_init(&idev->lock); in imr_init()
637 ret = imr_debugfs_register(idev); in imr_init()
640 imr_fixup_memmap(idev); in imr_init()