mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-03 15:55:38 +00:00
drm/omap: Determine connector type directly in omap_connector.c
Instead of determining the connector type from the type of the display's omap_dss_device and passing it to the omap_connector_init() function, move the type determination code to omap_connector.c and remove the type argument to the connector init function. This moves code to a more natural location, making the driver easier to read. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
This commit is contained in:
parent
47a3ee2793
commit
52c5dd2a7b
3 changed files with 31 additions and 30 deletions
|
@ -325,10 +325,33 @@ static const struct drm_connector_helper_funcs omap_connector_helper_funcs = {
|
||||||
.mode_valid = omap_connector_mode_valid,
|
.mode_valid = omap_connector_mode_valid,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static int omap_connector_get_type(struct omap_dss_device *display)
|
||||||
|
{
|
||||||
|
switch (display->type) {
|
||||||
|
case OMAP_DISPLAY_TYPE_HDMI:
|
||||||
|
return DRM_MODE_CONNECTOR_HDMIA;
|
||||||
|
case OMAP_DISPLAY_TYPE_DVI:
|
||||||
|
return DRM_MODE_CONNECTOR_DVID;
|
||||||
|
case OMAP_DISPLAY_TYPE_DSI:
|
||||||
|
return DRM_MODE_CONNECTOR_DSI;
|
||||||
|
case OMAP_DISPLAY_TYPE_DPI:
|
||||||
|
case OMAP_DISPLAY_TYPE_DBI:
|
||||||
|
return DRM_MODE_CONNECTOR_DPI;
|
||||||
|
case OMAP_DISPLAY_TYPE_VENC:
|
||||||
|
/* TODO: This could also be composite */
|
||||||
|
return DRM_MODE_CONNECTOR_SVIDEO;
|
||||||
|
case OMAP_DISPLAY_TYPE_SDI:
|
||||||
|
return DRM_MODE_CONNECTOR_LVDS;
|
||||||
|
default:
|
||||||
|
return DRM_MODE_CONNECTOR_Unknown;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* initialize connector */
|
/* initialize connector */
|
||||||
struct drm_connector *omap_connector_init(struct drm_device *dev,
|
struct drm_connector *omap_connector_init(struct drm_device *dev,
|
||||||
int connector_type, struct omap_dss_device *output,
|
struct omap_dss_device *output,
|
||||||
struct omap_dss_device *display, struct drm_encoder *encoder)
|
struct omap_dss_device *display,
|
||||||
|
struct drm_encoder *encoder)
|
||||||
{
|
{
|
||||||
struct drm_connector *connector = NULL;
|
struct drm_connector *connector = NULL;
|
||||||
struct omap_connector *omap_connector;
|
struct omap_connector *omap_connector;
|
||||||
|
@ -348,7 +371,7 @@ struct drm_connector *omap_connector_init(struct drm_device *dev,
|
||||||
connector->doublescan_allowed = 0;
|
connector->doublescan_allowed = 0;
|
||||||
|
|
||||||
drm_connector_init(dev, connector, &omap_connector_funcs,
|
drm_connector_init(dev, connector, &omap_connector_funcs,
|
||||||
connector_type);
|
omap_connector_get_type(display));
|
||||||
drm_connector_helper_add(connector, &omap_connector_helper_funcs);
|
drm_connector_helper_add(connector, &omap_connector_helper_funcs);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -28,8 +28,9 @@ struct drm_encoder;
|
||||||
struct omap_dss_device;
|
struct omap_dss_device;
|
||||||
|
|
||||||
struct drm_connector *omap_connector_init(struct drm_device *dev,
|
struct drm_connector *omap_connector_init(struct drm_device *dev,
|
||||||
int connector_type, struct omap_dss_device *output,
|
struct omap_dss_device *output,
|
||||||
struct omap_dss_device *display, struct drm_encoder *encoder);
|
struct omap_dss_device *display,
|
||||||
|
struct drm_encoder *encoder);
|
||||||
struct drm_encoder *omap_connector_attached_encoder(
|
struct drm_encoder *omap_connector_attached_encoder(
|
||||||
struct drm_connector *connector);
|
struct drm_connector *connector);
|
||||||
bool omap_connector_get_hdmi_mode(struct drm_connector *connector);
|
bool omap_connector_get_hdmi_mode(struct drm_connector *connector);
|
||||||
|
|
|
@ -129,28 +129,6 @@ static const struct drm_mode_config_funcs omap_mode_config_funcs = {
|
||||||
.atomic_commit = drm_atomic_helper_commit,
|
.atomic_commit = drm_atomic_helper_commit,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int get_connector_type(struct omap_dss_device *display)
|
|
||||||
{
|
|
||||||
switch (display->type) {
|
|
||||||
case OMAP_DISPLAY_TYPE_HDMI:
|
|
||||||
return DRM_MODE_CONNECTOR_HDMIA;
|
|
||||||
case OMAP_DISPLAY_TYPE_DVI:
|
|
||||||
return DRM_MODE_CONNECTOR_DVID;
|
|
||||||
case OMAP_DISPLAY_TYPE_DSI:
|
|
||||||
return DRM_MODE_CONNECTOR_DSI;
|
|
||||||
case OMAP_DISPLAY_TYPE_DPI:
|
|
||||||
case OMAP_DISPLAY_TYPE_DBI:
|
|
||||||
return DRM_MODE_CONNECTOR_DPI;
|
|
||||||
case OMAP_DISPLAY_TYPE_VENC:
|
|
||||||
/* TODO: This could also be composite */
|
|
||||||
return DRM_MODE_CONNECTOR_SVIDEO;
|
|
||||||
case OMAP_DISPLAY_TYPE_SDI:
|
|
||||||
return DRM_MODE_CONNECTOR_LVDS;
|
|
||||||
default:
|
|
||||||
return DRM_MODE_CONNECTOR_Unknown;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void omap_disconnect_pipelines(struct drm_device *ddev)
|
static void omap_disconnect_pipelines(struct drm_device *ddev)
|
||||||
{
|
{
|
||||||
struct omap_drm_private *priv = ddev->dev_private;
|
struct omap_drm_private *priv = ddev->dev_private;
|
||||||
|
@ -322,9 +300,8 @@ static int omap_modeset_init(struct drm_device *dev)
|
||||||
if (!encoder)
|
if (!encoder)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
connector = omap_connector_init(dev,
|
connector = omap_connector_init(dev, pipe->output, display,
|
||||||
get_connector_type(display), pipe->output,
|
encoder);
|
||||||
display, encoder);
|
|
||||||
if (!connector)
|
if (!connector)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue