Commit 9a5c1586 authored by Dmitry Baryshkov's avatar Dmitry Baryshkov
Browse files

Merge remote-tracking branch 'msm/msm-fixes' into HEAD

parents 7f7a942c e0e86f25
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -155,7 +155,7 @@ config DRM_MSM_HDMI
	  Compile in support for the HDMI output MSM DRM driver. It can
	  be a primary or a secondary display on device. Note that this is used
	  only for the direct HDMI output. If the device outputs HDMI data
	  throught some kind of DSI-to-HDMI bridge, this option can be disabled.
	  through some kind of DSI-to-HDMI bridge, this option can be disabled.

config DRM_MSM_HDMI_HDCP
	bool "Enable HDMI HDCP support in MSM DRM driver"
+11 −3
Original line number Diff line number Diff line
@@ -91,7 +91,7 @@ struct a6xx_state_memobj {
static void *state_kcalloc(struct a6xx_gpu_state *a6xx_state, int nr, size_t objsize)
{
	struct a6xx_state_memobj *obj =
		kzalloc((nr * objsize) + sizeof(*obj), GFP_KERNEL);
		kvzalloc((nr * objsize) + sizeof(*obj), GFP_KERNEL);

	if (!obj)
		return NULL;
@@ -813,6 +813,9 @@ static struct msm_gpu_state_bo *a6xx_snapshot_gmu_bo(
{
	struct msm_gpu_state_bo *snapshot;

	if (!bo->size)
		return NULL;

	snapshot = state_kcalloc(a6xx_state, 1, sizeof(*snapshot));
	if (!snapshot)
		return NULL;
@@ -1040,8 +1043,13 @@ static void a6xx_gpu_state_destroy(struct kref *kref)
	if (a6xx_state->gmu_hfi)
		kvfree(a6xx_state->gmu_hfi->data);

	list_for_each_entry_safe(obj, tmp, &a6xx_state->objs, node)
		kfree(obj);
	if (a6xx_state->gmu_debug)
		kvfree(a6xx_state->gmu_debug->data);

	list_for_each_entry_safe(obj, tmp, &a6xx_state->objs, node) {
		list_del(&obj->node);
		kvfree(obj);
	}

	adreno_gpu_state_destroy(state);
	kfree(a6xx_state);
+9 −1
Original line number Diff line number Diff line
@@ -679,6 +679,9 @@ static int adreno_system_suspend(struct device *dev)
	struct msm_gpu *gpu = dev_to_gpu(dev);
	int remaining, ret;

	if (!gpu)
		return 0;

	suspend_scheduler(gpu);

	remaining = wait_event_timeout(gpu->retire_event,
@@ -700,7 +703,12 @@ static int adreno_system_suspend(struct device *dev)

static int adreno_system_resume(struct device *dev)
{
	resume_scheduler(dev_to_gpu(dev));
	struct msm_gpu *gpu = dev_to_gpu(dev);

	if (!gpu)
		return 0;

	resume_scheduler(gpu);
	return pm_runtime_force_resume(dev);
}

+6 −1
Original line number Diff line number Diff line
@@ -729,7 +729,12 @@ static char *adreno_gpu_ascii85_encode(u32 *src, size_t len)
	return buf;
}

/* len is expected to be in bytes */
/* len is expected to be in bytes
 *
 * WARNING: *ptr should be allocated with kvmalloc or friends.  It can be free'd
 * with kvfree() and replaced with a newly kvmalloc'd buffer on the first call
 * when the unencoded raw data is encoded
 */
void adreno_show_object(struct drm_printer *p, void **ptr, int len,
		bool *encoded)
{
+3 −2
Original line number Diff line number Diff line
@@ -56,7 +56,8 @@ static int mdp4_lvds_connector_get_modes(struct drm_connector *connector)
	return ret;
}

static int mdp4_lvds_connector_mode_valid(struct drm_connector *connector,
static enum drm_mode_status
mdp4_lvds_connector_mode_valid(struct drm_connector *connector,
			       struct drm_display_mode *mode)
{
	struct mdp4_lvds_connector *mdp4_lvds_connector =
Loading