@ -23,10 +23,19 @@ int display_enable(struct udevice *dev, int panel_bpp,
const struct display_timing * timing )
const struct display_timing * timing )
{
{
struct dm_display_ops * ops = display_get_ops ( dev ) ;
struct dm_display_ops * ops = display_get_ops ( dev ) ;
struct display_plat * disp_uc_plat ;
int ret ;
if ( ! ops | | ! ops - > enable )
if ( ! ops | | ! ops - > enable )
return - ENOSYS ;
return - ENOSYS ;
return ops - > enable ( dev , panel_bpp , timing ) ;
ret = ops - > enable ( dev , panel_bpp , timing ) ;
if ( ret )
return ret ;
disp_uc_plat = dev_get_uclass_platdata ( dev ) ;
disp_uc_plat - > in_use = true ;
return 0 ;
}
}
int display_read_timing ( struct udevice * dev , struct display_timing * timing )
int display_read_timing ( struct udevice * dev , struct display_timing * timing )
@ -48,6 +57,13 @@ int display_read_timing(struct udevice *dev, struct display_timing *timing)
return edid_get_timing ( buf , ret , timing , & panel_bits_per_colour ) ;
return edid_get_timing ( buf , ret , timing , & panel_bits_per_colour ) ;
}
}
bool display_in_use ( struct udevice * dev )
{
struct display_plat * disp_uc_plat = dev_get_uclass_platdata ( dev ) ;
return disp_uc_plat - > in_use ;
}
UCLASS_DRIVER ( display ) = {
UCLASS_DRIVER ( display ) = {
. id = UCLASS_DISPLAY ,
. id = UCLASS_DISPLAY ,
. name = " display " ,
. name = " display " ,