Hi Boris,
Thank you for the patch.
On Monday 01 December 2014 09:42:15 Boris Brezillon wrote:
Add bus_formats and num_bus_formats fields and drm_display_info_set_bus_formats helper function to specify the bus formats supported by a given display.
This information can be used by display controller drivers to configure the output interface appropriately (i.e. RGB565, RGB666 or RGB888 on raw RGB or LVDS busses).
Signed-off-by: Boris Brezillon boris.brezillon@free-electrons.com
Acked-by: Laurent Pinchart laurent.pinchart@ideasonboard.com
Hi,
Sorry for the noise: I ran checkpatch after sending the series and it found a typo and two "line over 80 characters" warnings.
This version fixes those warnings.
Please remember to increment the version number next time, it gets confusing otherwise when people start asking questions such as "which v4 ?".
drivers/gpu/drm/drm_crtc.c | 33 +++++++++++++++++++++++++++++++++ include/drm/drm_crtc.h | 8 ++++++++ 2 files changed, 41 insertions(+)
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c index e79c8d3..20030ec 100644 --- a/drivers/gpu/drm/drm_crtc.c +++ b/drivers/gpu/drm/drm_crtc.c @@ -763,6 +763,39 @@ static void drm_mode_remove(struct drm_connector *connector, drm_mode_destroy(connector->dev, mode); }
+/*
- drm_display_info_set_bus_formats - set the supported bus formats
- @info: display info to store bus formats in
- @fmts: array containing the supported bus formats
- @nfmts: the number of entries in the fmts array
- Store the supported bus formats in display info structure.
- See MEDIA_BUS_FMT_* definitions in include/uapi/linux/media-bus-format.h
for
- a full list of available formats.
- */
+int drm_display_info_set_bus_formats(struct drm_display_info *info,
const u32 *fmts,
unsigned int num_fmts)
+{
- u32 *formats = NULL;
- if (!fmts && num_fmts)
return -EINVAL;
- if (fmts && num_fmts) {
formats = kmemdup(fmts, sizeof(*fmts) * num_fmts, GFP_KERNEL);
if (!formats)
return -ENOMEM;
- }
- kfree(info->bus_formats);
- info->bus_formats = formats;
- info->num_bus_formats = num_fmts;
- return 0;
+} +EXPORT_SYMBOL(drm_display_info_set_bus_formats);
/**
- drm_connector_get_cmdline_mode - reads the user's cmdline mode
- @connector: connector to quwery
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h index c40070a..65dd08a 100644 --- a/include/drm/drm_crtc.h +++ b/include/drm/drm_crtc.h @@ -31,6 +31,7 @@ #include <linux/idr.h> #include <linux/fb.h> #include <linux/hdmi.h> +#include <linux/media-bus-format.h> #include <uapi/drm/drm_mode.h> #include <uapi/drm/drm_fourcc.h> #include <drm/drm_modeset_lock.h> @@ -130,6 +131,9 @@ struct drm_display_info { enum subpixel_order subpixel_order; u32 color_formats;
- const u32 *bus_formats;
- unsigned int num_bus_formats;
- /* Mask of supported hdmi deep color modes */ u8 edid_hdmi_dc_modes;
@@ -982,6 +986,10 @@ extern int drm_mode_connector_set_path_property(struct drm_connector *connector, extern int drm_mode_connector_update_edid_property(struct drm_connector *connector, struct edid *edid);
+extern int drm_display_info_set_bus_formats(struct drm_display_info *info,
const u32 *fmts,
unsigned int nfmts);
static inline bool drm_property_type_is(struct drm_property *property, uint32_t type) {