Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f28ad3b4 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux

* 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (42 commits)
  drm/radeon/kms/pm: switch to dynamically allocating clock mode array
  drm/radeon/kms: optimize r600_pm_profile_init
  drm/radeon/kms/pm: add a proper pm profile init function for fusion
  drm/radeon/kms: remove extraneous calls to radeon_pm_compute_clocks()
  drm/exynos: added padding to be 64-bit align.
  drm: fix kconfig unmet dependency warning
  drm: add some comments to drm_wait_vblank and drm_queue_vblank_event
  drm/radeon/benchmark: signedness bug in radeon_benchmark_move()
  drm: do not sleep on vblank while holding a mutex
  MAINTAINERS: exynos: Add EXYNOS DRM maintainer entry
  drm: try to restore previous CRTC config if mode set fails
  drm/radeon/kms: make an aux failure debug only
  drm: drop select of SLOW_WORK
  drm: serialize access to list of debugfs files
  drm/radeon/kms: fix use of vram scratch page on evergreen/ni
  drm/radeon: Make sure CS mutex is held across GPU reset.
  drm: Ensure string is null terminated.
  vmwgfx: Only allow 64x64 cursors
  vmwgfx: Initialize clip rect loop correctly in surface dirty
  vmwgfx: Close screen object system
  ...
parents 42a0ddcd 8f3f1c9a
Loading
Loading
Loading
Loading
+7 −0
Original line number Original line Diff line number Diff line
@@ -2342,6 +2342,13 @@ S: Supported
F:	drivers/gpu/drm/i915
F:	drivers/gpu/drm/i915
F:	include/drm/i915*
F:	include/drm/i915*


DRM DRIVERS FOR EXYNOS
M:	Inki Dae <inki.dae@samsung.com>
L:	dri-devel@lists.freedesktop.org
S:	Supported
F:	drivers/gpu/drm/exynos
F:	include/drm/exynos*

DSCC4 DRIVER
DSCC4 DRIVER
M:	Francois Romieu <romieu@fr.zoreil.com>
M:	Francois Romieu <romieu@fr.zoreil.com>
L:	netdev@vger.kernel.org
L:	netdev@vger.kernel.org
+4 −3
Original line number Original line Diff line number Diff line
@@ -1186,10 +1186,11 @@ static void gen6_cleanup(void)
/* Certain Gen5 chipsets require require idling the GPU before
/* Certain Gen5 chipsets require require idling the GPU before
 * unmapping anything from the GTT when VT-d is enabled.
 * unmapping anything from the GTT when VT-d is enabled.
 */
 */
