Merge tag 'topic/drm-misc-2016-04-01' of git://anongit.freedesktop.org/drm-intel...
authorDave Airlie <airlied@redhat.com>
Tue, 5 Apr 2016 23:39:01 +0000 (09:39 +1000)
committerDave Airlie <airlied@redhat.com>
Tue, 5 Apr 2016 23:39:01 +0000 (09:39 +1000)
* tag 'topic/drm-misc-2016-04-01' of git://anongit.freedesktop.org/drm-intel:
  drm: Add new DCS commands in the enum list
  drm: Make uapi headers C89 pendantic compliant
  drm/atomic: export drm_atomic_helper_wait_for_fences()
  drm: Untangle __KERNEL__ guards
  drm: Move DRM_MODE_OBJECT_* to uapi headers
  drm: align #include directives with libdrm in uapi headers
  drm: Make drm.h uapi header safe for C++
  vgacon: dummy implementation for vgacon_text_force
  drm/sysfs: Nuke TV/DVI property files
  drm/ttm: Remove TTM_HAS_AGP
  drm: bridge/dw-hdmi: Remove pre_enable/post_disable dummy funcs
  Revert "drm: Don't pass negative delta to ktime_sub_ns()"
  drm/atmel: Fixup drm_connector_/unplug/unregister/_all
  drm: Rename drm_connector_unplug_all() to drm_connector_unregister_all()
  drm: bridge: Make (pre/post) enable/disable callbacks optional

29 files changed:
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
drivers/gpu/drm/ast/ast_drv.c
drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c
drivers/gpu/drm/bridge/dw-hdmi.c
drivers/gpu/drm/cirrus/cirrus_drv.c
drivers/gpu/drm/drm_atomic_helper.c
drivers/gpu/drm/drm_crtc.c
drivers/gpu/drm/drm_irq.c
drivers/gpu/drm/drm_sysfs.c
drivers/gpu/drm/i915/i915_drv.c
drivers/gpu/drm/mgag200/mgag200_drv.c
drivers/gpu/drm/nouveau/nouveau_drm.c
drivers/gpu/drm/qxl/qxl_drv.c
drivers/gpu/drm/radeon/radeon_drv.c
drivers/gpu/drm/rcar-du/rcar_du_drv.c
drivers/gpu/drm/ttm/Makefile
drivers/gpu/drm/ttm/ttm_agp_backend.c
drivers/gpu/drm/ttm/ttm_page_alloc.c
drivers/gpu/drm/ttm/ttm_page_alloc_dma.c
drivers/gpu/drm/udl/udl_drv.c
drivers/gpu/drm/virtio/virtgpu_drv.c
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
include/drm/drm_atomic_helper.h
include/drm/drm_crtc.h
include/drm/ttm/ttm_bo_driver.h
include/linux/console.h
include/uapi/drm/drm.h
include/uapi/drm/drm_mode.h
include/video/mipi_display.h

