Re: [PATCH v7 5/8] fbmon: add videomode helpers
Hi Steffen, On Friday 09 November 2012 20:31:33 Steffen Trumtrar wrote: > On Fri, Nov 09, 2012 at 04:54:16PM +, Manjunathappa, Prakash wrote: > > On Fri, Nov 09, 2012 at 02:55:45, Steffen Trumtrar wrote: > > > On Wed, Oct 31, 2012 at 03:30:03PM +, Manjunathappa, Prakash wrote: > > > > On Wed, Oct 31, 2012 at 14:58:05, Steffen Trumtrar wrote: > > > > > +#if IS_ENABLED(CONFIG_VIDEOMODE) > > > > > +int videomode_to_fb_videomode(struct videomode *vm, struct > > > > > fb_videomode *fbmode) +{ > > > > > + fbmode->xres = vm->hactive; > > > > > + fbmode->left_margin = vm->hback_porch; > > > > > + fbmode->right_margin = vm->hfront_porch; > > > > > + fbmode->hsync_len = vm->hsync_len; > > > > > + > > > > > + fbmode->yres = vm->vactive; > > > > > + fbmode->upper_margin = vm->vback_porch; > > > > > + fbmode->lower_margin = vm->vfront_porch; > > > > > + fbmode->vsync_len = vm->vsync_len; > > > > > + > > > > > + fbmode->pixclock = KHZ2PICOS(vm->pixelclock / 1000); > > > > > + > > > > > + fbmode->sync = 0; > > > > > + fbmode->vmode = 0; > > > > > + if (vm->hah) > > > > > + fbmode->sync |= FB_SYNC_HOR_HIGH_ACT; > > > > > + if (vm->vah) > > > > > + fbmode->sync |= FB_SYNC_VERT_HIGH_ACT; > > > > > + if (vm->interlaced) > > > > > + fbmode->vmode |= FB_VMODE_INTERLACED; > > > > > + if (vm->doublescan) > > > > > + fbmode->vmode |= FB_VMODE_DOUBLE; > > > > > + > > > > > > > > "pixelclk-inverted" property of the panel is not percolated > > > > fb_videomode. > > > > Please let me know if I am missing something. > > > > > > The next version is almost finished. Only thing I'm missing is this. > > > And I actually do not know which flag would represent an inverted > > > pixelclock in fb_videomode. Does anybody have any idea what I have to > > > do here?> > > > > if (vm->pixelclk_pol) > > > > > > fbmode->sync = ??? > > > > > > That's as far as I have come and I don't see a flag that seems right. > > > Is this even a valid property of fb_videomode? > > > > Thanks for considering it, I see IMX addresses it as proprietary FB_SYNC_ > > flag. FB_SYNC_CLK_INVERT: arch/arm/plat-mxc/include/mach/mx3fb.h > > No problem. So, it seems this flag has to be set in some imx-specific > videomode_to_fb_videomode function. It is included in the > struct videomode, so that should be no problem. But it will not be > part of this series. A possible solution would be to standardize the FB_SYNC_CLK_INVERT flag in fbdev, but that's in my opinion out of scope of this patch series. iMX3 developers, feel free to send patches :-) -- Regards, Laurent Pinchart -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v7 5/8] fbmon: add videomode helpers
Hi! On Fri, Nov 09, 2012 at 04:54:16PM +, Manjunathappa, Prakash wrote: > Hi Steffen, > > On Fri, Nov 09, 2012 at 02:55:45, Steffen Trumtrar wrote: > > Hi! > > > > On Wed, Oct 31, 2012 at 03:30:03PM +, Manjunathappa, Prakash wrote: > > > Hi Steffen, > > > > > > On Wed, Oct 31, 2012 at 14:58:05, Steffen Trumtrar wrote: > > > > +#if IS_ENABLED(CONFIG_VIDEOMODE) > > > > +int videomode_to_fb_videomode(struct videomode *vm, struct > > > > fb_videomode *fbmode) > > > > +{ > > > > + fbmode->xres = vm->hactive; > > > > + fbmode->left_margin = vm->hback_porch; > > > > + fbmode->right_margin = vm->hfront_porch; > > > > + fbmode->hsync_len = vm->hsync_len; > > > > + > > > > + fbmode->yres = vm->vactive; > > > > + fbmode->upper_margin = vm->vback_porch; > > > > + fbmode->lower_margin = vm->vfront_porch; > > > > + fbmode->vsync_len = vm->vsync_len; > > > > + > > > > + fbmode->pixclock = KHZ2PICOS(vm->pixelclock / 1000); > > > > + > > > > + fbmode->sync = 0; > > > > + fbmode->vmode = 0; > > > > + if (vm->hah) > > > > + fbmode->sync |= FB_SYNC_HOR_HIGH_ACT; > > > > + if (vm->vah) > > > > + fbmode->sync |= FB_SYNC_VERT_HIGH_ACT; > > > > + if (vm->interlaced) > > > > + fbmode->vmode |= FB_VMODE_INTERLACED; > > > > + if (vm->doublescan) > > > > + fbmode->vmode |= FB_VMODE_DOUBLE; > > > > + > > > > > > "pixelclk-inverted" property of the panel is not percolated fb_videomode. > > > Please let me know if I am missing something. > > > > > > > The next version is almost finished. Only thing I'm missing is this. > > And I actually do not know which flag would represent an inverted pixelclock > > in fb_videomode. Does anybody have any idea what I have to do here? > > > > if (vm->pixelclk_pol) > > fbmode->sync = ??? > > > > That's as far as I have come and I don't see a flag that seems right. > > Is this even a valid property of fb_videomode? > > > > Thanks for considering it, I see IMX addresses it as proprietary FB_SYNC_ > flag. > FB_SYNC_CLK_INVERT: arch/arm/plat-mxc/include/mach/mx3fb.h > No problem. So, it seems this flag has to be set in some imx-specific videomode_to_fb_videomode function. It is included in the struct videomode, so that should be no problem. But it will not be part of this series. Regards, Steffen -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0| Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917- | -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: [PATCH v7 5/8] fbmon: add videomode helpers
Hi Steffen, On Fri, Nov 09, 2012 at 02:55:45, Steffen Trumtrar wrote: > Hi! > > On Wed, Oct 31, 2012 at 03:30:03PM +, Manjunathappa, Prakash wrote: > > Hi Steffen, > > > > On Wed, Oct 31, 2012 at 14:58:05, Steffen Trumtrar wrote: > > > +#if IS_ENABLED(CONFIG_VIDEOMODE) > > > +int videomode_to_fb_videomode(struct videomode *vm, struct fb_videomode > > > *fbmode) > > > +{ > > > + fbmode->xres = vm->hactive; > > > + fbmode->left_margin = vm->hback_porch; > > > + fbmode->right_margin = vm->hfront_porch; > > > + fbmode->hsync_len = vm->hsync_len; > > > + > > > + fbmode->yres = vm->vactive; > > > + fbmode->upper_margin = vm->vback_porch; > > > + fbmode->lower_margin = vm->vfront_porch; > > > + fbmode->vsync_len = vm->vsync_len; > > > + > > > + fbmode->pixclock = KHZ2PICOS(vm->pixelclock / 1000); > > > + > > > + fbmode->sync = 0; > > > + fbmode->vmode = 0; > > > + if (vm->hah) > > > + fbmode->sync |= FB_SYNC_HOR_HIGH_ACT; > > > + if (vm->vah) > > > + fbmode->sync |= FB_SYNC_VERT_HIGH_ACT; > > > + if (vm->interlaced) > > > + fbmode->vmode |= FB_VMODE_INTERLACED; > > > + if (vm->doublescan) > > > + fbmode->vmode |= FB_VMODE_DOUBLE; > > > + > > > > "pixelclk-inverted" property of the panel is not percolated fb_videomode. > > Please let me know if I am missing something. > > > > The next version is almost finished. Only thing I'm missing is this. > And I actually do not know which flag would represent an inverted pixelclock > in fb_videomode. Does anybody have any idea what I have to do here? > > if (vm->pixelclk_pol) > fbmode->sync = ??? > > That's as far as I have come and I don't see a flag that seems right. > Is this even a valid property of fb_videomode? > Thanks for considering it, I see IMX addresses it as proprietary FB_SYNC_ flag. FB_SYNC_CLK_INVERT: arch/arm/plat-mxc/include/mach/mx3fb.h Thanks, Prakash -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v7 5/8] fbmon: add videomode helpers
Hi! On Wed, Oct 31, 2012 at 03:30:03PM +, Manjunathappa, Prakash wrote: > Hi Steffen, > > On Wed, Oct 31, 2012 at 14:58:05, Steffen Trumtrar wrote: > > +#if IS_ENABLED(CONFIG_VIDEOMODE) > > +int videomode_to_fb_videomode(struct videomode *vm, struct fb_videomode > > *fbmode) > > +{ > > + fbmode->xres = vm->hactive; > > + fbmode->left_margin = vm->hback_porch; > > + fbmode->right_margin = vm->hfront_porch; > > + fbmode->hsync_len = vm->hsync_len; > > + > > + fbmode->yres = vm->vactive; > > + fbmode->upper_margin = vm->vback_porch; > > + fbmode->lower_margin = vm->vfront_porch; > > + fbmode->vsync_len = vm->vsync_len; > > + > > + fbmode->pixclock = KHZ2PICOS(vm->pixelclock / 1000); > > + > > + fbmode->sync = 0; > > + fbmode->vmode = 0; > > + if (vm->hah) > > + fbmode->sync |= FB_SYNC_HOR_HIGH_ACT; > > + if (vm->vah) > > + fbmode->sync |= FB_SYNC_VERT_HIGH_ACT; > > + if (vm->interlaced) > > + fbmode->vmode |= FB_VMODE_INTERLACED; > > + if (vm->doublescan) > > + fbmode->vmode |= FB_VMODE_DOUBLE; > > + > > "pixelclk-inverted" property of the panel is not percolated fb_videomode. > Please let me know if I am missing something. > The next version is almost finished. Only thing I'm missing is this. And I actually do not know which flag would represent an inverted pixelclock in fb_videomode. Does anybody have any idea what I have to do here? if (vm->pixelclk_pol) fbmode->sync = ??? That's as far as I have come and I don't see a flag that seems right. Is this even a valid property of fb_videomode? Regards, Steffen -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0| Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917- | -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v7 5/8] fbmon: add videomode helpers
Hi Prakash! On Wed, Oct 31, 2012 at 03:30:03PM +, Manjunathappa, Prakash wrote: > Hi Steffen, > > On Wed, Oct 31, 2012 at 14:58:05, Steffen Trumtrar wrote: > > Add a function to convert from the generic videomode to a fb_videomode. > > > > Signed-off-by: Steffen Trumtrar > > --- > > drivers/video/fbmon.c | 36 > > include/linux/fb.h|2 ++ > > 2 files changed, 38 insertions(+) > > > > diff --git a/drivers/video/fbmon.c b/drivers/video/fbmon.c > > index cef6557..b9e6ab3 100644 > > --- a/drivers/video/fbmon.c > > +++ b/drivers/video/fbmon.c > > @@ -1373,6 +1373,42 @@ int fb_get_mode(int flags, u32 val, struct > > fb_var_screeninfo *var, struct fb_inf > > kfree(timings); > > return err; > > } > > + > > +#if IS_ENABLED(CONFIG_VIDEOMODE) > > +int videomode_to_fb_videomode(struct videomode *vm, struct fb_videomode > > *fbmode) > > +{ > > + fbmode->xres = vm->hactive; > > + fbmode->left_margin = vm->hback_porch; > > + fbmode->right_margin = vm->hfront_porch; > > + fbmode->hsync_len = vm->hsync_len; > > + > > + fbmode->yres = vm->vactive; > > + fbmode->upper_margin = vm->vback_porch; > > + fbmode->lower_margin = vm->vfront_porch; > > + fbmode->vsync_len = vm->vsync_len; > > + > > + fbmode->pixclock = KHZ2PICOS(vm->pixelclock / 1000); > > + > > + fbmode->sync = 0; > > + fbmode->vmode = 0; > > + if (vm->hah) > > + fbmode->sync |= FB_SYNC_HOR_HIGH_ACT; > > + if (vm->vah) > > + fbmode->sync |= FB_SYNC_VERT_HIGH_ACT; > > + if (vm->interlaced) > > + fbmode->vmode |= FB_VMODE_INTERLACED; > > + if (vm->doublescan) > > + fbmode->vmode |= FB_VMODE_DOUBLE; > > + > > "pixelclk-inverted" property of the panel is not percolated fb_videomode. > Please let me know if I am missing something. > You are right. I forgot that :( Regards, Steffen -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0| Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917- | -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: [PATCH v7 5/8] fbmon: add videomode helpers
Hi Steffen, On Wed, Oct 31, 2012 at 14:58:05, Steffen Trumtrar wrote: > Add a function to convert from the generic videomode to a fb_videomode. > > Signed-off-by: Steffen Trumtrar > --- > drivers/video/fbmon.c | 36 > include/linux/fb.h|2 ++ > 2 files changed, 38 insertions(+) > > diff --git a/drivers/video/fbmon.c b/drivers/video/fbmon.c > index cef6557..b9e6ab3 100644 > --- a/drivers/video/fbmon.c > +++ b/drivers/video/fbmon.c > @@ -1373,6 +1373,42 @@ int fb_get_mode(int flags, u32 val, struct > fb_var_screeninfo *var, struct fb_inf > kfree(timings); > return err; > } > + > +#if IS_ENABLED(CONFIG_VIDEOMODE) > +int videomode_to_fb_videomode(struct videomode *vm, struct fb_videomode > *fbmode) > +{ > + fbmode->xres = vm->hactive; > + fbmode->left_margin = vm->hback_porch; > + fbmode->right_margin = vm->hfront_porch; > + fbmode->hsync_len = vm->hsync_len; > + > + fbmode->yres = vm->vactive; > + fbmode->upper_margin = vm->vback_porch; > + fbmode->lower_margin = vm->vfront_porch; > + fbmode->vsync_len = vm->vsync_len; > + > + fbmode->pixclock = KHZ2PICOS(vm->pixelclock / 1000); > + > + fbmode->sync = 0; > + fbmode->vmode = 0; > + if (vm->hah) > + fbmode->sync |= FB_SYNC_HOR_HIGH_ACT; > + if (vm->vah) > + fbmode->sync |= FB_SYNC_VERT_HIGH_ACT; > + if (vm->interlaced) > + fbmode->vmode |= FB_VMODE_INTERLACED; > + if (vm->doublescan) > + fbmode->vmode |= FB_VMODE_DOUBLE; > + "pixelclk-inverted" property of the panel is not percolated fb_videomode. Please let me know if I am missing something. Thanks, Prakash > + fbmode->refresh = 60; > + fbmode->flag = 0; > + > + return 0; > +} > +EXPORT_SYMBOL_GPL(videomode_to_fb_videomode); > +#endif > + > + > #else > int fb_parse_edid(unsigned char *edid, struct fb_var_screeninfo *var) > { > diff --git a/include/linux/fb.h b/include/linux/fb.h > index c7a9571..46c665b 100644 > --- a/include/linux/fb.h > +++ b/include/linux/fb.h > @@ -714,6 +714,8 @@ extern void fb_destroy_modedb(struct fb_videomode > *modedb); > extern int fb_find_mode_cvt(struct fb_videomode *mode, int margins, int rb); > extern unsigned char *fb_ddc_read(struct i2c_adapter *adapter); > > +extern int videomode_to_fb_videomode(struct videomode *vm, struct > fb_videomode *fbmode); > + > /* drivers/video/modedb.c */ > #define VESA_MODEDB_SIZE 34 > extern void fb_var_to_videomode(struct fb_videomode *mode, > -- > 1.7.10.4 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-fbdev" in > the body of a message to majord...@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html