extern int intel_iommu_gfx_mapped;
static inline int needs_idle_maps(void)
static inline int needs_idle_maps(void)
{
{
#ifdef CONFIG_INTEL_IOMMU
	const unsigned short gpu_devid = intel_private.pcidev->device;
	const unsigned short gpu_devid = intel_private.pcidev->device;
	extern int intel_iommu_gfx_mapped;


	/* Query intel_iommu to see if we need the workaround. Presumably that
	/* Query intel_iommu to see if we need the workaround. Presumably that
	 * was loaded first.
	 * was loaded first.
@@ -1198,7 +1199,7 @@ static inline int needs_idle_maps(void)
	     gpu_devid == PCI_DEVICE_ID_INTEL_IRONLAKE_M_IG) &&
	     gpu_devid == PCI_DEVICE_ID_INTEL_IRONLAKE_M_IG) &&
	     intel_iommu_gfx_mapped)
	     intel_iommu_gfx_mapped)
		return 1;
		return 1;

#endif
	return 0;
	return 0;
}
}


@@ -1236,7 +1237,7 @@ static int i9xx_setup(void)
		intel_private.gtt_bus_addr = reg_addr + gtt_offset;
		intel_private.gtt_bus_addr = reg_addr + gtt_offset;
	}
	}


	if (needs_idle_maps());
	if (needs_idle_maps())
		intel_private.base.do_idle_maps = 1;
		intel_private.base.do_idle_maps = 1;


	intel_i9xx_setup_flush();
	intel_i9xx_setup_flush();
+1 −1
Original line number Original line Diff line number Diff line
@@ -9,7 +9,6 @@ menuconfig DRM
	depends on (AGP || AGP=n) && !EMULATED_CMPXCHG && MMU
	depends on (AGP || AGP=n) && !EMULATED_CMPXCHG && MMU
	select I2C
	select I2C
	select I2C_ALGOBIT
	select I2C_ALGOBIT
	select SLOW_WORK
	help
	help
	  Kernel-level support for the Direct Rendering Infrastructure (DRI)
	  Kernel-level support for the Direct Rendering Infrastructure (DRI)
	  introduced in XFree86 4.0. If you say Y here, you need to select
	  introduced in XFree86 4.0. If you say Y here, you need to select
@@ -96,6 +95,7 @@ config DRM_I915
	select FB_CFB_IMAGEBLIT
	select FB_CFB_IMAGEBLIT
	# i915 depends on ACPI_VIDEO when ACPI is enabled
	# i915 depends on ACPI_VIDEO when ACPI is enabled
	# but for select to work, need to select ACPI_VIDEO's dependencies, ick
	# but for select to work, need to select ACPI_VIDEO's dependencies, ick
	select BACKLIGHT_LCD_SUPPORT if ACPI
	select BACKLIGHT_CLASS_DEVICE if ACPI
	select BACKLIGHT_CLASS_DEVICE if ACPI
	select VIDEO_OUTPUT_CONTROL if ACPI
	select VIDEO_OUTPUT_CONTROL if ACPI
	select INPUT if ACPI
	select INPUT if ACPI
+3 −1
Original line number Original line Diff line number Diff line
@@ -2118,8 +2118,10 @@ struct drm_property *drm_property_create(struct drm_device *dev, int flags,
	property->num_values = num_values;
	property->num_values = num_values;
	INIT_LIST_HEAD(&property->enum_blob_list);
	INIT_LIST_HEAD(&property->enum_blob_list);


	if (name)
	if (name) {
		strncpy(property->name, name, DRM_PROP_NAME_LEN);
		strncpy(property->name, name, DRM_PROP_NAME_LEN);
		property->name[DRM_PROP_NAME_LEN-1] = '\0';
	}


	list_add_tail(&property->head, &dev->mode_config.property_list);
	list_add_tail(&property->head, &dev->mode_config.property_list);
	return property;
	return property;
+13 −0
Original line number Original line Diff line number Diff line
@@ -484,6 +484,7 @@ int drm_crtc_helper_set_config(struct drm_mode_set *set)
	struct drm_connector *save_connectors, *connector;
	struct drm_connector *save_connectors, *connector;
	int count = 0, ro, fail = 0;
	int count = 0, ro, fail = 0;
	struct drm_crtc_helper_funcs *crtc_funcs;
	struct drm_crtc_helper_funcs *crtc_funcs;
	struct drm_mode_set save_set;
	int ret = 0;
	int ret = 0;
	int i;
	int i;


@@ -556,6 +557,12 @@ int drm_crtc_helper_set_config(struct drm_mode_set *set)
		save_connectors[count++] = *connector;
		save_connectors[count++] = *connector;
	}
	}


	save_set.crtc = set->crtc;
	save_set.mode = &set->crtc->mode;
	save_set.x = set->crtc->x;
	save_set.y = set->crtc->y;
	save_set.fb = set->crtc->fb;

	/* We should be able to check here if the fb has the same properties
	/* We should be able to check here if the fb has the same properties
	 * and then just flip_or_move it */
	 * and then just flip_or_move it */
	if (set->crtc->fb != set->fb) {
	if (set->crtc->fb != set->fb) {
@@ -721,6 +728,12 @@ fail:
		*connector = save_connectors[count++];
		*connector = save_connectors[count++];
	}
	}


	/* Try to restore the config */
	if (mode_changed &&
	    !drm_crtc_helper_set_mode(save_set.crtc, save_set.mode, save_set.x,
				      save_set.y, save_set.fb))
		DRM_ERROR("failed to restore config after modeset failure\n");

	kfree(save_connectors);
	kfree(save_connectors);
	kfree(save_encoders);
	kfree(save_encoders);
	kfree(save_crtcs);
	kfree(save_crtcs);
Loading