* omapfb -- panel initialization inflexibility
@ 2005-12-03 3:42 Brian Swetland
2005-12-05 12:35 ` Imre Deak
0 siblings, 1 reply; 4+ messages in thread
From: Brian Swetland @ 2005-12-03 3:42 UTC (permalink / raw)
To: linux-omap-open-source
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
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: omapfb -- panel initialization inflexibility
2005-12-03 3:42 omapfb -- panel initialization inflexibility Brian Swetland
@ 2005-12-05 12:35 ` Imre Deak
2005-12-05 13:49 ` [PATCH] omapfb: panel enable/disable reordering Brian Swetland
0 siblings, 1 reply; 4+ messages in thread
From: Imre Deak @ 2005-12-05 12:35 UTC (permalink / raw)
To: ext Brian Swetland; +Cc: linux-omap-open-source
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
On Fri, 2005-12-02 at 19:42 -0800, ext Brian Swetland wrote:
> 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
> _______________________________________________
> Linux-omap-open-source mailing list
> Linux-omap-open-source@linux.omap.com
> http://linux.omap.com/mailman/listinfo/linux-omap-open-source
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH] omapfb: panel enable/disable reordering
2005-12-05 12:35 ` Imre Deak
@ 2005-12-05 13:49 ` Brian Swetland
2005-12-20 12:15 ` Juha Yrjölä
0 siblings, 1 reply; 4+ messages in thread
From: Brian Swetland @ 2005-12-05 13:49 UTC (permalink / raw)
To: Imre Deak; +Cc: linux-omap-open-source
[-- Attachment #1: Type: text/plain, Size: 420 bytes --]
[Imre Deak <imre.deak@nokia.com>]
> 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.
Sounds fine to me.
Here's such a patch.
Brian
[-- Attachment #2: omapfb-init-order.patch --]
[-- Type: text/plain, Size: 1860 bytes --]
diff --git a/drivers/video/omap/omapfb_main.c b/drivers/video/omap/omapfb_main.c
index 2c4098d..0eefec5 100644
--- a/drivers/video/omap/omapfb_main.c
+++ b/drivers/video/omap/omapfb_main.c
@@ -349,9 +349,9 @@ static int omapfb_blank(int blank, struc
switch (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, struc
break;
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(struct
switch (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)
[-- Attachment #3: Type: text/plain, Size: 0 bytes --]
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] omapfb: panel enable/disable reordering
2005-12-05 13:49 ` [PATCH] omapfb: panel enable/disable reordering Brian Swetland
@ 2005-12-20 12:15 ` Juha Yrjölä
0 siblings, 0 replies; 4+ messages in thread
From: Juha Yrjölä @ 2005-12-20 12:15 UTC (permalink / raw)
To: imre.deak; +Cc: linux-omap-open-source
On Tue, 2005-12-20 at 13:56 +0200, ext Brian Swetland wrote:
> > 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.
>
> Sounds fine to me.
>
> Here's such a patch.
Thanks, applied.
Cheers,
Juha
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2005-12-20 12:15 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-12-03 3:42 omapfb -- panel initialization inflexibility Brian Swetland
2005-12-05 12:35 ` Imre Deak
2005-12-05 13:49 ` [PATCH] omapfb: panel enable/disable reordering Brian Swetland
2005-12-20 12:15 ` Juha Yrjölä
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox