Loading Documentation/devicetree/bindings/gpu/adreno.txt +4 −0 Original line number Diff line number Diff line Loading @@ -148,6 +148,10 @@ Optional Properties: baseAddr - base address of the gpu channels in the qdss stm memory region size - size of the gpu stm region - qcom,tsens-name: Specify the name of GPU temperature sensor. This name will be used to get the temperature from the thermal driver API. GPU Quirks: - qcom,gpu-quirk-two-pass-use-wfi: Signal the GPU to set Set TWOPASSUSEWFI bit in Loading arch/arm/boot/dts/qcom/msm8996-gpu.dtsi +1 −0 Original line number Diff line number Diff line Loading @@ -81,6 +81,7 @@ qcom,gpu-qdss-stm = <0x081c0000 0x40000>; // base addr, size qcom,tsens-name = "tsens_tz_sensor14"; /* Trace bus */ coresight-id = <300>; coresight-name = "coresight-gfx"; Loading drivers/gpu/msm/adreno.c +13 −0 Original line number Diff line number Diff line Loading @@ -2792,6 +2792,18 @@ static void adreno_regulator_disable_poll(struct kgsl_device *device) adreno_iommu_sync(device, false); } static void adreno_gpu_model(struct kgsl_device *device, char *str, size_t bufsz) { struct adreno_device *adreno_dev = ADRENO_DEVICE(device); snprintf(str, bufsz, "Adreno%d%d%dv%d", ADRENO_CHIPID_CORE(adreno_dev->chipid), ADRENO_CHIPID_MAJOR(adreno_dev->chipid), ADRENO_CHIPID_MINOR(adreno_dev->chipid), ADRENO_CHIPID_PATCH(adreno_dev->chipid) + 1); } static const struct kgsl_functable adreno_functable = { /* Mandatory functions */ .regread = adreno_regread, Loading Loading @@ -2828,6 +2840,7 @@ static const struct kgsl_functable adreno_functable = { .regulator_disable = adreno_regulator_disable, .pwrlevel_change_settings = adreno_pwrlevel_change_settings, .regulator_disable_poll = adreno_regulator_disable_poll, .gpu_model = adreno_gpu_model, }; static struct platform_driver adreno_platform_driver = { Loading drivers/gpu/msm/kgsl.h +15 −0 Original line number Diff line number Diff line Loading @@ -542,4 +542,19 @@ static inline void __user *to_user_ptr(uint64_t address) return (void __user *)(uintptr_t)address; } static inline void kgsl_gpu_sysfs_add_link(struct kobject *dst, struct kobject *src, const char *src_name, const char *dst_name) { struct kernfs_node *old; if (dst == NULL || src == NULL) return; old = sysfs_get_dirent(src->sd, src_name); if (IS_ERR_OR_NULL(old)) return; kernfs_create_link(dst->sd, dst_name, old); } #endif /* __KGSL_H */ drivers/gpu/msm/kgsl_device.h +3 −0 Original line number Diff line number Diff line Loading @@ -169,6 +169,8 @@ struct kgsl_functable { void (*pwrlevel_change_settings)(struct kgsl_device *device, unsigned int prelevel, unsigned int postlevel, bool post); void (*regulator_disable_poll)(struct kgsl_device *device); void (*gpu_model)(struct kgsl_device *device, char *str, size_t bufsz); }; struct kgsl_ioctl { Loading Loading @@ -284,6 +286,7 @@ struct kgsl_device { /* Number of active contexts seen globally for this device */ int active_context_count; struct kobject *gpu_sysfs_kobj; }; #define KGSL_MMU_DEVICE(_mmu) \ Loading Loading
Documentation/devicetree/bindings/gpu/adreno.txt +4 −0 Original line number Diff line number Diff line Loading @@ -148,6 +148,10 @@ Optional Properties: baseAddr - base address of the gpu channels in the qdss stm memory region size - size of the gpu stm region - qcom,tsens-name: Specify the name of GPU temperature sensor. This name will be used to get the temperature from the thermal driver API. GPU Quirks: - qcom,gpu-quirk-two-pass-use-wfi: Signal the GPU to set Set TWOPASSUSEWFI bit in Loading
arch/arm/boot/dts/qcom/msm8996-gpu.dtsi +1 −0 Original line number Diff line number Diff line Loading @@ -81,6 +81,7 @@ qcom,gpu-qdss-stm = <0x081c0000 0x40000>; // base addr, size qcom,tsens-name = "tsens_tz_sensor14"; /* Trace bus */ coresight-id = <300>; coresight-name = "coresight-gfx"; Loading
drivers/gpu/msm/adreno.c +13 −0 Original line number Diff line number Diff line Loading @@ -2792,6 +2792,18 @@ static void adreno_regulator_disable_poll(struct kgsl_device *device) adreno_iommu_sync(device, false); } static void adreno_gpu_model(struct kgsl_device *device, char *str, size_t bufsz) { struct adreno_device *adreno_dev = ADRENO_DEVICE(device); snprintf(str, bufsz, "Adreno%d%d%dv%d", ADRENO_CHIPID_CORE(adreno_dev->chipid), ADRENO_CHIPID_MAJOR(adreno_dev->chipid), ADRENO_CHIPID_MINOR(adreno_dev->chipid), ADRENO_CHIPID_PATCH(adreno_dev->chipid) + 1); } static const struct kgsl_functable adreno_functable = { /* Mandatory functions */ .regread = adreno_regread, Loading Loading @@ -2828,6 +2840,7 @@ static const struct kgsl_functable adreno_functable = { .regulator_disable = adreno_regulator_disable, .pwrlevel_change_settings = adreno_pwrlevel_change_settings, .regulator_disable_poll = adreno_regulator_disable_poll, .gpu_model = adreno_gpu_model, }; static struct platform_driver adreno_platform_driver = { Loading
drivers/gpu/msm/kgsl.h +15 −0 Original line number Diff line number Diff line Loading @@ -542,4 +542,19 @@ static inline void __user *to_user_ptr(uint64_t address) return (void __user *)(uintptr_t)address; } static inline void kgsl_gpu_sysfs_add_link(struct kobject *dst, struct kobject *src, const char *src_name, const char *dst_name) { struct kernfs_node *old; if (dst == NULL || src == NULL) return; old = sysfs_get_dirent(src->sd, src_name); if (IS_ERR_OR_NULL(old)) return; kernfs_create_link(dst->sd, dst_name, old); } #endif /* __KGSL_H */
drivers/gpu/msm/kgsl_device.h +3 −0 Original line number Diff line number Diff line Loading @@ -169,6 +169,8 @@ struct kgsl_functable { void (*pwrlevel_change_settings)(struct kgsl_device *device, unsigned int prelevel, unsigned int postlevel, bool post); void (*regulator_disable_poll)(struct kgsl_device *device); void (*gpu_model)(struct kgsl_device *device, char *str, size_t bufsz); }; struct kgsl_ioctl { Loading Loading @@ -284,6 +286,7 @@ struct kgsl_device { /* Number of active contexts seen globally for this device */ int active_context_count; struct kobject *gpu_sysfs_kobj; }; #define KGSL_MMU_DEVICE(_mmu) \ Loading