rk30 fb: rk_get_lcdc_drv by name
authoryxj <yxj@rock-chips.com>
Mon, 2 Apr 2012 09:03:21 +0000 (17:03 +0800)
committeryxj <yxj@rock-chips.com>
Mon, 2 Apr 2012 09:03:30 +0000 (17:03 +0800)
drivers/video/rockchip/rk_fb.c
include/linux/rk_fb.h

index 1fea5dc5b3a1f36d1b433d65c7e2c27f792fb764..e7f4c26f5686515c012a0c4bc6b6d0ccc4d4273c 100644 (file)
@@ -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)
index a33dfd7ac448bdfd64a6b561f1a4882fa8628a9c..73d7b62c1c36932b3eba8fe837cbe847b76ad43c 100644 (file)
@@ -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