From: Dave Airlie <airlied@redhat.com>
Date: Mon, 7 Sep 2009 10:27:20 +0000 (+1000)
Subject: Merge intel drm-intel-next branch
X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=11670d3c93210793562748d83502ecbef4034765;p=GitHub%2FLineageOS%2Fandroid_kernel_samsung_universal7580.git

Merge intel drm-intel-next branch

Merge remote branch 'anholt/drm-intel-next' of ../anholt-2.6 into drm-next

Conflicts:
	drivers/gpu/drm/i915/intel_display.c
	drivers/gpu/drm/i915/intel_drv.h
	drivers/gpu/drm/i915/intel_sdvo.c
---

11670d3c93210793562748d83502ecbef4034765
diff --cc drivers/gpu/drm/i915/intel_display.c
index 5fb7a4f4a42,f6741032c60..155719ff99d
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@@ -3105,6 -3549,20 +3547,11 @@@ static void intel_crtc_init(struct drm_
  	intel_crtc->cursor_addr = 0;
  	intel_crtc->dpms_mode = DRM_MODE_DPMS_OFF;
  	drm_crtc_helper_add(&intel_crtc->base, &intel_helper_funcs);
+ 
 -	intel_crtc->mode_set.crtc = &intel_crtc->base;
 -	intel_crtc->mode_set.connectors = (struct drm_connector **)(intel_crtc + 1);
 -	intel_crtc->mode_set.num_connectors = 0;
+ 	intel_crtc->busy = false;
+ 
+ 	setup_timer(&intel_crtc->idle_timer, intel_crtc_idle_timer,
+ 		    (unsigned long)intel_crtc);
 -
 -	if (i915_fbpercrtc) {
 -
 -
 -
 -	}
  }
  
  int intel_get_pipe_from_crtc_id(struct drm_device *dev, void *data,
diff --cc drivers/gpu/drm/i915/intel_drv.h
index 38910f8f30e,495dc955d04..b9e47f1e1cc
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@@ -96,6 -116,12 +116,9 @@@ struct intel_crtc 
  	uint32_t cursor_addr;
  	u8 lut_r[256], lut_g[256], lut_b[256];
  	int dpms_mode;
 -	struct intel_framebuffer *fbdev_fb;
 -	/* a mode_set for fbdev users on this crtc */
 -	struct drm_mode_set mode_set;
+ 	bool busy; /* is scanout buffer being updated frequently? */
+ 	struct timer_list idle_timer;
+ 	bool lowfreq_avail;
  };
  
  #define to_intel_crtc(x) container_of(x, struct intel_crtc, base)
diff --cc drivers/gpu/drm/i915/intel_sdvo.c
index 91238f0c39a,c585da8d662..0bf28efcf2c
--- a/drivers/gpu/drm/i915/intel_sdvo.c
+++ b/drivers/gpu/drm/i915/intel_sdvo.c
@@@ -37,6 -37,19 +37,19 @@@
  #include "intel_sdvo_regs.h"
  
  #undef SDVO_DEBUG
 -#define I915_SDVO	"i915_sdvo"
++
+ static char *tv_format_names[] = {
+ 	"NTSC_M"   , "NTSC_J"  , "NTSC_443",
+ 	"PAL_B"    , "PAL_D"   , "PAL_G"   ,
+ 	"PAL_H"    , "PAL_I"   , "PAL_M"   ,
+ 	"PAL_N"    , "PAL_NC"  , "PAL_60"  ,
+ 	"SECAM_B"  , "SECAM_D" , "SECAM_G" ,
+ 	"SECAM_K"  , "SECAM_K1", "SECAM_L" ,
+ 	"SECAM_60"
+ };
+ 
+ #define TV_FORMAT_NUM  (sizeof(tv_format_names) / sizeof(*tv_format_names))
+ 
  struct intel_sdvo_priv {
  	u8 slave_addr;
  
@@@ -1515,10 -1576,11 +1576,11 @@@ static enum drm_connector_status intel_
  	struct intel_output *intel_output = to_intel_output(connector);
  	struct intel_sdvo_priv *sdvo_priv = intel_output->dev_priv;
  
- 	intel_sdvo_write_cmd(intel_output, SDVO_CMD_GET_ATTACHED_DISPLAYS, NULL, 0);
+ 	intel_sdvo_write_cmd(intel_output,
+ 			     SDVO_CMD_GET_ATTACHED_DISPLAYS, NULL, 0);
  	status = intel_sdvo_read_response(intel_output, &response, 2);
  
 -	DRM_DEBUG("SDVO response %d %d\n", response & 0xff, response >> 8);
 +	DRM_DEBUG_KMS("SDVO response %d %d\n", response & 0xff, response >> 8);
  
  	if (status != SDVO_CMD_STATUS_SUCCESS)
  		return connector_status_unknown;
@@@ -2002,11 -2112,13 +2112,12 @@@ intel_sdvo_output_setup(struct intel_ou
  
  		sdvo_priv->controlled_output = 0;
  		memcpy(bytes, &sdvo_priv->caps.output_flags, 2);
 -		DRM_DEBUG_KMS(I915_SDVO,
 -				"%s: Unknown SDVO output type (0x%02x%02x)\n",
 -				  SDVO_NAME(sdvo_priv),
 -				  bytes[0], bytes[1]);
 +		DRM_DEBUG_KMS("%s: Unknown SDVO output type (0x%02x%02x)\n",
 +			      SDVO_NAME(sdvo_priv),
 +			      bytes[0], bytes[1]);
  		ret = false;
  	}
+ 	intel_output->crtc_mask = (1 << 0) | (1 << 1);
  
  	if (ret && registered)
  		ret = drm_sysfs_connector_add(connector) == 0 ? true : false;