]> Git Repo - linux.git/commitdiff
Merge tag 'drm-misc-next-2017-08-16' of git://anongit.freedesktop.org/git/drm-misc...
authorDave Airlie <[email protected]>
Wed, 16 Aug 2017 21:33:41 +0000 (07:33 +1000)
committerDave Airlie <[email protected]>
Wed, 16 Aug 2017 21:33:41 +0000 (07:33 +1000)
UAPI Changes:
- vc4: Allow userspace to dictate rendering order in submit_cl ioctl (Eric)

Cross-subsystem Changes:
- vboxvideo: One of Cihangir's patches applies to vboxvideo which is maintained
     in staging

Core Changes:
- atomic_legacy_backoff is officially killed (Daniel)
- Extract drm_device.h (Daniel)
- Unregister drm device on unplug (Daniel)
- Rename deprecated drm_*_(un)?reference functions to drm_*_{get|put} (Cihangir)

Driver Changes:
- vc4: Error/destroy path cleanups, log level demotion, edid leak (Eric)
- various: Make various drm_*_funcs structs const (Bhumika)
- tinydrm: add support for LEGO MINDSTORMS EV3 LCD (David)
- various: Second half of .dumb_{map_offset|destroy} defaults set (Noralf)

Cc: Daniel Vetter <[email protected]>
Cc: Eric Anholt <[email protected]>
Cc: Bhumika Goyal <[email protected]>
Cc: Cihangir Akturk <[email protected]>
Cc: David Lechner <[email protected]>
Cc: Noralf Trønnes <[email protected]>
* tag 'drm-misc-next-2017-08-16' of git://anongit.freedesktop.org/git/drm-misc: (50 commits)
  drm/gem-cma-helper: Remove drm_gem_cma_dumb_map_offset()
  drm/virtio: Use the drm_driver.dumb_destroy default
  drm/bochs: Use the drm_driver.dumb_destroy default
  drm/mgag200: Use the drm_driver.dumb_destroy default
  drm/exynos: Use .dumb_map_offset and .dumb_destroy defaults
  drm/msm: Use the drm_driver.dumb_destroy default
  drm/ast: Use the drm_driver.dumb_destroy default
  drm/qxl: Use the drm_driver.dumb_destroy default
  drm/udl: Use the drm_driver.dumb_destroy default
  drm/cirrus: Use the drm_driver.dumb_destroy default
  drm/tegra: Use .dumb_map_offset and .dumb_destroy defaults
  drm/gma500: Use .dumb_map_offset and .dumb_destroy defaults
  drm/mxsfb: Use .dumb_map_offset and .dumb_destroy defaults
  drm/meson: Use .dumb_map_offset and .dumb_destroy defaults
  drm/kirin: Use .dumb_map_offset and .dumb_destroy defaults
  drm/vc4: Continue the switch to drm_*_put() helpers
  drm/vc4: Fix leak of HDMI EDID
  dma-buf: fix reservation_object_wait_timeout_rcu to wait correctly v2
  dma-buf: add reservation_object_copy_fences (v2)
  drm/tinydrm: add support for LEGO MINDSTORMS EV3 LCD
  ...

1  2 
MAINTAINERS
drivers/gpu/drm/arc/arcpgu_drv.c
drivers/gpu/drm/ast/ast_main.c
drivers/gpu/drm/ast/ast_mode.c
drivers/gpu/drm/exynos/exynos_drm_drv.c

diff --combined MAINTAINERS
index a6c2306d3842f16fbb96c6427377bbb90324cbde,19ca3e69b797b4beef374c9d51315a4c33f59c4e..fdba5f624480c95ce76fc5cfc8e5845d456263d5
@@@ -1161,7 -1161,7 +1161,7 @@@ M:      Brendan Higgins <brendanhiggins@goog
  R:    Benjamin Herrenschmidt <[email protected]>
  R:    Joel Stanley <[email protected]>
  L:    [email protected]
 -L:    [email protected]
 +L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  F:    drivers/irqchip/irq-aspeed-i2c-ic.c
  F:    drivers/i2c/busses/i2c-aspeed.c
@@@ -4380,6 -4380,12 +4380,12 @@@ S:    Orphan / Obsolet
  F:    drivers/gpu/drm/sis/
  F:    include/uapi/drm/sis_drm.h
  
