]> git.karo-electronics.de Git - mv-sheeva.git/commitdiff
Merge remote branch 'nouveau/drm-nouveau-next' of /ssd/git/drm-nouveau-next into...
authorDave Airlie <airlied@redhat.com>
Mon, 17 Jan 2011 02:20:31 +0000 (12:20 +1000)
committerDave Airlie <airlied@redhat.com>
Mon, 17 Jan 2011 02:20:31 +0000 (12:20 +1000)
* 'nouveau/drm-nouveau-next' of /ssd/git/drm-nouveau-next:
  drm/nouveau: fix gpu page faults triggered by plymouthd
  drm/nouveau: greatly simplify mm, killing some bugs in the process
  drm/nvc0: enable protection of system-use-only structures in vm
  drm/nv40: initialise 0x17xx on all chipsets that have it
  drm/nv40: make detection of 0x4097-ful chipsets available everywhere

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

index 46e32573b3a3ead1dd374ea80611931d355b4ba5,51920321d0588a0b3c0ce02769ae7c169fefe410..01bffc4412d2edcfbe957066f0768c708570cb30
@@@ -160,6 -160,7 +160,7 @@@ enum nouveau_flags 
  #define NVOBJ_FLAG_ZERO_ALLOC         (1 << 1)
  #define NVOBJ_FLAG_ZERO_FREE          (1 << 2)
  #define NVOBJ_FLAG_VM                 (1 << 3)
+ #define NVOBJ_FLAG_VM_USER            (1 << 4)
  
  #define NVOBJ_CINST_GLOBAL    0xdeadbeef
  
@@@ -753,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 *
@@@ -1576,6 -1575,20 +1577,20 @@@ nv_match_device(struct drm_device *dev
                dev->pdev->subsystem_device == sub_device;
  }
  
+ /* returns 1 if device is one of the nv4x using the 0x4497 object class,
+  * helpful to determine a number of other hardware features
+  */
+ static inline int
+ nv44_graph_class(struct drm_device *dev)
+ {
+       struct drm_nouveau_private *dev_priv = dev->dev_private;
+       if ((dev_priv->chipset & 0xf0) == 0x60)
+               return 1;
+       return !(0x0baf & (1 << (dev_priv->chipset & 0x0f)));
+ }
  /* memory type/access flags, do not match hardware values */
  #define NV_MEM_ACCESS_RO  1
  #define NV_MEM_ACCESS_WO  2
index 6d56a54b6e2ed0ee12d38dec2f38f916894cd89c,f988362c112e4223fec1994a62ed36cb720a8c87..60769d2f9a6683b28f90551a0c0e1e6908814833
@@@ -352,8 -352,8 +352,8 @@@ nouveau_fbcon_create(struct nouveau_fbd
                              FBINFO_HWACCEL_IMAGEBLIT;
        info->flags |= FBINFO_CAN_FORCE_OUTPUT;
        info->fbops = &nouveau_fbcon_sw_ops;
-       info->fix.smem_start = dev->mode_config.fb_base +
-                              (nvbo->bo.mem.start << PAGE_SHIFT);
+       info->fix.smem_start = nvbo->bo.mem.bus.base +
+                              nvbo->bo.mem.bus.offset;
        info->fix.smem_len = size;
  
        info->screen_base = nvbo_kmap_obj_iovirtual(nouveau_fb->nvbo);
        drm_fb_helper_fill_fix(info, fb->pitch, fb->depth);
        drm_fb_helper_fill_var(info, &nfbdev->helper, sizes->fb_width, sizes->fb_height);
  
 -      /* FIXME: we really shouldn't expose mmio space at all */
 -      info->fix.mmio_start = pci_resource_start(pdev, 1);
 -      info->fix.mmio_len = pci_resource_len(pdev, 1);
 -
        /* Set aperture base/size for vesafb takeover */
        info->apertures = dev_priv->apertures;
        if (!info->apertures) {