From: yxj Date: Mon, 2 Apr 2012 09:03:21 +0000 (+0800) Subject: rk30 fb: rk_get_lcdc_drv by name X-Git-Tag: firefly_0821_release~9497 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=766af0dad91e4a2c39887bb233298ce7b3a87c23;p=firefly-linux-kernel-4.4.55.git rk30 fb: rk_get_lcdc_drv by name --- diff --git a/drivers/video/rockchip/rk_fb.c b/drivers/video/rockchip/rk_fb.c index 1fea5dc5b3a1..e7f4c26f5686 100644 --- a/drivers/video/rockchip/rk_fb.c +++ b/drivers/video/rockchip/rk_fb.c @@ -90,12 +90,18 @@ int get_fb_layer_id(struct fb_fix_screeninfo *fix) /********************************************************************** this is for hdmi -id: lcdc id ,0 for lcdc0 ,1 for lcdc1 +name: lcdc device name ,lcdc0 , lcdc1 ***********************************************************************/ -struct rk_lcdc_device_driver * rk_get_lcdc_drv(int id) +struct rk_lcdc_device_driver * rk_get_lcdc_drv(char *name) { struct rk_fb_inf *inf = platform_get_drvdata(g_fb_pdev); - return inf->lcdc_dev_drv[id]; + int i = 0; + for( i = 0; i < inf->num_lcdc; i++) + { + if(!strcmp(inf->lcdc_dev_drv[i]->name,name)) + break; + } + return inf->lcdc_dev_drv[i]; } static int rk_fb_open(struct fb_info *info,int user) diff --git a/include/linux/rk_fb.h b/include/linux/rk_fb.h index a33dfd7ac448..73d7b62c1c36 100644 --- a/include/linux/rk_fb.h +++ b/include/linux/rk_fb.h @@ -222,5 +222,6 @@ extern int rk_fb_unregister(struct rk_lcdc_device_driver *fb_device_driver); extern int init_lcdc_device_driver(struct rk_lcdc_device_driver *def_drv, struct rk_lcdc_device_driver *dev_drv,int id); extern int get_fb_layer_id(struct fb_fix_screeninfo *fix); +extern struct rk_lcdc_device_driver * rk_get_lcdc_drv(char *name); extern int rkfb_create_sysfs(struct fb_info *fbi); #endif