Loading Documentation/devicetree/bindings/drm/msm/hdmi-display.txt +3 −32 Original line number Diff line number Diff line Loading @@ -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: Loading @@ -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>; }; }; drivers/gpu/drm/msm/Makefile +2 −2 Original line number Diff line number Diff line Loading @@ -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 \ Loading @@ -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 Loading drivers/gpu/drm/msm/adreno/a5xx_gpu.c +434 −1 File changed.Preview size limit exceeded, changes collapsed. Show changes drivers/gpu/drm/msm/adreno/adreno_gpu.c +40 −1 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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; } Loading @@ -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); } drivers/gpu/drm/msm/adreno/adreno_gpu.h +14 −2 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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" Loading Loading @@ -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) Loading Loading @@ -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 Loading
Documentation/devicetree/bindings/drm/msm/hdmi-display.txt +3 −32 Original line number Diff line number Diff line Loading @@ -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: Loading @@ -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>; }; };
drivers/gpu/drm/msm/Makefile +2 −2 Original line number Diff line number Diff line Loading @@ -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 \ Loading @@ -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 Loading
drivers/gpu/drm/msm/adreno/a5xx_gpu.c +434 −1 File changed.Preview size limit exceeded, changes collapsed. Show changes
drivers/gpu/drm/msm/adreno/adreno_gpu.c +40 −1 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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; } Loading @@ -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); }
drivers/gpu/drm/msm/adreno/adreno_gpu.h +14 −2 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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" Loading Loading @@ -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) Loading Loading @@ -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