+ DRM DRIVER FOR SITRONIX ST7586 PANELS
+ M:    David Lechner <[email protected]>
+ S:    Maintained
+ F:    drivers/gpu/drm/tinydrm/st7586.c
+ F:    Documentation/devicetree/bindings/display/st7586.txt
  DRM DRIVER FOR TDFX VIDEO CARDS
  S:    Orphan / Obsolete
  F:    drivers/gpu/drm/tdfx/
@@@ -5096,20 -5102,12 +5102,20 @@@ M:   Andrew Lunn <[email protected]
  M:    Florian Fainelli <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    include/linux/phy.h
 -F:    include/linux/phy_fixed.h
 -F:    drivers/net/phy/
 +F:    Documentation/ABI/testing/sysfs-bus-mdio
 +F:    Documentation/devicetree/bindings/net/mdio*
  F:    Documentation/networking/phy.txt
 +F:    drivers/net/phy/
  F:    drivers/of/of_mdio.c
  F:    drivers/of/of_net.c
 +F:    include/linux/*mdio*.h
 +F:    include/linux/of_net.h
 +F:    include/linux/phy.h
 +F:    include/linux/phy_fixed.h
 +F:    include/linux/platform_data/mdio-gpio.h
 +F:    include/trace/events/mdio.h
 +F:    include/uapi/linux/mdio.h
 +F:    include/uapi/linux/mii.h
  
  EXT2 FILE SYSTEM
  M:    Jan Kara <[email protected]>
@@@ -5840,7 -5838,7 +5846,7 @@@ F:      drivers/staging/greybus/spi.
  F:    drivers/staging/greybus/spilib.c
  F:    drivers/staging/greybus/spilib.h
  
 -GREYBUS LOOBACK/TIME PROTOCOLS DRIVERS
 +GREYBUS LOOPBACK/TIME PROTOCOLS DRIVERS
  M:    Bryan O'Donoghue <[email protected]>
  S:    Maintained
  F:    drivers/staging/greybus/loopback.c
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl.git
  S:    Maintained
  F:    Documentation/devicetree/bindings/pinctrl/
 -F:    Documentation/pinctrl.txt
 +F:    Documentation/driver-api/pinctl.rst
  F:    drivers/pinctrl/
  F:    include/linux/pinctrl/
  
@@@ -14010,7 -14008,6 +14016,7 @@@ F:   drivers/block/virtio_blk.
  F:    include/linux/virtio*.h
  F:    include/uapi/linux/virtio_*.h
  F:    drivers/crypto/virtio/
 +F:    mm/balloon_compaction.c
  
  VIRTIO CRYPTO DRIVER
  M:    Gonglei <[email protected]>
@@@ -14225,12 -14222,6 +14231,12 @@@ F: drivers/watchdog
  F:    include/linux/watchdog.h
  F:    include/uapi/linux/watchdog.h
  
 +WHISKEYCOVE PMIC GPIO DRIVER
 +M:    Kuppuswamy Sathyanarayanan <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/gpio/gpio-wcove.c
 +
  WIIMOTE HID DRIVER
  M:    David Herrmann <[email protected]>
  L:    [email protected]
index e3c13aa202b84613cae3aaf9303afdce5fb37299,f75c341566ac77df7b354121b9776ab236f986df..289eda54e5aa83b23216af852445f44f70893b80
@@@ -31,7 -31,7 +31,7 @@@ static void arcpgu_fb_output_poll_chang
        drm_fbdev_cma_hotplug_event(arcpgu->fbdev);
  }
  
- static struct drm_mode_config_funcs arcpgu_drm_modecfg_funcs = {
+ static const struct drm_mode_config_funcs arcpgu_drm_modecfg_funcs = {
        .fb_create  = drm_fb_cma_create,
        .output_poll_changed = arcpgu_fb_output_poll_changed,
        .atomic_check = drm_atomic_helper_check,
@@@ -48,7 -48,29 +48,7 @@@ static void arcpgu_setup_mode_config(st
        drm->mode_config.funcs = &arcpgu_drm_modecfg_funcs;
  }
  
 -static int arcpgu_gem_mmap(struct file *filp, struct vm_area_struct *vma)
 -{
 -      int ret;
 -
 -      ret = drm_gem_mmap(filp, vma);
 -      if (ret)
 -              return ret;
 -
 -      vma->vm_page_prot = pgprot_noncached(vm_get_page_prot(vma->vm_flags));
 -      return 0;
 -}
 -
 -static const struct file_operations arcpgu_drm_ops = {
 -      .owner = THIS_MODULE,
 -      .open = drm_open,
 -      .release = drm_release,
 -      .unlocked_ioctl = drm_ioctl,
 -      .compat_ioctl = drm_compat_ioctl,
 -      .poll = drm_poll,
 -      .read = drm_read,
 -      .llseek = no_llseek,
 -      .mmap = arcpgu_gem_mmap,
 -};
 +DEFINE_DRM_GEM_CMA_FOPS(arcpgu_drm_ops);
  
  static void arcpgu_lastclose(struct drm_device *drm)
  {
@@@ -120,7 -142,7 +120,7 @@@ static int arcpgu_load(struct drm_devic
                return -ENODEV;
        }
  
 -      platform_set_drvdata(pdev, arcpgu);
 +      platform_set_drvdata(pdev, drm);
        return 0;
  }
  
@@@ -138,37 -160,11 +138,37 @@@ static int arcpgu_unload(struct drm_dev
        return 0;
  }
  
 +#ifdef CONFIG_DEBUG_FS
 +static int arcpgu_show_pxlclock(struct seq_file *m, void *arg)
 +{
 +      struct drm_info_node *node = (struct drm_info_node *)m->private;
 +      struct drm_device *drm = node->minor->dev;
 +      struct arcpgu_drm_private *arcpgu = drm->dev_private;
 +      unsigned long clkrate = clk_get_rate(arcpgu->clk);
 +      unsigned long mode_clock = arcpgu->crtc.mode.crtc_clock * 1000;
 +
 +      seq_printf(m, "hw  : %lu\n", clkrate);
 +      seq_printf(m, "mode: %lu\n", mode_clock);
 +      return 0;
 +}
 +
 +static struct drm_info_list arcpgu_debugfs_list[] = {
 +      { "clocks", arcpgu_show_pxlclock, 0 },
 +      { "fb", drm_fb_cma_debugfs_show, 0 },
 +};
 +
 +static int arcpgu_debugfs_init(struct drm_minor *minor)
 +{
 +      return drm_debugfs_create_files(arcpgu_debugfs_list,
 +              ARRAY_SIZE(arcpgu_debugfs_list), minor->debugfs_root, minor);
 +}
 +#endif
 +
  static struct drm_driver arcpgu_drm_driver = {
        .driver_features = DRIVER_MODESET | DRIVER_GEM | DRIVER_PRIME |
                           DRIVER_ATOMIC,
        .lastclose = arcpgu_lastclose,
 -      .name = "drm-arcpgu",
 +      .name = "arcpgu",
        .desc = "ARC PGU Controller",
        .date = "20160219",
        .major = 1,
        .gem_prime_vmap = drm_gem_cma_prime_vmap,
        .gem_prime_vunmap = drm_gem_cma_prime_vunmap,
        .gem_prime_mmap = drm_gem_cma_prime_mmap,
 +#ifdef CONFIG_DEBUG_FS
 +      .debugfs_init = arcpgu_debugfs_init,
 +#endif
  };
  
  static int arcpgu_probe(struct platform_device *pdev)
index 9a44cdec3bca210b6d6561d64a17489d21dc6755,cb05e8e79eb973f3e9349caf02e2e6c2c9b8884e..dac355812adcbdcea7d68a40ff44bca90b0e0dcf
@@@ -387,9 -387,9 +387,9 @@@ static void ast_user_framebuffer_destro
  {
        struct ast_framebuffer *ast_fb = to_ast_framebuffer(fb);
  
-       drm_gem_object_unreference_unlocked(ast_fb->obj);
+       drm_gem_object_put_unlocked(ast_fb->obj);
        drm_framebuffer_cleanup(fb);
 -      kfree(fb);
 +      kfree(ast_fb);
  }
  
  static const struct drm_framebuffer_funcs ast_fb_funcs = {
@@@ -429,13 -429,13 +429,13 @@@ ast_user_framebuffer_create(struct drm_
  
        ast_fb = kzalloc(sizeof(*ast_fb), GFP_KERNEL);
        if (!ast_fb) {
-               drm_gem_object_unreference_unlocked(obj);
+               drm_gem_object_put_unlocked(obj);
                return ERR_PTR(-ENOMEM);
        }
  
        ret = ast_framebuffer_init(dev, ast_fb, mode_cmd, obj);
        if (ret) {
-               drm_gem_object_unreference_unlocked(obj);
+               drm_gem_object_put_unlocked(obj);
                kfree(ast_fb);
                return ERR_PTR(ret);
        }
@@@ -576,7 -576,6 +576,7 @@@ void ast_driver_unload(struct drm_devic
  {
        struct ast_private *ast = dev->dev_private;
  
 +      ast_release_firmware(dev);
        kfree(ast->dp501_fw_addr);
        ast_mode_fini(dev);
        ast_fbdev_fini(dev);
@@@ -628,7 -627,7 +628,7 @@@ int ast_dumb_create(struct drm_file *fi
                return ret;
  
        ret = drm_gem_handle_create(file, gobj, &handle);
-       drm_gem_object_unreference_unlocked(gobj);
+       drm_gem_object_put_unlocked(gobj);
        if (ret)
                return ret;
  
@@@ -676,7 -675,7 +676,7 @@@ ast_dumb_mmap_offset(struct drm_file *f
        bo = gem_to_ast_bo(obj);
        *offset = ast_bo_mmap_offset(bo);
  
-       drm_gem_object_unreference_unlocked(obj);
+       drm_gem_object_put_unlocked(obj);
  
        return 0;
  
index 43245229f437f68d6208d9b4045abaaddc477160,fea790b0edfac2086065f2afec993e623a036dda..6f3849ec0c1d0eb3fabc071c132b4ac7717f77bd
@@@ -616,23 -616,7 +616,23 @@@ static int ast_crtc_mode_set(struct drm
  
  static void ast_crtc_disable(struct drm_crtc *crtc)
  {
 +      int ret;
 +
 +      DRM_DEBUG_KMS("\n");
 +      ast_crtc_dpms(crtc, DRM_MODE_DPMS_OFF);
 +      if (crtc->primary->fb) {
 +              struct ast_framebuffer *ast_fb = to_ast_framebuffer(crtc->primary->fb);
 +              struct drm_gem_object *obj = ast_fb->obj;
 +              struct ast_bo *bo = gem_to_ast_bo(obj);
 +
 +              ret = ast_bo_reserve(bo, false);
 +              if (ret)
 +                      return;
  
 +              ast_bo_push_sysram(bo);
 +              ast_bo_unreserve(bo);
 +      }
 +      crtc->primary->fb = NULL;
  }
  
  static void ast_crtc_prepare(struct drm_crtc *crtc)
@@@ -950,7 -934,7 +950,7 @@@ static void ast_cursor_fini(struct drm_
  {
        struct ast_private *ast = dev->dev_private;
        ttm_bo_kunmap(&ast->cache_kmap);
-       drm_gem_object_unreference_unlocked(ast->cursor_cache);
+       drm_gem_object_put_unlocked(ast->cursor_cache);
  }
  
  int ast_mode_init(struct drm_device *dev)
@@@ -1215,10 -1199,10 +1215,10 @@@ static int ast_cursor_set(struct drm_cr
  
        ast_show_cursor(crtc);
  
-       drm_gem_object_unreference_unlocked(obj);
+       drm_gem_object_put_unlocked(obj);
        return 0;
  fail:
-       drm_gem_object_unreference_unlocked(obj);
+       drm_gem_object_put_unlocked(obj);
        return ret;
  }
  
index facc8419f0cdb3a2d3e756a4523fcbb152eef698,d99b4295540f860b5d6f6c6e4230454dff327e0b..b1f7299600f040947240618cf2cfc262d1847b70
@@@ -145,8 -145,6 +145,6 @@@ static struct drm_driver exynos_drm_dri
        .gem_free_object_unlocked = exynos_drm_gem_free_object,
        .gem_vm_ops             = &exynos_drm_gem_vm_ops,
        .dumb_create            = exynos_drm_gem_dumb_create,
-       .dumb_map_offset        = exynos_drm_gem_dumb_map_offset,
-       .dumb_destroy           = drm_gem_dumb_destroy,
        .prime_handle_to_fd     = drm_gem_prime_handle_to_fd,
        .prime_fd_to_handle     = drm_gem_prime_fd_to_handle,
        .gem_prime_export       = drm_gem_prime_export,
@@@ -455,6 -453,7 +453,6 @@@ static int exynos_drm_platform_probe(st
        struct component_match *match;
  
        pdev->dev.coherent_dma_mask = DMA_BIT_MASK(32);
 -      exynos_drm_driver.num_ioctls = ARRAY_SIZE(exynos_ioctls);
  
        match = exynos_drm_match_add(&pdev->dev);
        if (IS_ERR(match))
This page took 0.154185 seconds and 4 git commands to generate.