Lines Matching +full:output +full:- +full:disable

1 // SPDX-License-Identifier: GPL-2.0-only
3 * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
24 * of the hw, and the connector handles the 'read-only' parts, like
29 struct omap_dss_device *output; member
47 if (!(vm->flags & (DISPLAY_FLAGS_DE_LOW | in omap_encoder_update_videomode_flags()
50 vm->flags |= DISPLAY_FLAGS_DE_LOW; in omap_encoder_update_videomode_flags()
52 vm->flags |= DISPLAY_FLAGS_DE_HIGH; in omap_encoder_update_videomode_flags()
55 if (!(vm->flags & (DISPLAY_FLAGS_PIXDATA_POSEDGE | in omap_encoder_update_videomode_flags()
58 vm->flags |= DISPLAY_FLAGS_PIXDATA_POSEDGE; in omap_encoder_update_videomode_flags()
60 vm->flags |= DISPLAY_FLAGS_PIXDATA_NEGEDGE; in omap_encoder_update_videomode_flags()
63 if (!(vm->flags & (DISPLAY_FLAGS_SYNC_POSEDGE | in omap_encoder_update_videomode_flags()
66 vm->flags |= DISPLAY_FLAGS_SYNC_POSEDGE; in omap_encoder_update_videomode_flags()
68 vm->flags |= DISPLAY_FLAGS_SYNC_NEGEDGE; in omap_encoder_update_videomode_flags()
77 struct omap_dss_device *output = omap_encoder->output; in omap_encoder_mode_set() local
79 struct drm_device *dev = encoder->dev; in omap_encoder_mode_set()
85 list_for_each_entry(connector, &dev->mode_config.connector_list, head) { in omap_encoder_mode_set()
86 if (connector->encoder == encoder) in omap_encoder_mode_set()
99 * A better solution is to use DRM's bus-flags through the whole driver. in omap_encoder_mode_set()
101 for (dssdev = output; dssdev; dssdev = dssdev->next) in omap_encoder_mode_set()
102 omap_encoder_update_videomode_flags(&vm, dssdev->bus_flags); in omap_encoder_mode_set()
104 for (bridge = output->bridge; bridge; in omap_encoder_mode_set()
106 if (!bridge->timings) in omap_encoder_mode_set()
109 bus_flags = bridge->timings->input_bus_flags; in omap_encoder_mode_set()
113 bus_flags = connector->display_info.bus_flags; in omap_encoder_mode_set()
117 dss_mgr_set_timings(output, &vm); in omap_encoder_mode_set()
123 struct omap_dss_device *dssdev = omap_encoder->output; in omap_encoder_disable()
124 struct drm_device *dev = encoder->dev; in omap_encoder_disable()
126 dev_dbg(dev->dev, "disable(%s)\n", dssdev->name); in omap_encoder_disable()
129 * Disable the chain of external devices, starting at the one at the in omap_encoder_disable()
130 * internal encoder's output. This is used for DSI outputs only, as in omap_encoder_disable()
131 * dssdev->next is NULL for all other outputs. in omap_encoder_disable()
133 omapdss_device_disable(dssdev->next); in omap_encoder_disable()
139 struct omap_dss_device *dssdev = omap_encoder->output; in omap_encoder_enable()
140 struct drm_device *dev = encoder->dev; in omap_encoder_enable()
142 dev_dbg(dev->dev, "enable(%s)\n", dssdev->name); in omap_encoder_enable()
146 * internal encoder's output. This is used for DSI outputs only, as in omap_encoder_enable()
147 * dssdev->next is NULL for all other outputs. in omap_encoder_enable()
149 omapdss_device_enable(dssdev->next); in omap_encoder_enable()
159 status = omap_connector_mode_fixup(omap_encoder->output, in omap_encoder_atomic_check()
160 &crtc_state->mode, in omap_encoder_atomic_check()
161 &crtc_state->adjusted_mode); in omap_encoder_atomic_check()
163 dev_err(encoder->dev->dev, "invalid timings: %d\n", status); in omap_encoder_atomic_check()
164 return -EINVAL; in omap_encoder_atomic_check()
172 .disable = omap_encoder_disable,
179 struct omap_dss_device *output) in omap_encoder_init() argument
188 omap_encoder->output = output; in omap_encoder_init()
190 encoder = &omap_encoder->base; in omap_encoder_init()