description: Linear Technology Corporation
    "^logicpd,.*":
      description: Logic PD, Inc.
 +  "^logictechno,.*":
 +    description: Logic Technologies Limited
    "^longcheer,.*":
      description: Longcheer Technology (Shanghai) Co., Ltd.
+   "^loongson,.*":
+     description: Loongson Technology Corporation Limited
    "^lsi,.*":
      description: LSI Corp. (LSI Logic)
    "^lwn,.*":
 
        .page_flip = drm_atomic_helper_page_flip,
        .atomic_duplicate_state = nv50_head_atomic_duplicate_state,
        .atomic_destroy_state = nv50_head_atomic_destroy_state,
 +      .enable_vblank = nouveau_display_vblank_enable,
 +      .disable_vblank = nouveau_display_vblank_disable,
 +      .get_vblank_timestamp = drm_crtc_vblank_helper_get_vblank_timestamp,
  };
  
- int
+ struct nv50_head *
  nv50_head_create(struct drm_device *dev, int index)
  {
        struct nouveau_drm *drm = nouveau_drm(dev);
 
  static struct drm_driver driver = {
        .driver_features =
        DRIVER_MODESET | DRIVER_RENDER | DRIVER_ATOMIC,
-       .load = vmw_driver_load,
-       .unload = vmw_driver_unload,
 -      .get_vblank_counter = vmw_get_vblank_counter,
 -      .enable_vblank = vmw_enable_vblank,
 -      .disable_vblank = vmw_disable_vblank,
        .ioctls = vmw_ioctls,
        .num_ioctls = ARRAY_SIZE(vmw_ioctls),
        .master_set = vmw_master_set,
 
  
        platform_set_drvdata(pdev, info);
        default_par = info->par;
-       default_par->regs = ioremap_nocache(pdev->resource[1].start,
-                                           resource_size(&pdev->resource[1]));
+       default_par->regs = ioremap(pdev->resource[1].start,
 -                      pdev->resource[1].end - pdev->resource[1].start +1);
++                                  resource_size(&pdev->resource[1]));
        if (!default_par->regs) {
                printk(KERN_ERR PFX "unable to map registers\n");
                ret = -ENOMEM;
        }
        info->pseudo_palette = default_par->pseudo_palette;
  
-       info->screen_base = ioremap_nocache(pdev->resource[0].start,
-                                           resource_size(&pdev->resource[0]));
+       info->screen_base = ioremap(pdev->resource[0].start,
 -                      pdev->resource[0].end - pdev->resource[0].start +1);
++                                  resource_size(&pdev->resource[0]));
+ 
        if (!info->screen_base) {
                printk(KERN_ERR PFX "unable to map framebuffer\n");
                ret = -ENOMEM;