Commit e7c8e544 authored by Dave Airlie's avatar Dave Airlie

Merge tag 'topic/drm-misc-2016-04-01' of git://anongit.freedesktop.org/drm-intel into drm-next

* 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
parents 9735a227 249c4f53
...@@ -556,12 +556,10 @@ static struct pci_driver amdgpu_kms_pci_driver = { ...@@ -556,12 +556,10 @@ static struct pci_driver amdgpu_kms_pci_driver = {
static int __init amdgpu_init(void) static int __init amdgpu_init(void)
{ {
amdgpu_sync_init(); amdgpu_sync_init();
#ifdef CONFIG_VGA_CONSOLE
if (vgacon_text_force()) { if (vgacon_text_force()) {
DRM_ERROR("VGACON disables amdgpu kernel modesetting.\n"); DRM_ERROR("VGACON disables amdgpu kernel modesetting.\n");
return -EINVAL; return -EINVAL;
} }
#endif
DRM_INFO("amdgpu kernel modesetting enabled.\n"); DRM_INFO("amdgpu kernel modesetting enabled.\n");
driver = &kms_driver; driver = &kms_driver;
pdriver = &amdgpu_kms_pci_driver; pdriver = &amdgpu_kms_pci_driver;
......
...@@ -218,10 +218,8 @@ static struct drm_driver driver = { ...@@ -218,10 +218,8 @@ static struct drm_driver driver = {
static int __init ast_init(void) static int __init ast_init(void)
{ {
#ifdef CONFIG_VGA_CONSOLE
if (vgacon_text_force() && ast_modeset == -1) if (vgacon_text_force() && ast_modeset == -1)
return -EINVAL; return -EINVAL;
#endif
if (ast_modeset == 0) if (ast_modeset == 0)
return -EINVAL; return -EINVAL;
......
...@@ -615,7 +615,7 @@ static int atmel_hlcdc_dc_connector_plug_all(struct drm_device *dev) ...@@ -615,7 +615,7 @@ static int atmel_hlcdc_dc_connector_plug_all(struct drm_device *dev)
static void atmel_hlcdc_dc_connector_unplug_all(struct drm_device *dev) static void atmel_hlcdc_dc_connector_unplug_all(struct drm_device *dev)
{ {
mutex_lock(&dev->mode_config.mutex); mutex_lock(&dev->mode_config.mutex);
drm_connector_unplug_all(dev); drm_connector_unregister_all(dev);
mutex_unlock(&dev->mode_config.mutex); mutex_unlock(&dev->mode_config.mutex);
} }
......
...@@ -1413,11 +1413,6 @@ static void dw_hdmi_bridge_enable(struct drm_bridge *bridge) ...@@ -1413,11 +1413,6 @@ static void dw_hdmi_bridge_enable(struct drm_bridge *bridge)
mutex_unlock(&hdmi->mutex); mutex_unlock(&hdmi->mutex);
} }
static void dw_hdmi_bridge_nop(struct drm_bridge *bridge)
{
/* do nothing */
}
static enum drm_connector_status static enum drm_connector_status
dw_hdmi_connector_detect(struct drm_connector *connector, bool force) 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 = ...@@ -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 = { static const struct drm_bridge_funcs dw_hdmi_bridge_funcs = {
.enable = dw_hdmi_bridge_enable, .enable = dw_hdmi_bridge_enable,
.disable = dw_hdmi_bridge_disable, .disable = dw_hdmi_bridge_disable,
.pre_enable = dw_hdmi_bridge_nop,
.post_disable = dw_hdmi_bridge_nop,
.mode_set = dw_hdmi_bridge_mode_set, .mode_set = dw_hdmi_bridge_mode_set,
}; };
......
...@@ -163,10 +163,8 @@ static struct pci_driver cirrus_pci_driver = { ...@@ -163,10 +163,8 @@ static struct pci_driver cirrus_pci_driver = {
static int __init cirrus_init(void) static int __init cirrus_init(void)
{ {
#ifdef CONFIG_VGA_CONSOLE
if (vgacon_text_force() && cirrus_modeset == -1) if (vgacon_text_force() && cirrus_modeset == -1)
return -EINVAL; return -EINVAL;
#endif
if (cirrus_modeset == 0) if (cirrus_modeset == 0)
return -EINVAL; return -EINVAL;
......
...@@ -984,7 +984,17 @@ void drm_atomic_helper_commit_modeset_enables(struct drm_device *dev, ...@@ -984,7 +984,17 @@ void drm_atomic_helper_commit_modeset_enables(struct drm_device *dev,
} }
EXPORT_SYMBOL(drm_atomic_helper_commit_modeset_enables); 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_atomic_state *state)
{ {
struct drm_plane *plane; struct drm_plane *plane;
...@@ -1002,6 +1012,7 @@ static void wait_for_fences(struct drm_device *dev, ...@@ -1002,6 +1012,7 @@ static void wait_for_fences(struct drm_device *dev,
plane->state->fence = NULL; plane->state->fence = NULL;
} }
} }
EXPORT_SYMBOL(drm_atomic_helper_wait_for_fences);
/** /**
* drm_atomic_helper_framebuffer_changed - check if framebuffer has changed * drm_atomic_helper_framebuffer_changed - check if framebuffer has changed
...@@ -1163,7 +1174,7 @@ int drm_atomic_helper_commit(struct drm_device *dev, ...@@ -1163,7 +1174,7 @@ int drm_atomic_helper_commit(struct drm_device *dev,
* current layout. * current layout.
*/ */
wait_for_fences(dev, state); drm_atomic_helper_wait_for_fences(dev, state);
drm_atomic_helper_commit_modeset_disables(dev, state); drm_atomic_helper_commit_modeset_disables(dev, state);
......
...@@ -1067,25 +1067,25 @@ void drm_connector_unregister(struct drm_connector *connector) ...@@ -1067,25 +1067,25 @@ void drm_connector_unregister(struct drm_connector *connector)
} }
EXPORT_SYMBOL(drm_connector_unregister); EXPORT_SYMBOL(drm_connector_unregister);
/** /**
* drm_connector_unplug_all - unregister connector userspace interfaces * drm_connector_unregister_all - unregister connector userspace interfaces
* @dev: drm device * @dev: drm device
* *
* This function unregisters all connector userspace interfaces in sysfs. Should * This functions unregisters all connectors from sysfs and other places so
* be call when the device is disconnected, e.g. from an usb driver's * that userspace can no longer access them. Drivers should call this as the
* ->disconnect callback. * 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; struct drm_connector *connector;
/* FIXME: taking the mode config mutex ends up in a clash with sysfs */ /* 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); drm_connector_unregister(connector);
} }
EXPORT_SYMBOL(drm_connector_unplug_all); EXPORT_SYMBOL(drm_connector_unregister_all);
/** /**
* drm_encoder_init - Init a preallocated encoder * drm_encoder_init - Init a preallocated encoder
......
...@@ -863,10 +863,7 @@ int drm_calc_vbltimestamp_from_scanoutpos(struct drm_device *dev, ...@@ -863,10 +863,7 @@ int drm_calc_vbltimestamp_from_scanoutpos(struct drm_device *dev,
/* Subtract time delta from raw timestamp to get final /* Subtract time delta from raw timestamp to get final
* vblank_time timestamp for end of vblank. * vblank_time timestamp for end of vblank.
*/ */
if (delta_ns < 0) etime = ktime_sub_ns(etime, delta_ns);
etime = ktime_add_ns(etime, -delta_ns);
else
etime = ktime_sub_ns(etime, delta_ns);
*vblank_time = ktime_to_timeval(etime); *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", DRM_DEBUG_VBL("crtc %u : v 0x%x p(%d,%d)@ %ld.%ld -> %ld.%ld [e %d us, %d rep]\n",
......
...@@ -287,102 +287,6 @@ static ssize_t modes_show(struct device *device, ...@@ -287,102 +287,6 @@ static ssize_t modes_show(struct device *device,
return written; 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_RW(status);
static DEVICE_ATTR_RO(enabled); static DEVICE_ATTR_RO(enabled);
static DEVICE_ATTR_RO(dpms); static DEVICE_ATTR_RO(dpms);
...@@ -396,54 +300,6 @@ static struct attribute *connector_dev_attrs[] = { ...@@ -396,54 +300,6 @@ static struct attribute *connector_dev_attrs[] = {
NULL 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 = { static struct bin_attribute edid_attr = {
.attr.name = "edid", .attr.name = "edid",
.attr.mode = 0444, .attr.mode = 0444,
...@@ -461,20 +317,8 @@ static const struct attribute_group connector_dev_group = { ...@@ -461,20 +317,8 @@ static const struct attribute_group connector_dev_group = {
.bin_attrs = connector_bin_attrs, .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[] = { static const struct attribute_group *connector_dev_groups[] = {
&connector_dev_group, &connector_dev_group,
&connector_tv_dev_group,
&connector_dvii_dev_group,
NULL NULL
}; };
......
...@@ -1742,10 +1742,8 @@ static int __init i915_init(void) ...@@ -1742,10 +1742,8 @@ static int __init i915_init(void)
if (i915.modeset == 0) if (i915.modeset == 0)
driver.driver_features &= ~DRIVER_MODESET; driver.driver_features &= ~DRIVER_MODESET;
#ifdef CONFIG_VGA_CONSOLE
if (vgacon_text_force() && i915.modeset == -1) if (vgacon_text_force() && i915.modeset == -1)
driver.driver_features &= ~DRIVER_MODESET; driver.driver_features &= ~DRIVER_MODESET;
#endif
if (!(driver.driver_features & DRIVER_MODESET)) { if (!(driver.driver_features & DRIVER_MODESET)) {
/* Silently fail loading to not upset userspace. */ /* Silently fail loading to not upset userspace. */
......
...@@ -116,10 +116,8 @@ static struct pci_driver mgag200_pci_driver = { ...@@ -116,10 +116,8 @@ static struct pci_driver mgag200_pci_driver = {
static int __init mgag200_init(void) static int __init mgag200_init(void)
{ {
#ifdef CONFIG_VGA_CONSOLE
if (vgacon_text_force() && mgag200_modeset == -1) if (vgacon_text_force() && mgag200_modeset == -1)
return -EINVAL; return -EINVAL;
#endif
if (mgag200_modeset == 0) if (mgag200_modeset == 0)
return -EINVAL; return -EINVAL;
......
...@@ -1083,10 +1083,8 @@ nouveau_drm_init(void) ...@@ -1083,10 +1083,8 @@ nouveau_drm_init(void)
nouveau_display_options(); nouveau_display_options();
if (nouveau_modeset == -1) { if (nouveau_modeset == -1) {
#ifdef CONFIG_VGA_CONSOLE
if (vgacon_text_force()) if (vgacon_text_force())
nouveau_modeset = 0; nouveau_modeset = 0;
#endif
} }
if (!nouveau_modeset) if (!nouveau_modeset)
......
...@@ -272,10 +272,8 @@ static struct drm_driver qxl_driver = { ...@@ -272,10 +272,8 @@ static struct drm_driver qxl_driver = {
static int __init qxl_init(void) static int __init qxl_init(void)
{ {
#ifdef CONFIG_VGA_CONSOLE
if (vgacon_text_force() && qxl_modeset == -1) if (vgacon_text_force() && qxl_modeset == -1)
return -EINVAL; return -EINVAL;
#endif
if (qxl_modeset == 0) if (qxl_modeset == 0)
return -EINVAL; return -EINVAL;
......
...@@ -566,12 +566,10 @@ static struct pci_driver radeon_kms_pci_driver = { ...@@ -566,12 +566,10 @@ static struct pci_driver radeon_kms_pci_driver = {
static int __init radeon_init(void) static int __init radeon_init(void)
{ {
#ifdef CONFIG_VGA_CONSOLE
if (vgacon_text_force() && radeon_modeset == -1) { if (vgacon_text_force() && radeon_modeset == -1) {
DRM_INFO("VGACON disable radeon kernel modesetting.\n"); DRM_INFO("VGACON disable radeon kernel modesetting.\n");
radeon_modeset = 0; radeon_modeset = 0;
} }
#endif
/* set to modesetting by default if not nomodeset */ /* set to modesetting by default if not nomodeset */
if (radeon_modeset == -1) if (radeon_modeset == -1)
radeon_modeset = 1; radeon_modeset = 1;
......
...@@ -278,10 +278,7 @@ static int rcar_du_remove(struct platform_device *pdev) ...@@ -278,10 +278,7 @@ static int rcar_du_remove(struct platform_device *pdev)
struct rcar_du_device *rcdu = platform_get_drvdata(pdev); struct rcar_du_device *rcdu = platform_get_drvdata(pdev);
struct drm_device *ddev = rcdu->ddev; struct drm_device *ddev = rcdu->ddev;
mutex_lock(&ddev->mode_config.mutex); drm_connector_unregister_all(ddev);
drm_connector_unplug_all(ddev);
mutex_unlock(&ddev->mode_config.mutex);
drm_dev_unregister(ddev); drm_dev_unregister(ddev);
if (rcdu->fbdev) if (rcdu->fbdev)
......
...@@ -2,9 +2,10 @@ ...@@ -2,9 +2,10 @@
# Makefile for the drm device driver. This driver provides support for the # Makefile for the drm device driver. This driver provides support for the
ccflags-y := -Iinclude/drm 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_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_object.o ttm_lock.o ttm_execbuf_util.o ttm_page_alloc.o \
ttm_bo_manager.o ttm_page_alloc_dma.o ttm_bo_manager.o ttm_page_alloc_dma.o
ttm-$(CONFIG_AGP) += ttm_agp_backend.o
obj-$(CONFIG_DRM_TTM) += ttm.o obj-$(CONFIG_DRM_TTM) += ttm.o
...@@ -34,7 +34,6 @@ ...@@ -34,7 +34,6 @@
#include <drm/ttm/ttm_module.h> #include <drm/ttm/ttm_module.h>
#include <drm/ttm/ttm_bo_driver.h> #include <drm/ttm/ttm_bo_driver.h>
#include <drm/ttm/ttm_page_alloc.h> #include <drm/ttm/ttm_page_alloc.h>
#ifdef TTM_HAS_AGP
#include <drm/ttm/ttm_placement.h> #include <drm/ttm/ttm_placement.h>
#include <linux/agp_backend.h> #include <linux/agp_backend.h>
#include <linux/module.h> #include <linux/module.h>
...@@ -148,5 +147,3 @@ void ttm_agp_tt_unpopulate(struct ttm_tt *ttm) ...@@ -148,5 +147,3 @@ void ttm_agp_tt_unpopulate(struct ttm_tt *ttm)
ttm_pool_unpopulate(ttm); ttm_pool_unpopulate(ttm);
} }
EXPORT_SYMBOL(ttm_agp_tt_unpopulate); EXPORT_SYMBOL(ttm_agp_tt_unpopulate);
#endif
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
#include <drm/ttm/ttm_bo_driver.h> #include <drm/ttm/ttm_bo_driver.h>
#include <drm/ttm/ttm_page_alloc.h> #include <drm/ttm/ttm_page_alloc.h>
#ifdef TTM_HAS_AGP #if IS_ENABLED(CONFIG_AGP)
#include <asm/agp.h> #include <asm/agp.h>
#endif #endif
...@@ -219,7 +219,7 @@ static struct ttm_pool_manager *_manager; ...@@ -219,7 +219,7 @@ static struct ttm_pool_manager *_manager;
#ifndef CONFIG_X86 #ifndef CONFIG_X86
static int set_pages_array_wb(struct page **pages, int addrinarray) static int set_pages_array_wb(struct page **pages, int addrinarray)
{ {
#ifdef TTM_HAS_AGP #if IS_ENABLED(CONFIG_AGP)
int i; int i;
for (i = 0; i < addrinarray; i++) for (i = 0; i < addrinarray; i++)
...@@ -230,7 +230,7 @@ static int set_pages_array_wb(struct page **pages, int addrinarray) ...@@ -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) static int set_pages_array_wc(struct page **pages, int addrinarray)
{ {
#ifdef TTM_HAS_AGP #if IS_ENABLED(CONFIG_AGP)
int i; int i;
for (i = 0; i < addrinarray; i++) for (i = 0; i < addrinarray; i++)
...@@ -241,7 +241,7 @@ static int set_pages_array_wc(struct page **pages, int addrinarray) ...@@ -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) static int set_pages_array_uc(struct page **pages, int addrinarray)
{ {
#ifdef TTM_HAS_AGP #if IS_ENABLED(CONFIG_AGP)
int i; int i;
for (i = 0; i < addrinarray; i++) for (i = 0; i < addrinarray; i++)
......
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
#include <linux/kthread.h> #include <linux/kthread.h>
#include <drm/ttm/ttm_bo_driver.h> #include <drm/ttm/ttm_bo_driver.h>
#include <drm/ttm/ttm_page_alloc.h> #include <drm/ttm/ttm_page_alloc.h>
#ifdef TTM_HAS_AGP #if IS_ENABLED(CONFIG_AGP)
#include <asm/agp.h> #include <asm/agp.h>
#endif #endif
...@@ -271,7 +271,7 @@ static struct kobj_type ttm_pool_kobj_type = { ...@@ -271,7 +271,7 @@ static struct kobj_type ttm_pool_kobj_type = {
#ifndef CONFIG_X86 #ifndef CONFIG_X86
static int set_pages_array_wb(struct page **pages, int addrinarray) static int set_pages_array_wb(struct page **pages, int addrinarray)
{ {
#ifdef TTM_HAS_AGP #if IS_ENABLED(CONFIG_AGP)
int i; int i;
for (i = 0; i < addrinarray; i++) for (i = 0; i < addrinarray; i++)
...@@ -282,7 +282,7 @@ static int set_pages_array_wb(struct page **pages, int addrinarray) ...@@ -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) static int set_pages_array_wc(struct page **pages, int addrinarray)
{ {
#ifdef TTM_HAS_AGP #if IS_ENABLED(CONFIG_AGP)
int i; int i;
for (i = 0; i < addrinarray; i++) for (i = 0; i < addrinarray; i++)
...@@ -293,7 +293,7 @@ static int set_pages_array_wc(struct page **pages, int addrinarray) ...@@ -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) static int set_pages_array_uc(struct page **pages, int addrinarray)
{ {
#ifdef TTM_HAS_AGP #if IS_ENABLED(CONFIG_AGP)
int i; int i;
for (i = 0; i < addrinarray; i++) for (i = 0; i < addrinarray; i++)
......
...@@ -94,7 +94,7 @@ static void udl_usb_disconnect(struct usb_interface *interface) ...@@ -94,7 +94,7 @@ static void udl_usb_disconnect(struct usb_interface *interface)
struct drm_device *dev = usb_get_intfdata(interface); struct drm_device *dev = usb_get_intfdata(interface);
drm_kms_helper_poll_disable(dev); drm_kms_helper_poll_disable(dev);
drm_connector_unplug_all(dev); drm_connector_unregister_all(dev);
udl_fbdev_unplug(dev); udl_fbdev_unplug(dev);
udl_drop_usb(dev); udl_drop_usb(dev);
drm_unplug_dev(dev); drm_unplug_dev(dev);
......
...@@ -42,10 +42,8 @@ module_param_named(modeset, virtio_gpu_modeset, int, 0400); ...@@ -42,10 +42,8 @@ module_param_named(modeset, virtio_gpu_modeset, int, 0400);
static int virtio_gpu_probe(struct virtio_device *vdev) static int virtio_gpu_probe(struct virtio_device *vdev)
{ {
#ifdef CONFIG_VGA_CONSOLE
if (vgacon_text_force() && virtio_gpu_modeset == -1) if (vgacon_text_force() && virtio_gpu_modeset == -1)
return -EINVAL; return -EINVAL;
#endif
if (virtio_gpu_modeset == 0) if (virtio_gpu_modeset == 0)
return -EINVAL; return -EINVAL;
......
...@@ -1530,10 +1530,8 @@ static int __init vmwgfx_init(void) ...@@ -1530,10 +1530,8 @@ static int __init vmwgfx_init(void)
{ {
int ret; int ret;
#ifdef CONFIG_VGA_CONSOLE
if (vgacon_text_force()) if (vgacon_text_force())
return -EINVAL; return -EINVAL;
#endif
ret = drm_pci_init(&driver, &vmw_pci_driver); ret = drm_pci_init(&driver, &vmw_pci_driver);
if (ret) if (ret)
......
...@@ -42,6 +42,8 @@ int drm_atomic_helper_commit(struct drm_device *dev, ...@@ -42,6 +42,8 @@ int drm_atomic_helper_commit(struct drm_device *dev,
struct drm_atomic_state *state, struct drm_atomic_state *state,
bool async); 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, bool drm_atomic_helper_framebuffer_changed(struct drm_device *dev,
struct drm_atomic_state *old_state, struct drm_atomic_state *old_state,
struct drm_crtc *crtc); struct drm_crtc *crtc);
......
...@@ -45,16 +45,6 @@ struct drm_clip_rect; ...@@ -45,16 +45,6 @@ struct drm_clip_rect;
struct device_node; struct device_node;
struct fence; 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 { struct drm_mode_object {
uint32_t id; uint32_t id;
uint32_t type; uint32_t type;
...@@ -2259,8 +2249,8 @@ static inline unsigned drm_connector_index(struct drm_connector *connector) ...@@ -2259,8 +2249,8 @@ static inline unsigned drm_connector_index(struct drm_connector *connector)
return connector->connector_id; return connector->connector_id;
} }
/* helper to unplug all connectors from sysfs for device */ /* helper to unregister all connectors from sysfs for device */
extern void drm_connector_unplug_all(struct drm_device *dev); extern void drm_connector_unregister_all(struct drm_device *dev);
extern int drm_bridge_add(struct drm_bridge *bridge); extern int drm_bridge_add(struct drm_bridge *bridge);
extern void drm_bridge_remove(struct drm_bridge *bridge); extern void drm_bridge_remove(struct drm_bridge *bridge);
......
...@@ -1030,8 +1030,7 @@ extern pgprot_t ttm_io_prot(uint32_t caching_flags, pgprot_t tmp); ...@@ -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; extern const struct ttm_mem_type_manager_func ttm_bo_manager_func;
#if (defined(CONFIG_AGP) || (defined(CONFIG_AGP_MODULE) && defined(MODULE))) #if IS_ENABLED(CONFIG_AGP)
#define TTM_HAS_AGP
#include <linux/agp_backend.h> #include <linux/agp_backend.h>
/** /**
......
...@@ -191,6 +191,8 @@ void vcs_remove_sysfs(int index); ...@@ -191,6 +191,8 @@ void vcs_remove_sysfs(int index);
#ifdef CONFIG_VGA_CONSOLE #ifdef CONFIG_VGA_CONSOLE
extern bool vgacon_text_force(void); extern bool vgacon_text_force(void);
#else
static inline bool vgacon_text_force(void) { return false; }
#endif #endif
#endif /* _LINUX_CONSOLE_H */ #endif /* _LINUX_CONSOLE_H */
...@@ -36,7 +36,13 @@ ...@@ -36,7 +36,13 @@
#ifndef _DRM_H_ #ifndef _DRM_H_
#define _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 <linux/types.h>
#include <asm/ioctl.h> #include <asm/ioctl.h>
...@@ -181,7 +187,7 @@ enum drm_map_type { ...@@ -181,7 +187,7 @@ enum drm_map_type {
_DRM_SHM = 2, /**< shared, cached */ _DRM_SHM = 2, /**< shared, cached */
_DRM_AGP = 3, /**< AGP/GART */ _DRM_AGP = 3, /**< AGP/GART */
_DRM_SCATTER_GATHER = 4, /**< Scatter/gather memory for PCI DMA */ _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 { ...@@ -373,7 +379,11 @@ struct drm_buf_pub {
*/ */
struct drm_buf_map { struct drm_buf_map {
int count; /**< Length of the buffer list */ int count; /**< Length of the buffer list */
#ifdef __cplusplus
void __user *virt;
#else
void __user *virtual; /**< Mmap'd area in user-virtual */ void __user *virtual; /**< Mmap'd area in user-virtual */
#endif
struct drm_buf_pub __user *list; /**< Buffer information */ struct drm_buf_pub __user *list; /**< Buffer information */
}; };
...@@ -431,7 +441,7 @@ struct drm_draw { ...@@ -431,7 +441,7 @@ struct drm_draw {
* DRM_IOCTL_UPDATE_DRAW ioctl argument type. * DRM_IOCTL_UPDATE_DRAW ioctl argument type.
*/ */
typedef enum { typedef enum {
DRM_DRAWABLE_CLIPRECTS, DRM_DRAWABLE_CLIPRECTS
} drm_drawable_info_type_t; } drm_drawable_info_type_t;
struct drm_update_draw { struct drm_update_draw {
...@@ -681,7 +691,7 @@ struct drm_prime_handle { ...@@ -681,7 +691,7 @@ struct drm_prime_handle {
__s32 fd; __s32 fd;
}; };
#include <drm/drm_mode.h> #include "drm_mode.h"
#define DRM_IOCTL_BASE 'd' #define DRM_IOCTL_BASE 'd'
#define DRM_IO(nr) _IO(DRM_IOCTL_BASE,nr) #define DRM_IO(nr) _IO(DRM_IOCTL_BASE,nr)
......
...@@ -320,6 +320,16 @@ struct drm_mode_connector_set_property { ...@@ -320,6 +320,16 @@ struct drm_mode_connector_set_property {
__u32 connector_id; __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 { struct drm_mode_obj_get_properties {
__u64 props_ptr; __u64 props_ptr;
__u64 prop_values_ptr; __u64 prop_values_ptr;
......
...@@ -115,6 +115,14 @@ enum { ...@@ -115,6 +115,14 @@ enum {
MIPI_DCS_READ_MEMORY_CONTINUE = 0x3E, MIPI_DCS_READ_MEMORY_CONTINUE = 0x3E,
MIPI_DCS_SET_TEAR_SCANLINE = 0x44, MIPI_DCS_SET_TEAR_SCANLINE = 0x44,
MIPI_DCS_GET_SCANLINE = 0x45, 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_START = 0xA1,
MIPI_DCS_READ_DDB_CONTINUE = 0xA8, MIPI_DCS_READ_DDB_CONTINUE = 0xA8,
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment