[PATCH v12 3/6] fbmon: add videomode helpers
Hi Steffen, I am trying to add DT support for da8xx-fb driver on top of your patches. Encountered below build error. Sorry for reporting it late. On Tue, Nov 20, 2012 at 21:24:53, Steffen Trumtrar wrote: > Add a function to convert from the generic videomode to a fb_videomode. > > Signed-off-by: Steffen Trumtrar > Reviewed-by: Thierry Reding > Acked-by: Thierry Reding > Tested-by: Thierry Reding > Tested-by: Philipp Zabel > Reviewed-by: Laurent Pinchart > --- > drivers/video/fbmon.c | 46 ++ > include/linux/fb.h|6 ++ > 2 files changed, 52 insertions(+) > > diff --git a/drivers/video/fbmon.c b/drivers/video/fbmon.c > index cef6557..c1939a6 100644 > --- a/drivers/video/fbmon.c > +++ b/drivers/video/fbmon.c > @@ -31,6 +31,7 @@ > #include > #include > #include > +#include > #ifdef CONFIG_PPC_OF > #include > #include > @@ -1373,6 +1374,51 @@ 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 fb_videomode_from_videomode(const struct videomode *vm, > + struct fb_videomode *fbmode) > +{ > + unsigned int htotal, vtotal; > + > + 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; > + if (vm->de) > + fbmode->sync |= FB_SYNC_DATA_ENABLE_HIGH_ACT; "FB_SYNC_DATA_ENABLE_HIGH_ACT" seems to be mxsfb specific flag, I am getting build error on this. Please let me know if I am missing something. Thanks, Prakash > + fbmode->flag = 0; > + > + htotal = vm->hactive + vm->hfront_porch + vm->hback_porch + > + vm->hsync_len; > + vtotal = vm->vactive + vm->vfront_porch + vm->vback_porch + > + vm->vsync_len; > + fbmode->refresh = (vm->pixelclock * 1000) / (htotal * vtotal); > + > + return 0; > +} > +EXPORT_SYMBOL_GPL(fb_videomode_from_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..920cbe3 100644 > --- a/include/linux/fb.h > +++ b/include/linux/fb.h > @@ -14,6 +14,7 @@ > #include > #include > #include > +#include > > struct vm_area_struct; > struct fb_info; > @@ -714,6 +715,11 @@ 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); > > +#if IS_ENABLED(CONFIG_VIDEOMODE) > +extern int fb_videomode_from_videomode(const struct videomode *vm, > +struct fb_videomode *fbmode); > +#endif > + > /* 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 majordomo at vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html >
[PATCH v12 2/6] video: add of helper for videomode
Hi Steffen, On Tue, Nov 20, 2012 at 21:24:52, Steffen Trumtrar wrote: > This adds support for reading display timings from DT or/and convert one of > those > timings to a videomode. > The of_display_timing implementation supports multiple children where each > property can have up to 3 values. All children are read into an array, that > can be queried. > of_get_videomode converts exactly one of that timings to a struct videomode. > > Signed-off-by: Steffen Trumtrar > Signed-off-by: Philipp Zabel > Acked-by: Stephen Warren > Reviewed-by: Thierry Reding > Acked-by: Thierry Reding > Tested-by: Thierry Reding > Tested-by: Philipp Zabel > Reviewed-by: Laurent Pinchart > --- > .../devicetree/bindings/video/display-timings.txt | 107 ++ > drivers/video/Kconfig | 13 ++ > drivers/video/Makefile |2 + > drivers/video/of_display_timing.c | 216 > > drivers/video/of_videomode.c | 48 + > include/linux/of_display_timings.h | 20 ++ > include/linux/of_videomode.h | 18 ++ > 7 files changed, 424 insertions(+) > create mode 100644 > Documentation/devicetree/bindings/video/display-timings.txt > create mode 100644 drivers/video/of_display_timing.c > create mode 100644 drivers/video/of_videomode.c > create mode 100644 include/linux/of_display_timings.h > create mode 100644 include/linux/of_videomode.h > > diff --git a/Documentation/devicetree/bindings/video/display-timings.txt > b/Documentation/devicetree/bindings/video/display-timings.txt > new file mode 100644 > index 000..a05cade > --- /dev/null > +++ b/Documentation/devicetree/bindings/video/display-timings.txt > @@ -0,0 +1,107 @@ > +display-timings bindings > + > + > +display-timings node > + > + > +required properties: > + - none > + > +optional properties: > + - native-mode: The native mode for the display, in case multiple modes are > + provided. When omitted, assume the first node is the native. > + > +timings subnode > +--- > + > +required properties: > + - hactive, vactive: Display resolution > + - hfront-porch, hback-porch, hsync-len: Horizontal Display timing parameters > + in pixels > + vfront-porch, vback-porch, vsync-len: Vertical display timing parameters > in > + lines > + - clock-frequency: display clock in Hz > + > +optional properties: > + - hsync-active: Hsync pulse is active low/high/ignored > + - vsync-active: Vsync pulse is active low/high/ignored > + - de-active: Data-Enable pulse is active low/high/ignored > + - pixelclk-inverted: pixelclock is inverted/non-inverted/ignored > + - interlaced (bool) > + - doublescan (bool) > + > +All the optional properties that are not bool follow the following logic: > +<1>: high active > +<0>: low active > +omitted: not used on hardware > + > +There are different ways of describing the capabilities of a display. The > devicetree > +representation corresponds to the one commonly found in datasheets for > displays. > +If a display supports multiple signal timings, the native-mode can be > specified. > + > +The parameters are defined as > + > +struct display_timing > += > + > + > +--+-+--+---+ > + | |?| | > | > + | ||vback_porch | | > | > + | |?| | > | > + > +--###--+---+ > + | #?# | > | > + | #|# | > | > + | hback #|# hfront | > hsync | > + | porch #| hactive # porch | len > | > + > |<>#<---+--->#<>|<->| > + | #|# | > | > + | #|vactive # | > | > + | #|# | > | > + | #?# | > | > + > +--###--+---+ > + | |?| | > | > + | ||vfront_porch| | > | > + | |?| | > | > + > +--+-+--+---+ > + | |
[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 majordomo at vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html >
RE: [PATCH v12 3/6] fbmon: add videomode helpers
Hi Steffen, I am trying to add DT support for da8xx-fb driver on top of your patches. Encountered below build error. Sorry for reporting it late. On Tue, Nov 20, 2012 at 21:24:53, Steffen Trumtrar wrote: > Add a function to convert from the generic videomode to a fb_videomode. > > Signed-off-by: Steffen Trumtrar > Reviewed-by: Thierry Reding > Acked-by: Thierry Reding > Tested-by: Thierry Reding > Tested-by: Philipp Zabel > Reviewed-by: Laurent Pinchart > --- > drivers/video/fbmon.c | 46 ++ > include/linux/fb.h|6 ++ > 2 files changed, 52 insertions(+) > > diff --git a/drivers/video/fbmon.c b/drivers/video/fbmon.c > index cef6557..c1939a6 100644 > --- a/drivers/video/fbmon.c > +++ b/drivers/video/fbmon.c > @@ -31,6 +31,7 @@ > #include > #include > #include > +#include > #ifdef CONFIG_PPC_OF > #include > #include > @@ -1373,6 +1374,51 @@ 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 fb_videomode_from_videomode(const struct videomode *vm, > + struct fb_videomode *fbmode) > +{ > + unsigned int htotal, vtotal; > + > + 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; > + if (vm->de) > + fbmode->sync |= FB_SYNC_DATA_ENABLE_HIGH_ACT; "FB_SYNC_DATA_ENABLE_HIGH_ACT" seems to be mxsfb specific flag, I am getting build error on this. Please let me know if I am missing something. Thanks, Prakash > + fbmode->flag = 0; > + > + htotal = vm->hactive + vm->hfront_porch + vm->hback_porch + > + vm->hsync_len; > + vtotal = vm->vactive + vm->vfront_porch + vm->vback_porch + > + vm->vsync_len; > + fbmode->refresh = (vm->pixelclock * 1000) / (htotal * vtotal); > + > + return 0; > +} > +EXPORT_SYMBOL_GPL(fb_videomode_from_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..920cbe3 100644 > --- a/include/linux/fb.h > +++ b/include/linux/fb.h > @@ -14,6 +14,7 @@ > #include > #include > #include > +#include > > struct vm_area_struct; > struct fb_info; > @@ -714,6 +715,11 @@ 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); > > +#if IS_ENABLED(CONFIG_VIDEOMODE) > +extern int fb_videomode_from_videomode(const struct videomode *vm, > +struct fb_videomode *fbmode); > +#endif > + > /* 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 > ___ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel
RE: [PATCH v12 2/6] video: add of helper for videomode
Hi Steffen, On Tue, Nov 20, 2012 at 21:24:52, Steffen Trumtrar wrote: > This adds support for reading display timings from DT or/and convert one of > those > timings to a videomode. > The of_display_timing implementation supports multiple children where each > property can have up to 3 values. All children are read into an array, that > can be queried. > of_get_videomode converts exactly one of that timings to a struct videomode. > > Signed-off-by: Steffen Trumtrar > Signed-off-by: Philipp Zabel > Acked-by: Stephen Warren > Reviewed-by: Thierry Reding > Acked-by: Thierry Reding > Tested-by: Thierry Reding > Tested-by: Philipp Zabel > Reviewed-by: Laurent Pinchart > --- > .../devicetree/bindings/video/display-timings.txt | 107 ++ > drivers/video/Kconfig | 13 ++ > drivers/video/Makefile |2 + > drivers/video/of_display_timing.c | 216 > > drivers/video/of_videomode.c | 48 + > include/linux/of_display_timings.h | 20 ++ > include/linux/of_videomode.h | 18 ++ > 7 files changed, 424 insertions(+) > create mode 100644 > Documentation/devicetree/bindings/video/display-timings.txt > create mode 100644 drivers/video/of_display_timing.c > create mode 100644 drivers/video/of_videomode.c > create mode 100644 include/linux/of_display_timings.h > create mode 100644 include/linux/of_videomode.h > > diff --git a/Documentation/devicetree/bindings/video/display-timings.txt > b/Documentation/devicetree/bindings/video/display-timings.txt > new file mode 100644 > index 000..a05cade > --- /dev/null > +++ b/Documentation/devicetree/bindings/video/display-timings.txt > @@ -0,0 +1,107 @@ > +display-timings bindings > + > + > +display-timings node > + > + > +required properties: > + - none > + > +optional properties: > + - native-mode: The native mode for the display, in case multiple modes are > + provided. When omitted, assume the first node is the native. > + > +timings subnode > +--- > + > +required properties: > + - hactive, vactive: Display resolution > + - hfront-porch, hback-porch, hsync-len: Horizontal Display timing parameters > + in pixels > + vfront-porch, vback-porch, vsync-len: Vertical display timing parameters > in > + lines > + - clock-frequency: display clock in Hz > + > +optional properties: > + - hsync-active: Hsync pulse is active low/high/ignored > + - vsync-active: Vsync pulse is active low/high/ignored > + - de-active: Data-Enable pulse is active low/high/ignored > + - pixelclk-inverted: pixelclock is inverted/non-inverted/ignored > + - interlaced (bool) > + - doublescan (bool) > + > +All the optional properties that are not bool follow the following logic: > +<1>: high active > +<0>: low active > +omitted: not used on hardware > + > +There are different ways of describing the capabilities of a display. The > devicetree > +representation corresponds to the one commonly found in datasheets for > displays. > +If a display supports multiple signal timings, the native-mode can be > specified. > + > +The parameters are defined as > + > +struct display_timing > += > + > + > +--+-+--+---+ > + | |↑| | > | > + | ||vback_porch | | > | > + | |↓| | > | > + > +--###--+---+ > + | #↑# | > | > + | #|# | > | > + | hback #|# hfront | > hsync | > + | porch #| hactive # porch | len > | > + > |<>#<---+--->#<>|<->| > + | #|# | > | > + | #|vactive # | > | > + | #|# | > | > + | #↓# | > | > + > +--###--+---+ > + | |↑| | > | > + | ||vfront_porch| | > | > + | |↓| | > | > + > +--+-+--+---+ > + | |
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 > ___ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel
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 ___ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel
[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