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

Commit fe9e3e0a authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "Merge remote-tracking branch 'origin/dev/msm-3.18-drm_kms' into msm-3.18"

parents f74de2e5 a9dd32e6
Loading
Loading
Loading
Loading
+3 −32
Original line number Diff line number Diff line
@@ -8,21 +8,8 @@ Optional properties:
- qcom,display-type: display type of this manager. It could be "primary",
  "secondary", "tertiary", etc.
- qcom,non-pluggable: Indicate if display is non pluggable.
- qcom,customize-modes: Customized modes when it's non pluggable display.
- qcom,customize-mode-id: Customized mode node.
- qcom,mode-name: Mode name.
- qcom,mode-h-active: Mode horizontal active pixels.
- qcom,mode-h-front-porch: Mode horizontal front porch in pixels.
- qcom,mode-h-pulse-width: Mode horizontal sync width in pixels.
- qcom,mode-h-back-porch: Mode horizontal back porch in pixels.
- qcom,mode-h-active-high: If mode horizontal polarity is active high.
- qcom,mode-v-active: Mode virtical active lines.
- qcom,mode-v-front-porch: Mode virtical front porch in lines.
- qcom,mode-v-pulse-width: Mode virtical sync width in lines.
- qcom,mode-v-back-porch: Mode virtical back porch in lines.
- qcom,mode-v-active-high: If mode virtical polarity is active high.
- qcom,mode-refersh-rate: Mode refresh rate in hertz.
- qcom,mode-clock-in-khz: Mode pixel clock in KHz.
- qcom,display-panel: display panel node. It shares same syntax with DSI panel
  device tree.

Example:

@@ -34,23 +21,7 @@ Example:
		label = "hdmi_display";
		qcom,display-type = "secondary";
		qcom,non-pluggable;
		qcom,customize-modes {
			qcom,customize-mode-id@0 {
				qcom,mode-name = "3840x2160@30Hz";
				qcom,mode-h-active = <3840>;
				qcom,mode-h-front-porch = <176>;
				qcom,mode-h-pulse-width = <88>;
				qcom,mode-h-back-porch = <296>;
				qcom,mode-h-active-high;
				qcom,mode-v-active = <2160>;
				qcom,mode-v-front-porch = <8>;
				qcom,mode-v-pulse-width = <10>;
				qcom,mode-v-back-porch = <72>;
				qcom,mode-v-active-high;
				qcom,mode-refersh-rate = <30>;
				qcom,mode-clock-in-khz = <297000>;
			};
		};
		qcom,display-panel = <&hdmi_customized_mode>;
	};

};
+2 −2
Original line number Diff line number Diff line
@@ -51,7 +51,6 @@ msm-y := \
	msm_gem_prime.o \
	msm_gem_submit.o \
	msm_gpu.o \
	msm_iommu.o \
	msm_smmu.o \
	msm_perf.o \
	msm_rd.o \
@@ -64,7 +63,8 @@ msm-y := \
ifneq ($(CONFIG_QCOM_KGSL),y)
msm-y += adreno/adreno_device.o \
	adreno/adreno_gpu.o \
	adreno/a5xx_gpu.o
	adreno/a5xx_gpu.o \
	adreno/adreno_perfcounter.o
endif

msm-$(CONFIG_DRM_MSM_HDCP) += hdmi/hdmi_hdcp.o
+434 −1

File changed.

Preview size limit exceeded, changes collapsed.

+40 −1
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@
 * Copyright (C) 2013 Red Hat
 * Author: Rob Clark <robdclark@gmail.com>
 *
 * Copyright (c) 2014 The Linux Foundation. All rights reserved.
 * Copyright (c) 2014,2017 The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 as published by
@@ -383,6 +383,8 @@ int adreno_gpu_init(struct drm_device *drm, struct platform_device *pdev,
		return ret;
	}

	adreno_perfcounter_start(adreno_gpu);

	return 0;
}

@@ -401,3 +403,40 @@ void adreno_gpu_cleanup(struct adreno_gpu *gpu)
		msm_gem_free_object(gpu->pfp_bo);
	msm_gpu_cleanup(&gpu->base);
}

int adreno_perfcounter_read(struct msm_gpu *gpu,
	struct drm_perfcounter_read_group __user *reads, unsigned int count)
{
	struct adreno_gpu *adreno_gpu = to_adreno_gpu(gpu);

	return adreno_perfcounter_read_group(adreno_gpu, reads, count);
}

int adreno_perfcounter_query(struct msm_gpu *gpu, unsigned int groupid,
	unsigned int __user *countables, unsigned int count,
		unsigned int *max_counters)
{
	struct adreno_gpu *adreno_gpu = to_adreno_gpu(gpu);

	return adreno_perfcounter_query_group(adreno_gpu, groupid,
		&countables, count, &max_counters);
}

int adreno_perfcounter_msm_get(struct msm_gpu *gpu, unsigned int groupid,
	unsigned int countable, unsigned int *offset, unsigned int *offset_hi,
		unsigned int flags)
{
	struct adreno_gpu *adreno_gpu = to_adreno_gpu(gpu);

	return adreno_perfcounter_get(adreno_gpu, groupid, countable,
		&offset, &offset_hi, flags);
}

int adreno_perfcounter_msm_put(struct msm_gpu *gpu, unsigned int groupid,
	unsigned int countable, unsigned int flags)
{
	struct adreno_gpu *adreno_gpu = to_adreno_gpu(gpu);

	return adreno_perfcounter_put(adreno_gpu, groupid,
		countable, flags);
}
+14 −2
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@
 * Copyright (C) 2013 Red Hat
 * Author: Rob Clark <robdclark@gmail.com>
 *
 * Copyright (c) 2014 The Linux Foundation. All rights reserved.
 * Copyright (c) 2014,2017 The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 as published by
@@ -23,7 +23,7 @@
#include <linux/firmware.h>

#include "msm_gpu.h"

#include "adreno_perfcounter.h"
#include "adreno_common.xml.h"
#include "adreno_pm4.xml.h"

@@ -228,6 +228,8 @@ struct adreno_gpu {
	 * code (a3xx_gpu.c) and stored in this common location.
	 */
	const unsigned int *reg_offsets;

	struct adreno_perfcounters *perfcounters;
};
#define to_adreno_gpu(x) container_of(x, struct adreno_gpu, base)

@@ -329,6 +331,16 @@ void adreno_idle(struct msm_gpu *gpu);
#ifdef CONFIG_DEBUG_FS
void adreno_show(struct msm_gpu *gpu, struct seq_file *m);
#endif
int adreno_perfcounter_read(struct msm_gpu *gpu,
	struct drm_perfcounter_read_group __user *reads, unsigned int count);
int adreno_perfcounter_query(struct msm_gpu *gpu, unsigned int groupid,
	unsigned int __user *countables, unsigned int count,
	unsigned int *max_counters);
int adreno_perfcounter_msm_get(struct msm_gpu *gpu, unsigned int groupid,
	unsigned int countable, unsigned int *offset, unsigned int *offset_hi,
	unsigned int flags);
int adreno_perfcounter_msm_put(struct msm_gpu *gpu, unsigned int groupid,
	unsigned int countable, unsigned int flags);
void adreno_dump_info(struct msm_gpu *gpu);
void adreno_dump(struct msm_gpu *gpu);
void adreno_wait_ring(struct msm_gpu *gpu, uint32_t ndwords);
Loading