aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/drm_encoder_slave.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-02-25 19:46:44 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2013-02-25 19:46:44 -0500
commitfffddfd6c8e0c10c42c6e2cc54ba880fcc36ebbb (patch)
tree71bc5e597124dbaf7550f1e089d675718b3ed5c0 /drivers/gpu/drm/drm_encoder_slave.c
parent69086a78bdc973ec0b722be790b146e84ba8a8c4 (diff)
parentbe88298b0a3f771a4802f20c5e66af74bfd1dff1 (diff)
Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux
Pull drm merge from Dave Airlie: "Highlights: - TI LCD controller KMS driver - TI OMAP KMS driver merged from staging - drop gma500 stub driver - the fbcon locking fixes - the vgacon dirty like zebra fix. - open firmware videomode and hdmi common code helpers - major locking rework for kms object handling - pageflip/cursor won't block on polling anymore! - fbcon helper and prime helper cleanups - i915: all over the map, haswell power well enhancements, valleyview macro horrors cleaned up, killing lots of legacy GTT code, - radeon: CS ioctl unification, deprecated UMS support, gpu reset rework, VM fixes - nouveau: reworked thermal code, external dp/tmds encoder support (anx9805), fences sleep instead of polling, - exynos: all over the driver fixes." Lovely conflict in radeon/evergreen_cs.c between commit de0babd60d8d ("drm/radeon: enforce use of radeon_get_ib_value when reading user cmd") and the new changes that modified that evergreen_dma_cs_parse() function. * 'drm-next' of git://people.freedesktop.org/~airlied/linux: (508 commits) drm/tilcdc: only build on arm drm/i915: Revert hdmi HDP pin checks drm/tegra: Add list of framebuffers to debugfs drm/tegra: Fix color expansion drm/tegra: Split DC_CMD_STATE_CONTROL register write drm/tegra: Implement page-flipping support drm/tegra: Implement VBLANK support drm/tegra: Implement .mode_set_base() drm/tegra: Add plane support drm/tegra: Remove bogus tegra_framebuffer structure drm: Add consistency check for page-flipping drm/radeon: Use generic HDMI infoframe helpers drm/tegra: Use generic HDMI infoframe helpers drm: Add EDID helper documentation drm: Add HDMI infoframe helpers video: Add generic HDMI infoframe helpers drm: Add some missing forward declarations drm: Move mode tables to drm_edid.c drm: Remove duplicate drm_mode_cea_vic() gma500: Fix n, m1 and m2 clock limits for sdvo and lvds ...
Diffstat (limited to 'drivers/gpu/drm/drm_encoder_slave.c')
-rw-r--r--drivers/gpu/drm/drm_encoder_slave.c63
1 files changed, 63 insertions, 0 deletions
diff --git a/drivers/gpu/drm/drm_encoder_slave.c b/drivers/gpu/drm/drm_encoder_slave.c
index 63e733408b6d..48c52f7df4e6 100644
--- a/drivers/gpu/drm/drm_encoder_slave.c
+++ b/drivers/gpu/drm/drm_encoder_slave.c
@@ -123,3 +123,66 @@ void drm_i2c_encoder_destroy(struct drm_encoder *drm_encoder)
123 module_put(module); 123 module_put(module);
124} 124}
125EXPORT_SYMBOL(drm_i2c_encoder_destroy); 125EXPORT_SYMBOL(drm_i2c_encoder_destroy);
126
127/*
128 * Wrapper fxns which can be plugged in to drm_encoder_helper_funcs:
129 */
130
131static inline struct drm_encoder_slave_funcs *
132get_slave_funcs(struct drm_encoder *enc)
133{
134 return to_encoder_slave(enc)->slave_funcs;
135}
136
137void drm_i2c_encoder_dpms(struct drm_encoder *encoder, int mode)
138{
139 get_slave_funcs(encoder)->dpms(encoder, mode);
140}
141EXPORT_SYMBOL(drm_i2c_encoder_dpms);
142
143bool drm_i2c_encoder_mode_fixup(struct drm_encoder *encoder,
144 const struct drm_display_mode *mode,
145 struct drm_display_mode *adjusted_mode)
146{
147 return get_slave_funcs(encoder)->mode_fixup(encoder, mode, adjusted_mode);
148}
149EXPORT_SYMBOL(drm_i2c_encoder_mode_fixup);
150
151void drm_i2c_encoder_prepare(struct drm_encoder *encoder)
152{
153 drm_i2c_encoder_dpms(encoder, DRM_MODE_DPMS_OFF);
154}
155EXPORT_SYMBOL(drm_i2c_encoder_prepare);
156
157void drm_i2c_encoder_commit(struct drm_encoder *encoder)
158{
159 drm_i2c_encoder_dpms(encoder, DRM_MODE_DPMS_ON);
160}
161EXPORT_SYMBOL(drm_i2c_encoder_commit);
162
163void drm_i2c_encoder_mode_set(struct drm_encoder *encoder,
164 struct drm_display_mode *mode,
165 struct drm_display_mode *adjusted_mode)
166{
167 get_slave_funcs(encoder)->mode_set(encoder, mode, adjusted_mode);
168}
169EXPORT_SYMBOL(drm_i2c_encoder_mode_set);
170
171enum drm_connector_status drm_i2c_encoder_detect(struct drm_encoder *encoder,
172 struct drm_connector *connector)
173{
174 return get_slave_funcs(encoder)->detect(encoder, connector);
175}
176EXPORT_SYMBOL(drm_i2c_encoder_detect);
177
178void drm_i2c_encoder_save(struct drm_encoder *encoder)
179{
180 get_slave_funcs(encoder)->save(encoder);
181}
182EXPORT_SYMBOL(drm_i2c_encoder_save);
183
184void drm_i2c_encoder_restore(struct drm_encoder *encoder)
185{
186 get_slave_funcs(encoder)->restore(encoder);
187}
188EXPORT_SYMBOL(drm_i2c_encoder_restore);