omapfb -- panel initialization inflexibility
I have an lcd panel connected to a omap730 based system that *requires* that MCK, HSYNC, and VSYNC are active when it is powered on. It will not initialize correctly otherwise.
I've modified my omapfb driver so that there is a new OMAP_LCDC_* flag (OMAP_LCDC_PANEL_INIT_AFTER_LCDC) that determines if the enable hook is called where it is in the existing driver, or if it is called after omapfb_set_update_mode() returns.
Any objections to this workaround? Any suggestions for a better name for the flag? Is there a better value than 0x200 for the flag?
Thanks,
Brian
Actually there is no requirement on calling panel->enable() before omapfb_set_update_mode(), which enables the LCD DMA. It's even possible to enable / disable the panel while having the LCD DMA active.
So lets simply switch the order of the two calls in omapfb_probe and the suspend / resume functions. Please send a patch.
--Imre
Quoted 19 lines · ext Brian Swetland
I have an lcd panel connected to a omap730 based system that *requires* that MCK, HSYNC, and VSYNC are active when it is powered on. It will not initialize correctly otherwise.
I've modified my omapfb driver so that there is a new OMAP_LCDC_* flag (
OMAP_LCDC_PANEL_INIT_AFTER_LCDC) that determines if the enable hook is called where it is in the existing driver, or if it is called afteromapfb_set_update_mode()returns.Any objections to this workaround? Any suggestions for a better name for the flag? Is there a better value than
0x200for the flag?Thanks,
Brian
_______________________________________________
Linux-omap-open-source mailing list
[email protected]
http://linux.omap.com/mailman/listinfo/linux-omap-open-source
PATCH 1/1 omapfb: panel enable/disable reordering
[Imre Deak <[email protected]>]
Quoted 6 lines
Actually there is no requirement on calling
panel->enable()beforeomapfb_set_update_mode(), which enables the LCD DMA. It's even possible to enable / disable the panel while having the LCD DMA active.So lets simply switch the order of the two calls in
omapfb_probeand the suspend / resume functions. Please send a patch.
Sounds fine to me.
Here's such a patch.
Brian
drivers/video/omap/omapfb_main.c +12 -10
@@ -349,9 +349,9 @@ static int omapfb_blank(int blank, strucswitch (blank) {case VESA_NO_BLANKING :if (fbdev->state ==OMAPFB_SUSPENDED ) { - fbdev->panel->enable ();if (fbdev->ctrl->resume) fbdev->ctrl->resume (); + fbdev->panel->enable (); fbdev->state =OMAPFB_ACTIVE ;if (fbdev->ctrl->get_update_mode () ==OMAPFB_MANUAL_UPDATE )
@@ -360,9 +360,9 @@ static int omapfb_blank(int blank, strucbreak ;case VESA_POWERDOWN :if (fbdev->state ==OMAPFB_ACTIVE ) { + fbdev->panel->disable ();if (fbdev->ctrl->suspend) fbdev->ctrl->suspend (); - fbdev->panel->disable (); fbdev->state =OMAPFB_SUSPENDED ; }break ;
@@ -1108,11 +1108,12 @@ static void omapfb_free_resources(structswitch (state) {case OMAPFB_ACTIVE :unregister_framebuffer (fbdev->fb_info); -case 6 : +case 7 :omapfb_unregister_sysfs (fbdev); -omapfb_set_update_mode (fbdev,OMAPFB_UPDATE_DISABLED ); -case 5 : +case 6 : fbdev->panel->disable (); +case 5 : +omapfb_set_update_mode (fbdev,OMAPFB_UPDATE_DISABLED );case 4 :fbinfo_cleanup (fbdev);case 3 :
@@ -1296,11 +1297,6 @@ static int omapfb_probe(struct platform_omap_set_dma_priority (OMAP_DMA_PORT_EMIFF ,15 );#endif - r = fbdev->panel->enable (); -if (r) - goto cleanup; - init_state++; - r =ctrl_change_mode (fbdev);if (r) {pr_err ("mode setting failed\n" );
@@ -1311,6 +1307,12 @@ static int omapfb_probe(struct platform_omapfb_set_update_mode (fbdev, manual_update ?OMAPFB_MANUAL_UPDATE :OMAPFB_AUTO_UPDATE ); + init_state++; + + r = fbdev->panel->enable (); +if (r) + goto cleanup; + init_state++; r =omapfb_register_sysfs (fbdev);if (r)
Juha Yrjölä
AppliedRe: [PATCH] omapfb: panel enable/disable reordering
Quoted 10 lines · ext Brian Swetland
Quoted 6 lines
Actually there is no requirement on calling
panel->enable()beforeomapfb_set_update_mode(), which enables the LCD DMA. It's even possible to enable / disable the panel while having the LCD DMA active.So lets simply switch the order of the two calls in
omapfb_probeand the suspend / resume functions. Please send a patch.Sounds fine to me.
Here's such a patch.
Thanks, applied.
Cheers,
Juha