On 6 jun, 19:26, "Syed Mohammed, Khasim " <
sm.kha...@gmail.com> wrote:
> In Kernel:
> =======
> We should use the FBDEV EDID support to parse this in kernel (using i2c
> driver) and set the OMAP registers accordingly.
>
> The below code can be used to do the same, it is in the queue of tasks don't
> know when I will get to it... :(
>
> Assumig dtd has edid data from i2c transfer, the below macros will give the
> Hxres and Vyres.
>
> #define UPPER_NIBBLE( x ) (((128|64|32|16) & (x)) >> 4)
>
> #define COMBINE_HI_8LO( hi, lo ) ( (((unsigned)hi) << 8) | (unsigned)lo )
>
> #define H_ACTIVE_LO (unsigned)dtd[ 53+2 ]
>
> #define H_ACTIVE_HI UPPER_NIBBLE( (unsigned)dtd[ 53+4 ] )
>
> #define H_ACTIVE COMBINE_HI_8LO( H_ACTIVE_HI, H_ACTIVE_LO )
>
> #define V_ACTIVE_LO (unsigned)dtd[ 53+5 ]
>
> #define V_ACTIVE_HI UPPER_NIBBLE( (unsigned)dtd[ 53+7 ] )
>
> #define V_ACTIVE COMBINE_HI_8LO( V_ACTIVE_HI, V_ACTIVE_LO )
>
> printf( "\tMode \t\"%dx%d\"", H_ACTIVE, V_ACTIVE );
The trouble is with the way it is implemented in the kernel:
drivers/video/omap/lcd_omap3beagle.c
#define LCD_XRES 1600
#define LCD_YRES 1200
#define LCD_PIXCLOCK 65000 /* in kHz */
[..]
struct lcd_panel omap3beagle_panel = {
.name = "omap3beagle",
.config = OMAP_LCDC_PANEL_TFT,
.bpp = 24,
.data_lines = 24,
.x_res = LCD_XRES,
.y_res = LCD_YRES,
.hsw = 3, /* hsync_len (4) - 1 */
.hfp = 3, /* right_margin (4) - 1 */
.hbp = 39, /* left_margin (40) - 1 */
.vsw = 1, /* vsync_len (2) - 1 */
.vfp = 2, /* lower_margin */
.vbp = 7, /* upper_margin (8) - 1 */
.pixel_clock = LCD_PIXCLOCK,
.init = omap3beagle_panel_init,
.cleanup = omap3beagle_panel_cleanup,
.enable = omap3beagle_panel_enable,
.disable = omap3beagle_panel_disable,
.get_caps = omap3beagle_panel_get_caps,
};
We could use the fb_ddc driver:
int beagleboard_probe_i2c_connector(struct fb_info *info, u8
**out_edid)
{
struct beagleboardfb_par *par = info->par;
u8 *edid = NULL;
DPRINTK("beagleboard DVI: Probe DDC\n);
edid = fb_ddc_read(&omap3-i2c.3);
*out_edid = edid;
return (edid) ? 0 : 1;
}
That still doesn't get us far since omapfb only know about LCDs :(
regards,
Koen