linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/9] gma500: Initial support for our encoder and connector structs
@ 2011-12-19 21:39 Alan Cox
  2011-12-19 21:40 ` [PATCH 2/9] gma500: Remove psb_intel_output from ddc_probe and ddc_get_modes Alan Cox
                   ` (8 more replies)
  0 siblings, 9 replies; 11+ messages in thread
From: Alan Cox @ 2011-12-19 21:39 UTC (permalink / raw)
  To: airlied, linux-kernel

From: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>

First step towards adding i915 alike encoder and connector abstractions. This
will make life easier when adding i915 output code into our driver. It also
removes the old psb_intel_output struct.

Signed-off-by: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
Signed-off-by: Alan Cox <alan@linux.intel.com>
---

 drivers/gpu/drm/gma500/psb_intel_display.c |    7 +++++
 drivers/gpu/drm/gma500/psb_intel_drv.h     |   40 ++++++++++++++++++----------
 2 files changed, 32 insertions(+), 15 deletions(-)


diff --git a/drivers/gpu/drm/gma500/psb_intel_display.c b/drivers/gpu/drm/gma500/psb_intel_display.c
index ab65076..43cc132 100644
--- a/drivers/gpu/drm/gma500/psb_intel_display.c
+++ b/drivers/gpu/drm/gma500/psb_intel_display.c
@@ -1429,3 +1429,10 @@ struct drm_encoder *psb_intel_best_encoder(struct drm_connector *connector)
 	return &psb_intel_output->enc;
 }
 
+void psb_intel_connector_attach_encoder(struct psb_intel_connector *connector,
+					struct psb_intel_encoder *encoder)
+{
+	connector->encoder = encoder;
+	drm_mode_connector_attach_encoder(&connector->base,
+					  &encoder->base);
+}
diff --git a/drivers/gpu/drm/gma500/psb_intel_drv.h b/drivers/gpu/drm/gma500/psb_intel_drv.h
index ac953ca..a4435d8 100644
--- a/drivers/gpu/drm/gma500/psb_intel_drv.h
+++ b/drivers/gpu/drm/gma500/psb_intel_drv.h
@@ -93,19 +93,19 @@ struct psb_intel_i2c_chan {
 	u8 slave_addr;
 };
 
