int max_freq;
  
                /* RPSTAT1 is in the GT power well */
-               __gen6_force_wake_get(dev_priv);
+               __gen6_gt_force_wake_get(dev_priv);
  
 +              rpstat = I915_READ(GEN6_RPSTAT1);
 +              rpupei = I915_READ(GEN6_RP_CUR_UP_EI);
 +              rpcurup = I915_READ(GEN6_RP_CUR_UP);
 +              rpprevup = I915_READ(GEN6_RP_PREV_UP);
 +              rpdownei = I915_READ(GEN6_RP_CUR_DOWN_EI);
 +              rpcurdown = I915_READ(GEN6_RP_CUR_DOWN);
 +              rpprevdown = I915_READ(GEN6_RP_PREV_DOWN);
 +
                seq_printf(m, "GT_PERF_STATUS: 0x%08x\n", gt_perf_status);
 -              seq_printf(m, "RPSTAT1: 0x%08x\n", I915_READ(GEN6_RPSTAT1));
 +              seq_printf(m, "RPSTAT1: 0x%08x\n", rpstat);
                seq_printf(m, "Render p-state ratio: %d\n",
                           (gt_perf_status & 0xff00) >> 8);
                seq_printf(m, "Render p-state VID: %d\n",
 
  unsigned int i915_powersave = 1;
  module_param_named(powersave, i915_powersave, int, 0600);
  
 -unsigned int i915_semaphores = 0;
++unsigned int i915_semaphores = 1;
+ module_param_named(semaphores, i915_semaphores, int, 0600);
+ 
  unsigned int i915_enable_rc6 = 0;
  module_param_named(i915_enable_rc6, i915_enable_rc6, int, 0600);
  
 
  extern struct drm_ioctl_desc i915_ioctls[];
  extern int i915_max_ioctl;
  extern unsigned int i915_fbpercrtc;
 +extern int i915_panel_ignore_lid;
  extern unsigned int i915_powersave;
+ extern unsigned int i915_semaphores;
  extern unsigned int i915_lvds_downclock;
  extern unsigned int i915_panel_use_ssc;
 +extern int i915_vbt_sdvo_panel_type;
  extern unsigned int i915_enable_rc6;
  
  extern int i915_suspend(struct drm_device *dev, pm_message_t state);
        return val;
  }
  
 -
 -static inline void
 -i915_write(struct drm_i915_private *dev_priv, u32 reg, u64 val, int len)
 -{
 -       /* Trace down the write operation before the real write */
 -       trace_i915_reg_rw('W', reg, val, len);
 -       switch (len) {
 -       case 8:
 -               writeq(val, dev_priv->regs + reg);
 -               break;
 -       case 4:
 -               writel(val, dev_priv->regs + reg);
 -               break;
 -       case 2:
 -               writew(val, dev_priv->regs + reg);
 -               break;
 -       case 1:
 -               writeb(val, dev_priv->regs + reg);
 -               break;
 -       }
 -}
 -
 -/**
 - * Reads a dword out of the status page, which is written to from the command
 - * queue by automatic updates, MI_REPORT_HEAD, MI_STORE_DATA_INDEX, or
 - * MI_STORE_DATA_IMM.
 - *
 - * The following dwords have a reserved meaning:
 - * 0x00: ISR copy, updated when an ISR bit not set in the HWSTAM changes.
 - * 0x04: ring 0 head pointer
 - * 0x05: ring 1 head pointer (915-class)
 - * 0x06: ring 2 head pointer (915-class)
 - * 0x10-0x1b: Context status DWords (GM45)
 - * 0x1f: Last written status offset. (GM45)
 - *
 - * The area from dword 0x20 to 0x3ff is available for driver usage.
 - */
 -#define READ_HWSP(dev_priv, reg)  (((volatile u32 *)\
 -                      (LP_RING(dev_priv)->status_page.page_addr))[reg])
 -#define READ_BREADCRUMB(dev_priv) READ_HWSP(dev_priv, I915_BREADCRUMB_INDEX)
 -#define I915_GEM_HWS_INDEX            0x20
 -#define I915_BREADCRUMB_INDEX         0x21
 -
+ static inline void i915_gt_write(struct drm_i915_private *dev_priv,
+                               u32 reg, u32 val)
+ {
+       if (dev_priv->info->gen >= 6)
+               __gen6_gt_wait_for_fifo(dev_priv);
+       I915_WRITE(reg, val);
+ }
  #endif