diff options
| author | Tom Rini <trini@konsulko.com> | 2019-07-29 09:02:46 -0400 |
|---|---|---|
| committer | Tom Rini <trini@konsulko.com> | 2019-07-29 09:02:46 -0400 |
| commit | ad4a699cfe36639979d27a1045d766397b2cb0bb (patch) | |
| tree | 9bc67763b8d48d950ae08d29ec75605138ba0b4d /include | |
| parent | c957be9ba006789c7ca1158120ed40265bfeed8a (diff) | |
| parent | 970baf16d1322d3930a57fc78ddfb15d594d690c (diff) | |
| download | u-boot-ad4a699cfe36639979d27a1045d766397b2cb0bb.tar.gz u-boot-ad4a699cfe36639979d27a1045d766397b2cb0bb.tar.xz u-boot-ad4a699cfe36639979d27a1045d766397b2cb0bb.zip | |
Merge tag 'video-for-2019.10' of https://gitlab.denx.de/u-boot/custodians/u-boot-video
- dcu and imx7 DM_VIDEO conversion
- lb070wv8 compatible in simple_panel driver
- bmp_logo improvements for DM_VIDEO
- EDID updates to filter supported modes
- meson_dw_hdmi: support EDID mode filtering
- dw_hdmi: support ddc-i2c-bus phandle for external I2C masters
- fix rpi crash when firmware doesn't report connected display
Diffstat (limited to 'include')
| -rw-r--r-- | include/configs/colibri-imx6ull.h | 2 | ||||
| -rw-r--r-- | include/display.h | 10 | ||||
| -rw-r--r-- | include/dw_hdmi.h | 1 | ||||
| -rw-r--r-- | include/edid.h | 22 | ||||
| -rw-r--r-- | include/fsl_dcu_fb.h | 12 |
5 files changed, 43 insertions, 4 deletions
diff --git a/include/configs/colibri-imx6ull.h b/include/configs/colibri-imx6ull.h index 2c43862800..05af222a1f 100644 --- a/include/configs/colibri-imx6ull.h +++ b/include/configs/colibri-imx6ull.h @@ -170,7 +170,7 @@ #define CONFIG_SYS_DFU_DATA_BUF_SIZE SZ_16M #define DFU_DEFAULT_POLL_TIMEOUT 300 -#ifdef CONFIG_VIDEO +#if defined(CONFIG_VIDEO) || defined(CONFIG_DM_VIDEO) #define CONFIG_VIDEO_MXS #define MXS_LCDIF_BASE MX6UL_LCDIF1_BASE_ADDR #define CONFIG_VIDEO_LOGO diff --git a/include/display.h b/include/display.h index 16f317c9c8..66294616ea 100644 --- a/include/display.h +++ b/include/display.h @@ -80,6 +80,16 @@ struct dm_display_ops { */ int (*enable)(struct udevice *dev, int panel_bpp, const struct display_timing *timing); + + /** + * mode_valid() - Check if mode is supported + * + * @dev: Device to enable + * @timing: Display timings + * @return true if supported, false if not + */ + bool (*mode_valid)(struct udevice *dev, + const struct display_timing *timing); }; #define display_get_ops(dev) ((struct dm_display_ops *)(dev)->driver->ops) diff --git a/include/dw_hdmi.h b/include/dw_hdmi.h index 90fb64bc99..8acae3839f 100644 --- a/include/dw_hdmi.h +++ b/include/dw_hdmi.h @@ -542,6 +542,7 @@ struct dw_hdmi { u8 i2c_clk_low; u8 reg_io_width; struct hdmi_data_info hdmi_data; + struct udevice *ddc_bus; int (*phy_set)(struct dw_hdmi *hdmi, uint mpixelclock); void (*write_reg)(struct dw_hdmi *hdmi, u8 val, int offset); diff --git a/include/edid.h b/include/edid.h index f05d2b82f2..2562733061 100644 --- a/include/edid.h +++ b/include/edid.h @@ -307,6 +307,28 @@ int edid_get_ranges(struct edid1_info *edid, unsigned int *hmin, struct display_timing; /** + * edid_get_timing_validate() - Get basic digital display parameters with + * mode selection callback + * + * @param buf Buffer containing EDID data + * @param buf_size Size of buffer in bytes + * @param timing Place to put preferring timing information + * @param panel_bits_per_colourp Place to put the number of bits per + * colour supported by the panel. This will be set to + * -1 if not available + * @param mode_valid Callback validating mode, returning true is mode is + * supported, false otherwise. + * @parem valid_priv Pointer to private data for mode_valid callback + * @return 0 if timings are OK, -ve on error + */ +int edid_get_timing_validate(u8 *buf, int buf_size, + struct display_timing *timing, + int *panel_bits_per_colourp, + bool (*mode_valid)(void *priv, + const struct display_timing *timing), + void *mode_valid_priv); + +/** * edid_get_timing() - Get basic digital display parameters * * @param buf Buffer containing EDID data diff --git a/include/fsl_dcu_fb.h b/include/fsl_dcu_fb.h index 2dd5f54c3e..7a5347a924 100644 --- a/include/fsl_dcu_fb.h +++ b/include/fsl_dcu_fb.h @@ -6,11 +6,17 @@ */ #include <linux/fb.h> -int fsl_dcu_init(unsigned int xres, unsigned int yres, +int fsl_dcu_init(struct fb_info *fbinfo, + unsigned int xres, + unsigned int yres, unsigned int pixel_format); + int fsl_dcu_fixedfb_setup(void *blob); /* Prototypes for external board-specific functions */ -int platform_dcu_init(unsigned int xres, unsigned int yres, - const char *port, struct fb_videomode *dcu_fb_videomode); +int platform_dcu_init(struct fb_info *fbinfo, + unsigned int xres, + unsigned int yres, + const char *port, + struct fb_videomode *dcu_fb_videomode); unsigned int dcu_set_pixel_clock(unsigned int pixclock); |
