driversvideofbdevmxcldb.c
注册handle
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
static struct ldb_drv = { .name = DRIVER_NAME, .init = ldb_init, .setup = ldb_setup, .enable = ldb_enable, .disable = ldb_disable };
static int ldb_probe(struct platform_device *pdev) { ldb->mddh = mxc_dispdrv_register(&ldb_drv); new = kzalloc(sizeof(struct mxc_dispdrv_entry), GFP_KERNEL); new->drv = drv; list_add_tail(&new->list, &dispdrv_list); }
|
使用
driversvideofbdevmxcmxc_ipuv3_fb.c
获取handle
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
static int mxcfb_probe(struct platform_device *pdev) { ret = mxcfb_dispdrv_init(pdev, fbi); mxcfbi->dispdrv = mxc_dispdrv_gethandle(disp_dev, &setting); list_for_each_entry(entry, &dispdrv_list, list) { if (!strcmp(entry->drv->name, name) && (entry->drv->init)) { ret = entry->drv->init((struct mxc_dispdrv_handle *) entry, setting); if (ret >= 0) { entry->active = true; found = 1; break; } } } return found ? (struct mxc_dispdrv_handle *)entry:ERR_PTR(-ENODEV); }
|
使用handle
1 2 3 4
|
static int mxcfb_set_par(struct fb_info *fbi) { retval = mxc_fbi->dispdrv->drv->enable(mxc_fbi->dispdrv, fbi); }
|
近期评论