-struct psb_intel_output {
-	struct drm_connector base;
-
-	struct drm_encoder enc;
+struct psb_intel_encoder {
+	struct drm_encoder base;
 	int type;
+	bool needs_tv_clock;
+	void (*hot_plug)(struct psb_intel_encoder *);
+	int crtc_mask;
+	int clone_mask;
+	void *dev_priv; /* For sdvo_priv, lvds_priv, etc... */
+};
 
-	struct psb_intel_i2c_chan *i2c_bus;	/* for control functions */
-	struct psb_intel_i2c_chan *ddc_bus;	/* for DDC only stuff */
-	bool load_detect_temp;
-	void *dev_priv;
-
-	struct psb_intel_mode_device *mode_dev;
-	struct i2c_adapter *hdmi_i2c_adapter;	/* for control functions */
+struct psb_intel_connector {
+	struct drm_connector base;
+	struct psb_intel_encoder *encoder;
 };
 
 struct psb_intel_crtc_state {
@@ -156,10 +156,10 @@ struct psb_intel_crtc {
 
 #define to_psb_intel_crtc(x)	\
 		container_of(x, struct psb_intel_crtc, base)
-#define to_psb_intel_output(x)	\
-		container_of(x, struct psb_intel_output, base)
-#define enc_to_psb_intel_output(x)	\
-		container_of(x, struct psb_intel_output, enc)
+#define to_psb_intel_connector(x) \
+		container_of(x, struct psb_intel_connector, base)
+#define to_psb_intel_encoder(x)	\
+		container_of(x, struct psb_intel_encoder, base)
 #define to_psb_intel_framebuffer(x)	\
 		container_of(x, struct psb_intel_framebuffer, base)
 
@@ -190,6 +190,16 @@ extern void psb_intel_crtc_load_lut(struct drm_crtc *crtc);
 extern void psb_intel_encoder_prepare(struct drm_encoder *encoder);
 extern void psb_intel_encoder_commit(struct drm_encoder *encoder);
 
+static inline struct psb_intel_encoder *psb_intel_attached_encoder(
+						struct drm_connector *connector)
+{
+	return to_psb_intel_connector(connector)->encoder;
+}
+
+extern void psb_intel_connector_attach_encoder(
+					struct psb_intel_connector *connector,
+					struct psb_intel_encoder *encoder);
+
 extern struct drm_encoder *psb_intel_best_encoder(struct drm_connector
 					      *connector);
 


^ permalink raw reply related	[flat|nested] 11+ messages in thread
* [PATCH 0/9] Split psb_intel_output to encoders and connectors
@ 2011-10-27 22:02 Patrik Jakobsson
  2011-10-27 22:02 ` [PATCH 4/9] gma500: Convert PSB LVDS to new output handling Patrik Jakobsson
  0 siblings, 1 reply; 11+ messages in thread
From: Patrik Jakobsson @ 2011-10-27 22:02 UTC (permalink / raw)
  To: alan, linux-kernel, greg; +Cc: Patrik Jakobsson

This set of patches gets rid of the pairing of encoders and connectors we had
in psb_intel_output. This was done to make life easier getting the SDVO code
from i915 copied into our tree (included in this patchset). It also gives more
flexibility for better output handling in the future.

SDVO can now properly setup DDC and get EDID on the Fit-PC2 DVI connector but
there are known issues when setting resolutions at 1920x1080 and above.
On Asus 1201HA the VGA connector still fails to get EDID so more work is needed.

The changes to Cedarview, Moorestown and Medfield have not been tested so they
are subject to change. Particularly the changes to Medfield are known not to be
complete so more pondering is also needed there.

Patrik Jakobsson (9):
  gma500: Initial support for our encoder and connector structs
  gma500: Remove psb_intel_output from ddc_probe and ddc_get_modes
  gma500: Fix encoder type checking for connectors
  gma500: Convert PSB LVDS to new output handling
  gma500: Add support for Intel GMBUS
  gma500: Replace SDVO code with slightly modified version from i915
  gma500: Convert Cedarview to work with new output handling
  gma500: Convert Moorestown to work with new output handling
  gma500: Convert Medfield to work with new output handling

 drivers/staging/gma500/Makefile              |    1 +
 drivers/staging/gma500/cdv_intel_crt.c       |   47 +-
 drivers/staging/gma500/cdv_intel_display.c   |   14 +-
 drivers/staging/gma500/cdv_intel_hdmi.c      |  112 +-
 drivers/staging/gma500/cdv_intel_lvds.c      |  117 +-
 drivers/staging/gma500/framebuffer.c         |    8 +-
 drivers/staging/gma500/intel_gmbus.c         |  492 +++++
 drivers/staging/gma500/mdfld_dsi_dbi.c       |    5 +
 drivers/staging/gma500/mdfld_dsi_dpi.c       |    5 +
 drivers/staging/gma500/mdfld_dsi_output.c    |   40 +-
 drivers/staging/gma500/mdfld_intel_display.c |   14 +-
 drivers/staging/gma500/medfield.h            |    6 +-
 drivers/staging/gma500/mrst_crtc.c           |   18 +-
 drivers/staging/gma500/mrst_hdmi.c           |   29 +-
 drivers/staging/gma500/mrst_lvds.c           |   79 +-
 drivers/staging/gma500/psb_device.c          |    7 +
 drivers/staging/gma500/psb_drv.c             |    6 +-
 drivers/staging/gma500/psb_drv.h             |   30 +-
 drivers/staging/gma500/psb_intel_display.c   |   39 +-
 drivers/staging/gma500/psb_intel_drv.h       |   98 +-
 drivers/staging/gma500/psb_intel_lvds.c      |  151 +-
 drivers/staging/gma500/psb_intel_modes.c     |   16 +-
 drivers/staging/gma500/psb_intel_reg.h       |   74 +
 drivers/staging/gma500/psb_intel_sdvo.c      | 3059 ++++++++++++++++++--------
 drivers/staging/gma500/psb_intel_sdvo_regs.h |  591 ++++-
 25 files changed, 3769 insertions(+), 1289 deletions(-)
 create mode 100644 drivers/staging/gma500/intel_gmbus.c

-- 
1.7.4.1


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2011-12-20 10:27 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-12-19 21:39 [PATCH 1/9] gma500: Initial support for our encoder and connector structs Alan Cox
2011-12-19 21:40 ` [PATCH 2/9] gma500: Remove psb_intel_output from ddc_probe and ddc_get_modes Alan Cox
2011-12-19 21:40 ` [PATCH 3/9] gma500: Fix encoder type checking for connectors Alan Cox
2011-12-19 21:40 ` [PATCH 4/9] gma500: Convert PSB LVDS to new output handling Alan Cox
2011-12-19 21:40 ` [PATCH 5/9] gma500: Add support for Intel GMBUS Alan Cox
2011-12-19 21:41 ` [PATCH 6/9] gma500: Replace SDVO code with slightly modified version from i915 Alan Cox
2011-12-19 21:41 ` [PATCH 7/9] gma500: Convert Cedarview to work with new output handling Alan Cox
2011-12-19 21:41 ` [PATCH 8/9] gma500: Convert Oaktrail " Alan Cox
2011-12-19 21:41 ` [PATCH 9/9] gma500: SDVO DDC bus guessing isn't working so hardcode it instead Alan Cox
2011-12-20 10:27 ` [PATCH 1/9] gma500: Initial support for our encoder and connector structs Dave Airlie
  -- strict thread matches above, loose matches on Subject: below --
2011-10-27 22:02 [PATCH 0/9] Split psb_intel_output to encoders and connectors Patrik Jakobsson
2011-10-27 22:02 ` [PATCH 4/9] gma500: Convert PSB LVDS to new output handling Patrik Jakobsson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).