index f1e17d6..93462ae 100644 (file)
@@ -556,12 +556,10 @@ static struct pci_driver amdgpu_kms_pci_driver = {
 static int __init amdgpu_init(void)
 {
        amdgpu_sync_init();
-#ifdef CONFIG_VGA_CONSOLE
        if (vgacon_text_force()) {
                DRM_ERROR("VGACON disables amdgpu kernel modesetting.\n");
                return -EINVAL;
        }
-#endif
        DRM_INFO("amdgpu kernel modesetting enabled.\n");
        driver = &kms_driver;
        pdriver = &amdgpu_kms_pci_driver;
index 9a32d9d..fcd9c07 100644 (file)
@@ -218,10 +218,8 @@ static struct drm_driver driver = {
 
 static int __init ast_init(void)
 {
-#ifdef CONFIG_VGA_CONSOLE
        if (vgacon_text_force() && ast_modeset == -1)
                return -EINVAL;
-#endif
 
        if (ast_modeset == 0)
                return -EINVAL;
index 3d8d164..8ab4318 100644 (file)
@@ -615,7 +615,7 @@ err:
 static void atmel_hlcdc_dc_connector_unplug_all(struct drm_device *dev)
 {
        mutex_lock(&dev->mode_config.mutex);
-       drm_connector_unplug_all(dev);
+       drm_connector_unregister_all(dev);
        mutex_unlock(&dev->mode_config.mutex);
 }
 
index 9795b72..c9d9412 100644 (file)
@@ -1413,11 +1413,6 @@ static void dw_hdmi_bridge_enable(struct drm_bridge *bridge)
        mutex_unlock(&hdmi->mutex);
 }
 
-static void dw_hdmi_bridge_nop(struct drm_bridge *bridge)
-{
-       /* do nothing */
-}
-
 static enum drm_connector_status
 dw_hdmi_connector_detect(struct drm_connector *connector, bool force)
 {
@@ -1536,8 +1531,6 @@ static const struct drm_connector_helper_funcs dw_hdmi_connector_helper_funcs =
 static const struct drm_bridge_funcs dw_hdmi_bridge_funcs = {
        .enable = dw_hdmi_bridge_enable,
        .disable = dw_hdmi_bridge_disable,
-       .pre_enable = dw_hdmi_bridge_nop,
-       .post_disable = dw_hdmi_bridge_nop,
        .mode_set = dw_hdmi_bridge_mode_set,
 };
 
index 7bc394e..dc83f69 100644 (file)
@@ -163,10 +163,8 @@ static struct pci_driver cirrus_pci_driver = {
 
 static int __init cirrus_init(void)
 {
-#ifdef CONFIG_VGA_CONSOLE
        if (vgacon_text_force() && cirrus_modeset == -1)
                return -EINVAL;
-#endif
 
        if (cirrus_modeset == 0)
                return -EINVAL;
index 4befe25..7bf678e 100644 (file)
@@ -984,7 +984,17 @@ void drm_atomic_helper_commit_modeset_enables(struct drm_device *dev,
 }
 EXPORT_SYMBOL(drm_atomic_helper_commit_modeset_enables);
 
-static void wait_for_fences(struct drm_device *dev,
+/**
+ * drm_atomic_helper_wait_for_fences - wait for fences stashed in plane state
+ * @dev: DRM device
+ * @state: atomic state object with old state structures
+ *
+ * For implicit sync, driver should fish the exclusive fence out from the
+ * incoming fb's and stash it in the drm_plane_state.  This is called after
+ * drm_atomic_helper_swap_state() so it uses the current plane state (and
+ * just uses the atomic state to find the changed planes)
+ */
+void drm_atomic_helper_wait_for_fences(struct drm_device *dev,
                            struct drm_atomic_state *state)
 {
        struct drm_plane *plane;
@@ -1002,6 +1012,7 @@ static void wait_for_fences(struct drm_device *dev,
                plane->state->fence = NULL;
        }
 }
+EXPORT_SYMBOL(drm_atomic_helper_wait_for_fences);
 
 /**
  * drm_atomic_helper_framebuffer_changed - check if framebuffer has changed
@@ -1163,7 +1174,7 @@ int drm_atomic_helper_commit(struct drm_device *dev,
         * current layout.
         */
 
-       wait_for_fences(dev, state);
+       drm_atomic_helper_wait_for_fences(dev, state);
 
        drm_atomic_helper_commit_modeset_disables(dev, state);
 
index e08f962..55ffde5 100644 (file)
@@ -1067,25 +1067,25 @@ void drm_connector_unregister(struct drm_connector *connector)
 }
 EXPORT_SYMBOL(drm_connector_unregister);
 
-
 /**
- * drm_connector_unplug_all - unregister connector userspace interfaces
+ * drm_connector_unregister_all - unregister connector userspace interfaces
  * @dev: drm device
  *
- * This function unregisters all connector userspace interfaces in sysfs. Should
- * be call when the device is disconnected, e.g. from an usb driver's
- * ->disconnect callback.
+ * This functions unregisters all connectors from sysfs and other places so
+ * that userspace can no longer access them. Drivers should call this as the
+ * first step tearing down the device instace, or when the underlying
+ * physical device disappeared (e.g. USB unplug), right before calling
+ * drm_dev_unregister().
  */
-void drm_connector_unplug_all(struct drm_device *dev)
+void drm_connector_unregister_all(struct drm_device *dev)
 {
        struct drm_connector *connector;
 
        /* FIXME: taking the mode config mutex ends up in a clash with sysfs */
-       list_for_each_entry(connector, &dev->mode_config.connector_list, head)
+       drm_for_each_connector(connector, dev)
                drm_connector_unregister(connector);
-
 }
-EXPORT_SYMBOL(drm_connector_unplug_all);
+EXPORT_SYMBOL(drm_connector_unregister_all);
 
 /**
  * drm_encoder_init - Init a preallocated encoder
index 881c5a6..3c1a6f1 100644 (file)
@@ -863,10 +863,7 @@ int drm_calc_vbltimestamp_from_scanoutpos(struct drm_device *dev,
        /* Subtract time delta from raw timestamp to get final
         * vblank_time timestamp for end of vblank.
         */
-       if (delta_ns < 0)
-               etime = ktime_add_ns(etime, -delta_ns);
-       else
-               etime = ktime_sub_ns(etime, delta_ns);
+       etime = ktime_sub_ns(etime, delta_ns);
        *vblank_time = ktime_to_timeval(etime);
 
        DRM_DEBUG_VBL("crtc %u : v 0x%x p(%d,%d)@ %ld.%ld -> %ld.%ld [e %d us, %d rep]\n",
index d503f8e..d7d8cec 100644 (file)
@@ -287,102 +287,6 @@ static ssize_t modes_show(struct device *device,
        return written;
 }
 
-static ssize_t tv_subconnector_show(struct device *device,
-                                   struct device_attribute *attr,
-                                   char *buf)
-{
-       struct drm_connector *connector = to_drm_connector(device);
-       struct drm_device *dev = connector->dev;
-       struct drm_property *prop;
-       uint64_t subconnector;
-       int ret;
-
-       prop = dev->mode_config.tv_subconnector_property;
-       if (!prop) {
-               DRM_ERROR("Unable to find subconnector property\n");
-               return 0;
-       }
-
-       ret = drm_object_property_get_value(&connector->base, prop, &subconnector);
-       if (ret)
-               return 0;
-
-       return snprintf(buf, PAGE_SIZE, "%s",
-                       drm_get_tv_subconnector_name((int)subconnector));
-}
-
-static ssize_t tv_select_subconnector_show(struct device *device,
-                                          struct device_attribute *attr,
-                                          char *buf)
-{
-       struct drm_connector *connector = to_drm_connector(device);
-       struct drm_device *dev = connector->dev;
-       struct drm_property *prop;
-       uint64_t subconnector;
-       int ret;
-
-       prop = dev->mode_config.tv_select_subconnector_property;
-       if (!prop) {
-               DRM_ERROR("Unable to find select subconnector property\n");
-               return 0;
-       }
-
-       ret = drm_object_property_get_value(&connector->base, prop, &subconnector);
-       if (ret)
-               return 0;
-
-       return snprintf(buf, PAGE_SIZE, "%s",
-                       drm_get_tv_select_name((int)subconnector));
-}
-
-static ssize_t dvii_subconnector_show(struct device *device,
-                                     struct device_attribute *attr,
-                                     char *buf)
-{
-       struct drm_connector *connector = to_drm_connector(device);
-       struct drm_device *dev = connector->dev;
-       struct drm_property *prop;
-       uint64_t subconnector;
-       int ret;
-
-       prop = dev->mode_config.dvi_i_subconnector_property;
-       if (!prop) {
-               DRM_ERROR("Unable to find subconnector property\n");
-               return 0;
-       }
-
-       ret = drm_object_property_get_value(&connector->base, prop, &subconnector);
-       if (ret)
-               return 0;
-
-       return snprintf(buf, PAGE_SIZE, "%s",
-                       drm_get_dvi_i_subconnector_name((int)subconnector));
-}
-
-static ssize_t dvii_select_subconnector_show(struct device *device,
-                                            struct device_attribute *attr,
-                                            char *buf)
-{
-       struct drm_connector *connector = to_drm_connector(device);
-       struct drm_device *dev = connector->dev;
-       struct drm_property *prop;
-       uint64_t subconnector;
-       int ret;
-
-       prop = dev->mode_config.dvi_i_select_subconnector_property;
-       if (!prop) {
-               DRM_ERROR("Unable to find select subconnector property\n");
-               return 0;
-       }
-
-       ret = drm_object_property_get_value(&connector->base, prop, &subconnector);
-       if (ret)
-               return 0;
-
-       return snprintf(buf, PAGE_SIZE, "%s",
-                       drm_get_dvi_i_select_name((int)subconnector));
-}
-
 static DEVICE_ATTR_RW(status);
 static DEVICE_ATTR_RO(enabled);
 static DEVICE_ATTR_RO(dpms);
@@ -396,54 +300,6 @@ static struct attribute *connector_dev_attrs[] = {
        NULL
 };
 
-static DEVICE_ATTR_RO(tv_subconnector);
-static DEVICE_ATTR_RO(tv_select_subconnector);
-
-static struct attribute *connector_tv_dev_attrs[] = {
-       &dev_attr_tv_subconnector.attr,
-       &dev_attr_tv_select_subconnector.attr,
-       NULL
-};
-
-static DEVICE_ATTR_RO(dvii_subconnector);
-static DEVICE_ATTR_RO(dvii_select_subconnector);
-
-static struct attribute *connector_dvii_dev_attrs[] = {
-       &dev_attr_dvii_subconnector.attr,
-       &dev_attr_dvii_select_subconnector.attr,
-       NULL
-};
-
-/* Connector type related helpers */
-static int kobj_connector_type(struct kobject *kobj)
-{
-       struct device *dev = kobj_to_dev(kobj);
-       struct drm_connector *connector = to_drm_connector(dev);
-
-       return connector->connector_type;
-}
-
-static umode_t connector_is_dvii(struct kobject *kobj,
-                                struct attribute *attr, int idx)
-{
-       return kobj_connector_type(kobj) == DRM_MODE_CONNECTOR_DVII ?
-               attr->mode : 0;
-}
-
-static umode_t connector_is_tv(struct kobject *kobj,
-                              struct attribute *attr, int idx)
-{
-       switch (kobj_connector_type(kobj)) {
-       case DRM_MODE_CONNECTOR_Composite:
-       case DRM_MODE_CONNECTOR_SVIDEO:
-       case DRM_MODE_CONNECTOR_Component:
-       case DRM_MODE_CONNECTOR_TV:
-               return attr->mode;
-       }
-
-       return 0;
-}
-
 static struct bin_attribute edid_attr = {
        .attr.name = "edid",
        .attr.mode = 0444,
@@ -461,20 +317,8 @@ static const struct attribute_group connector_dev_group = {
        .bin_attrs = connector_bin_attrs,
 };
 
-static const struct attribute_group connector_tv_dev_group = {
-       .attrs = connector_tv_dev_attrs,
-       .is_visible = connector_is_tv,
-};
-
-static const struct attribute_group connector_dvii_dev_group = {
-       .attrs = connector_dvii_dev_attrs,
-       .is_visible = connector_is_dvii,
-};
-
 static const struct attribute_group *connector_dev_groups[] = {
        &connector_dev_group,
-       &connector_tv_dev_group,
-       &connector_dvii_dev_group,
        NULL
 };
 
index 20e8200..4c0dd35 100644 (file)
@@ -1742,10 +1742,8 @@ static int __init i915_init(void)
        if (i915.modeset == 0)
                driver.driver_features &= ~DRIVER_MODESET;
 
-#ifdef CONFIG_VGA_CONSOLE
        if (vgacon_text_force() && i915.modeset == -1)
                driver.driver_features &= ~DRIVER_MODESET;
-#endif
 
        if (!(driver.driver_features & DRIVER_MODESET)) {
                /* Silently fail loading to not upset userspace. */
index b0af774..ebb470f 100644 (file)
@@ -116,10 +116,8 @@ static struct pci_driver mgag200_pci_driver = {
 
 static int __init mgag200_init(void)
 {
-#ifdef CONFIG_VGA_CONSOLE
        if (vgacon_text_force() && mgag200_modeset == -1)
                return -EINVAL;
-#endif
 
        if (mgag200_modeset == 0)
                return -EINVAL;
index d06877d..db5c7d0 100644 (file)
@@ -1083,10 +1083,8 @@ nouveau_drm_init(void)
        nouveau_display_options();
 
        if (nouveau_modeset == -1) {
-#ifdef CONFIG_VGA_CONSOLE
                if (vgacon_text_force())
                        nouveau_modeset = 0;
-#endif
        }
 
        if (!nouveau_modeset)
index 7307b07..dc9df5f 100644 (file)
@@ -272,10 +272,8 @@ static struct drm_driver qxl_driver = {
 
 static int __init qxl_init(void)
 {
-#ifdef CONFIG_VGA_CONSOLE
        if (vgacon_text_force() && qxl_modeset == -1)
                return -EINVAL;
-#endif
 
        if (qxl_modeset == 0)
                return -EINVAL;
index ccd4ad4..5d44ed0 100644 (file)
@@ -566,12 +566,10 @@ static struct pci_driver radeon_kms_pci_driver = {
 
 static int __init radeon_init(void)
 {
-#ifdef CONFIG_VGA_CONSOLE
        if (vgacon_text_force() && radeon_modeset == -1) {
                DRM_INFO("VGACON disable radeon kernel modesetting.\n");
                radeon_modeset = 0;
        }
-#endif
        /* set to modesetting by default if not nomodeset */
        if (radeon_modeset == -1)
                radeon_modeset = 1;
index ed6006b..644db36 100644 (file)
@@ -278,10 +278,7 @@ static int rcar_du_remove(struct platform_device *pdev)
        struct rcar_du_device *rcdu = platform_get_drvdata(pdev);
        struct drm_device *ddev = rcdu->ddev;
 
-       mutex_lock(&ddev->mode_config.mutex);
-       drm_connector_unplug_all(ddev);
-       mutex_unlock(&ddev->mode_config.mutex);
-
+       drm_connector_unregister_all(ddev);
        drm_dev_unregister(ddev);
 
        if (rcdu->fbdev)
index b433b9f..f923258 100644 (file)
@@ -2,9 +2,10 @@
 # Makefile for the drm device driver.  This driver provides support for the
 
 ccflags-y := -Iinclude/drm
-ttm-y := ttm_agp_backend.o ttm_memory.o ttm_tt.o ttm_bo.o \
+ttm-y := ttm_memory.o ttm_tt.o ttm_bo.o \
        ttm_bo_util.o ttm_bo_vm.o ttm_module.o \
        ttm_object.o ttm_lock.o ttm_execbuf_util.o ttm_page_alloc.o \
        ttm_bo_manager.o ttm_page_alloc_dma.o
+ttm-$(CONFIG_AGP) += ttm_agp_backend.o
 
 obj-$(CONFIG_DRM_TTM) += ttm.o
index 764be36..028ab60 100644 (file)
@@ -34,7 +34,6 @@
 #include <drm/ttm/ttm_module.h>
 #include <drm/ttm/ttm_bo_driver.h>
 #include <drm/ttm/ttm_page_alloc.h>
-#ifdef TTM_HAS_AGP
 #include <drm/ttm/ttm_placement.h>
 #include <linux/agp_backend.h>
 #include <linux/module.h>
@@ -148,5 +147,3 @@ void ttm_agp_tt_unpopulate(struct ttm_tt *ttm)
        ttm_pool_unpopulate(ttm);
 }
 EXPORT_SYMBOL(ttm_agp_tt_unpopulate);
-
-#endif
index 025c429..a37de5d 100644 (file)
@@ -48,7 +48,7 @@
 #include <drm/ttm/ttm_bo_driver.h>
 #include <drm/ttm/ttm_page_alloc.h>
 
-#ifdef TTM_HAS_AGP
+#if IS_ENABLED(CONFIG_AGP)
 #include <asm/agp.h>
 #endif
 
@@ -219,7 +219,7 @@ static struct ttm_pool_manager *_manager;
 #ifndef CONFIG_X86
 static int set_pages_array_wb(struct page **pages, int addrinarray)
 {
-#ifdef TTM_HAS_AGP
+#if IS_ENABLED(CONFIG_AGP)
        int i;
 
        for (i = 0; i < addrinarray; i++)
@@ -230,7 +230,7 @@ static int set_pages_array_wb(struct page **pages, int addrinarray)
 
 static int set_pages_array_wc(struct page **pages, int addrinarray)
 {
-#ifdef TTM_HAS_AGP
+#if IS_ENABLED(CONFIG_AGP)
        int i;
 
        for (i = 0; i < addrinarray; i++)
@@ -241,7 +241,7 @@ static int set_pages_array_wc(struct page **pages, int addrinarray)
 
 static int set_pages_array_uc(struct page **pages, int addrinarray)
 {
-#ifdef TTM_HAS_AGP
+#if IS_ENABLED(CONFIG_AGP)
        int i;
 
        for (i = 0; i < addrinarray; i++)
index 624d941..bef9f6f 100644 (file)
@@ -50,7 +50,7 @@
 #include <linux/kthread.h>
 #include <drm/ttm/ttm_bo_driver.h>
 #include <drm/ttm/ttm_page_alloc.h>
-#ifdef TTM_HAS_AGP
+#if IS_ENABLED(CONFIG_AGP)
 #include <asm/agp.h>
 #endif
 
@@ -271,7 +271,7 @@ static struct kobj_type ttm_pool_kobj_type = {
 #ifndef CONFIG_X86
 static int set_pages_array_wb(struct page **pages, int addrinarray)
 {
-#ifdef TTM_HAS_AGP
+#if IS_ENABLED(CONFIG_AGP)
        int i;
 
        for (i = 0; i < addrinarray; i++)
@@ -282,7 +282,7 @@ static int set_pages_array_wb(struct page **pages, int addrinarray)
 
 static int set_pages_array_wc(struct page **pages, int addrinarray)
 {
-#ifdef TTM_HAS_AGP
+#if IS_ENABLED(CONFIG_AGP)
        int i;
 
        for (i = 0; i < addrinarray; i++)
@@ -293,7 +293,7 @@ static int set_pages_array_wc(struct page **pages, int addrinarray)
 
 static int set_pages_array_uc(struct page **pages, int addrinarray)
 {
-#ifdef TTM_HAS_AGP
+#if IS_ENABLED(CONFIG_AGP)
        int i;
 
        for (i = 0; i < addrinarray; i++)
index 772ec9e..c204089 100644 (file)
@@ -94,7 +94,7 @@ static void udl_usb_disconnect(struct usb_interface *interface)
        struct drm_device *dev = usb_get_intfdata(interface);
 
        drm_kms_helper_poll_disable(dev);
-       drm_connector_unplug_all(dev);
+       drm_connector_unregister_all(dev);
        udl_fbdev_unplug(dev);
        udl_drop_usb(dev);
        drm_unplug_dev(dev);
index 7f898cf..3cc7afa 100644 (file)
@@ -42,10 +42,8 @@ module_param_named(modeset, virtio_gpu_modeset, int, 0400);
 
 static int virtio_gpu_probe(struct virtio_device *vdev)
 {
-#ifdef CONFIG_VGA_CONSOLE
        if (vgacon_text_force() && virtio_gpu_modeset == -1)
                return -EINVAL;
-#endif
 
        if (virtio_gpu_modeset == 0)
                return -EINVAL;
index 6cbb7d4..e7335a4 100644 (file)
@@ -1530,10 +1530,8 @@ static int __init vmwgfx_init(void)
 {
        int ret;
 
-#ifdef CONFIG_VGA_CONSOLE
        if (vgacon_text_force())
                return -EINVAL;
-#endif
 
        ret = drm_pci_init(&driver, &vmw_pci_driver);
        if (ret)
index 9054598..fe9d89c 100644 (file)
@@ -42,6 +42,8 @@ int drm_atomic_helper_commit(struct drm_device *dev,
                             struct drm_atomic_state *state,
                             bool async);
 
+void drm_atomic_helper_wait_for_fences(struct drm_device *dev,
+                                       struct drm_atomic_state *state);
 bool drm_atomic_helper_framebuffer_changed(struct drm_device *dev,
                                           struct drm_atomic_state *old_state,
                                           struct drm_crtc *crtc);
index e0170bf..8cb377c 100644 (file)
@@ -45,16 +45,6 @@ struct drm_clip_rect;
 struct device_node;
 struct fence;
 
-#define DRM_MODE_OBJECT_CRTC 0xcccccccc
-#define DRM_MODE_OBJECT_CONNECTOR 0xc0c0c0c0
-#define DRM_MODE_OBJECT_ENCODER 0xe0e0e0e0
-#define DRM_MODE_OBJECT_MODE 0xdededede
-#define DRM_MODE_OBJECT_PROPERTY 0xb0b0b0b0
-#define DRM_MODE_OBJECT_FB 0xfbfbfbfb
-#define DRM_MODE_OBJECT_BLOB 0xbbbbbbbb
-#define DRM_MODE_OBJECT_PLANE 0xeeeeeeee
-#define DRM_MODE_OBJECT_ANY 0
-
 struct drm_mode_object {
        uint32_t id;
        uint32_t type;
@@ -2259,8 +2249,8 @@ static inline unsigned drm_connector_index(struct drm_connector *connector)
        return connector->connector_id;
 }
 
-/* helper to unplug all connectors from sysfs for device */
-extern void drm_connector_unplug_all(struct drm_device *dev);
+/* helper to unregister all connectors from sysfs for device */
+extern void drm_connector_unregister_all(struct drm_device *dev);
 
 extern int drm_bridge_add(struct drm_bridge *bridge);
 extern void drm_bridge_remove(struct drm_bridge *bridge);
index 3d4bf08..cb91f80 100644 (file)
@@ -1030,8 +1030,7 @@ extern pgprot_t ttm_io_prot(uint32_t caching_flags, pgprot_t tmp);
 
 extern const struct ttm_mem_type_manager_func ttm_bo_manager_func;
 
-#if (defined(CONFIG_AGP) || (defined(CONFIG_AGP_MODULE) && defined(MODULE)))
-#define TTM_HAS_AGP
+#if IS_ENABLED(CONFIG_AGP)
 #include <linux/agp_backend.h>
 
 /**
index ea731af..e49cc1e 100644 (file)
@@ -191,6 +191,8 @@ void vcs_remove_sysfs(int index);
 
 #ifdef CONFIG_VGA_CONSOLE
 extern bool vgacon_text_force(void);
+#else
+static inline bool vgacon_text_force(void) { return false; }
 #endif
 
 #endif /* _LINUX_CONSOLE_H */
index a0ebfe7..3683250 100644 (file)
 #ifndef _DRM_H_
 #define _DRM_H_
 
-#if defined(__KERNEL__) || defined(__linux__)
+#if defined(__KERNEL__)
+
+#include <linux/types.h>
+#include <asm/ioctl.h>
+typedef unsigned int drm_handle_t;
+
+#elif defined(__linux__)
 
 #include <linux/types.h>
 #include <asm/ioctl.h>
@@ -181,7 +187,7 @@ enum drm_map_type {
        _DRM_SHM = 2,             /**< shared, cached */
        _DRM_AGP = 3,             /**< AGP/GART */
        _DRM_SCATTER_GATHER = 4,  /**< Scatter/gather memory for PCI DMA */
-       _DRM_CONSISTENT = 5,      /**< Consistent memory for PCI DMA */
+       _DRM_CONSISTENT = 5       /**< Consistent memory for PCI DMA */
 };
 
 /**
@@ -373,7 +379,11 @@ struct drm_buf_pub {
  */
 struct drm_buf_map {
        int count;              /**< Length of the buffer list */
+#ifdef __cplusplus
+       void __user *virt;
+#else
        void __user *virtual;           /**< Mmap'd area in user-virtual */
+#endif
        struct drm_buf_pub __user *list;        /**< Buffer information */
 };
 
@@ -431,7 +441,7 @@ struct drm_draw {
  * DRM_IOCTL_UPDATE_DRAW ioctl argument type.
  */
 typedef enum {
-       DRM_DRAWABLE_CLIPRECTS,
+       DRM_DRAWABLE_CLIPRECTS
 } drm_drawable_info_type_t;
 
 struct drm_update_draw {
@@ -681,7 +691,7 @@ struct drm_prime_handle {
        __s32 fd;
 };
 
-#include <drm/drm_mode.h>
+#include "drm_mode.h"
 
 #define DRM_IOCTL_BASE                 'd'
 #define DRM_IO(nr)                     _IO(DRM_IOCTL_BASE,nr)
index c021743..7a7856e 100644 (file)
@@ -320,6 +320,16 @@ struct drm_mode_connector_set_property {
        __u32 connector_id;
 };
 
+#define DRM_MODE_OBJECT_CRTC 0xcccccccc
+#define DRM_MODE_OBJECT_CONNECTOR 0xc0c0c0c0
+#define DRM_MODE_OBJECT_ENCODER 0xe0e0e0e0
+#define DRM_MODE_OBJECT_MODE 0xdededede
+#define DRM_MODE_OBJECT_PROPERTY 0xb0b0b0b0
+#define DRM_MODE_OBJECT_FB 0xfbfbfbfb
+#define DRM_MODE_OBJECT_BLOB 0xbbbbbbbb
+#define DRM_MODE_OBJECT_PLANE 0xeeeeeeee
+#define DRM_MODE_OBJECT_ANY 0
+
 struct drm_mode_obj_get_properties {
        __u64 props_ptr;
        __u64 prop_values_ptr;
index ddcc8ca..19aa65a 100644 (file)
@@ -115,6 +115,14 @@ enum {
        MIPI_DCS_READ_MEMORY_CONTINUE   = 0x3E,
        MIPI_DCS_SET_TEAR_SCANLINE      = 0x44,
        MIPI_DCS_GET_SCANLINE           = 0x45,
+       MIPI_DCS_SET_DISPLAY_BRIGHTNESS = 0x51,         /* MIPI DCS 1.3 */
+       MIPI_DCS_GET_DISPLAY_BRIGHTNESS = 0x52,         /* MIPI DCS 1.3 */
+       MIPI_DCS_WRITE_CONTROL_DISPLAY  = 0x53,         /* MIPI DCS 1.3 */
+       MIPI_DCS_GET_CONTROL_DISPLAY    = 0x54,         /* MIPI DCS 1.3 */
+       MIPI_DCS_WRITE_POWER_SAVE       = 0x55,         /* MIPI DCS 1.3 */
+       MIPI_DCS_GET_POWER_SAVE         = 0x56,         /* MIPI DCS 1.3 */
+       MIPI_DCS_SET_CABC_MIN_BRIGHTNESS = 0x5E,        /* MIPI DCS 1.3 */
+       MIPI_DCS_GET_CABC_MIN_BRIGHTNESS = 0x5F,        /* MIPI DCS 1.3 */
        MIPI_DCS_READ_DDB_START         = 0xA1,
        MIPI_DCS_READ_DDB_CONTINUE      = 0xA8,
 };