CONFIG_OMAP2_DSS_FAKE_VSYNC

Hello,

I thought CONFIG_OMAP2_DSS_FAKE_VSYNC enables anm irq when a vsync
happens. So I enabled this option:

root@beagleboard:~# cat /proc/interrupts
           CPU0
12: 994 INTC DMA
25: 0 INTC OMAP DSS
56: 359 INTC i2c_omap
61: 0 INTC i2c_omap
74: 1447 INTC serial
...

I think OMAP DSS is this interrupt. But as one can see it is zero. Is
this option working with the new DSS2 driver?

Robert

Hi,

Hello,

I thought CONFIG_OMAP2_DSS_FAKE_VSYNC enables anm irq when a vsync
happens. So I enabled this option:

root@beagleboard:~# cat /proc/interrupts
           CPU0
12: 994 INTC DMA
25: 0 INTC OMAP DSS
56: 359 INTC i2c_omap
61: 0 INTC i2c_omap
74: 1447 INTC serial
...

I think OMAP DSS is this interrupt. But as one can see it is zero. Is
this option working with the new DSS2 driver?

The option works, but is something totally different than what you are
looking for. It's meant for external display framebuffers, the option
can be used to create a fake VSYNC interrupt (as normally there's no
VSYNC with ext fbs).

Currently there's no way to get VSYNC from userspace. If you really
really want it, you can create a kernel module that registers to the
VSYNC interrupt from DSS, and then pass that to the userspace somehow.

I still don't know what would be the proper way for this. I don't see
any sensible way in the fb framework to do it.

Robert

Tomi

I thought CONFIG_OMAP2_DSS_FAKE_VSYNC enables anm irq when a vsync

...

The option works, but is something totally different than what you are
looking for. It's meant for external display framebuffers, the option
can be used to create a fake VSYNC interrupt (as normally there's no
VSYNC with ext fbs).

Currently there's no way to get VSYNC from userspace. If you really
really want it, you can create a kernel module that registers to the
VSYNC interrupt from DSS, and then pass that to the userspace somehow.

Okay, this is what I will try. Whats the irq-number of this interrupt
or how do I enable this interrupt?

I still don't know what would be the proper way for this. I don't see
any sensible way in the fb framework to do it.

The other solution is to use a gpio and blue-wire the signal from the
processor pin to a gpio on the expander slot. Thats the other way I am
thinking about.

Robert

>> I thought CONFIG_OMAP2_DSS_FAKE_VSYNC enables anm irq when a vsync
...
> The option works, but is something totally different than what you are
> looking for. It's meant for external display framebuffers, the option
> can be used to create a fake VSYNC interrupt (as normally there's no
> VSYNC with ext fbs).
>
> Currently there's no way to get VSYNC from userspace. If you really
> really want it, you can create a kernel module that registers to the
> VSYNC interrupt from DSS, and then pass that to the userspace somehow.

Okay, this is what I will try. Whats the irq-number of this interrupt
or how do I enable this interrupt?

Something like:

#include <mach/display.h>

void vsync_handler(void *arg, u32 mask)
{
  printk("vsync\n");
}

init()
{
  omap_dispc_register_isr(vsync_handler, 0, DISPC_IRQ_VSYNC);
}

uninit()
{
  omap_dispc_unregister_isr(vsync_handler);
}

> I still don't know what would be the proper way for this. I don't see
> any sensible way in the fb framework to do it.

The other solution is to use a gpio and blue-wire the signal from the
processor pin to a gpio on the expander slot. Thats the other way I am
thinking about.

Robert

Tomi

Thanks - it works!

Robert