Merge branch 'drm-nouveau-next' of git://git.freedesktop.org/git/nouveau/linux-2...
authorDave Airlie <airlied@gmail.com>
Wed, 26 Jan 2011 07:12:42 +0000 (17:12 +1000)
committerDave Airlie <airlied@gmail.com>
Wed, 26 Jan 2011 07:12:42 +0000 (17:12 +1000)
* 'drm-nouveau-next' of git://git.freedesktop.org/git/nouveau/linux-2.6:
  drm/nvc0/grctx: correct an off-by-one
  drm/nv50: Fix race with PFIFO during PGRAPH context destruction.
  drm/nouveau: Workaround incorrect DCB entry on a GeForce3 Ti 200.
  drm/nvc0: implement irq handler for whatever's at 0x14xxxx
  drm/nvc0: fix incorrect TPC register setup
  drm/nouveau: probe for adt7473 before f75375
  drm/nouveau: remove dead function definition

1  2 
drivers/gpu/drm/nouveau/nouveau_bios.c
drivers/gpu/drm/nouveau/nouveau_drv.h

@@@ -1927,7 -1927,7 +1927,7 @@@ init_ltime(struct nvbios *bios, uint16_
         * offset      (8  bit): opcode
         * offset + 1  (16 bit): time
         *
 -       * Sleep for "time" miliseconds.
 +       * Sleep for "time" milliseconds.
         */
  
        unsigned time = ROM16(bios->data[offset + 1]);
        if (!iexec->execute)
                return 3;
  
 -      BIOSLOG(bios, "0x%04X: Sleeping for 0x%04X miliseconds\n",
 +      BIOSLOG(bios, "0x%04X: Sleeping for 0x%04X milliseconds\n",
                offset, time);
  
        msleep(time);
@@@ -6310,6 -6310,9 +6310,9 @@@ void merge_like_dcb_entries(struct drm_
  static bool
  apply_dcb_encoder_quirks(struct drm_device *dev, int idx, u32 *conn, u32 *conf)
  {
+       struct drm_nouveau_private *dev_priv = dev->dev_private;
+       struct dcb_table *dcb = &dev_priv->vbios.dcb;
        /* Dell Precision M6300
         *   DCB entry 2: 02025312 00000010
         *   DCB entry 3: 02026312 00000020
                        return false;
        }
  
+       /* GeForce3 Ti 200
+        *
+        * DCB reports an LVDS output that should be TMDS:
+        *   DCB entry 1: f2005014 ffffffff
+        */
+       if (nv_match_device(dev, 0x0201, 0x1462, 0x8851)) {
+               if (*conn == 0xf2005014 && *conf == 0xffffffff) {
+                       fabricate_dcb_output(dcb, OUTPUT_TMDS, 1, 1, 1);
+                       return false;
+               }
+       }
        return true;
  }
  
@@@ -754,8 -754,6 +754,8 @@@ struct drm_nouveau_private 
  
        struct nouveau_fbdev *nfbdev;
        struct apertures_struct *apertures;
 +
 +      bool powered_down;
  };
  
  static inline struct drm_nouveau_private *
@@@ -848,9 -846,6 +848,6 @@@ extern void nv10_mem_put_tile_region(st
                                     struct nouveau_fence *fence);
  extern const struct ttm_mem_type_manager_func nouveau_vram_manager;
  
- /* nvc0_vram.c */
- extern const struct ttm_mem_type_manager_func nvc0_vram_manager;
  /* nouveau_notifier.c */
  extern int  nouveau_notifier_init_channel(struct nouveau_channel *);
  extern void nouveau_notifier_takedown_channel(struct nouveau_channel *);