diff --git a/drivers/gpu/msm/adreno.c b/drivers/gpu/msm/adreno.c index 839eafadf584..c5b1f38917af 100644 --- a/drivers/gpu/msm/adreno.c +++ b/drivers/gpu/msm/adreno.c @@ -2,43 +2,29 @@ /* * Copyright (c) 2002,2007-2019, The Linux Foundation. All rights reserved. */ -#include -#include -#include -#include -#include -#include #include #include #include +#include +#include +#include +#include +#include +#include #include -#include -#include - -#include "kgsl.h" -#include "kgsl_gmu_core.h" -#include "kgsl_pwrscale.h" -#include "kgsl_sharedmem.h" -#include "kgsl_iommu.h" -#include "kgsl_trace.h" -#include "adreno_llc.h" - #include "adreno.h" -#include "adreno_iommu.h" -#include "adreno_compat.h" -#include "adreno_pm4types.h" -#include "adreno_trace.h" - #include "adreno_a3xx.h" #include "adreno_a5xx.h" #include "adreno_a6xx.h" - -#include "adreno_snapshot.h" +#include "adreno_compat.h" +#include "adreno_iommu.h" +#include "adreno_llc.h" +#include "adreno_trace.h" +#include "kgsl_trace.h" /* Include the master list of GPU cores that are supported */ #include "adreno-gpulist.h" -#include "adreno_dispatch.h" static void adreno_input_work(struct work_struct *work); static unsigned int counter_delta(struct kgsl_device *device, diff --git a/drivers/gpu/msm/adreno.h b/drivers/gpu/msm/adreno.h index 7df05070945a..7fb385e271f5 100644 --- a/drivers/gpu/msm/adreno.h +++ b/drivers/gpu/msm/adreno.h @@ -5,17 +5,12 @@ #ifndef __ADRENO_H #define __ADRENO_H -#include "kgsl_device.h" -#include "kgsl_sharedmem.h" -#include "adreno_drawctxt.h" -#include "adreno_ringbuffer.h" -#include "adreno_profile.h" #include "adreno_dispatch.h" -#include "kgsl_iommu.h" +#include "adreno_drawctxt.h" #include "adreno_perfcounter.h" -#include -#include -#include "kgsl_gmu_core.h" +#include "adreno_profile.h" +#include "adreno_ringbuffer.h" +#include "kgsl_sharedmem.h" #define DEVICE_3D_NAME "kgsl-3d" #define DEVICE_3D0_NAME "kgsl-3d0" diff --git a/drivers/gpu/msm/adreno_a3xx.c b/drivers/gpu/msm/adreno_a3xx.c index 956261ccf3da..3456c14b39ad 100644 --- a/drivers/gpu/msm/adreno_a3xx.c +++ b/drivers/gpu/msm/adreno_a3xx.c @@ -3,22 +3,17 @@ * Copyright (c) 2012-2019, The Linux Foundation. All rights reserved. */ -#include -#include -#include -#include #include +#include +#include +#include -#include "kgsl.h" #include "adreno.h" -#include "kgsl_sharedmem.h" -#include "a3xx_reg.h" -#include "adreno_a3xx.h" #include "adreno_cp_parser.h" -#include "adreno_trace.h" +#include "adreno_a3xx.h" #include "adreno_pm4types.h" -#include "adreno_perfcounter.h" #include "adreno_snapshot.h" +#include "adreno_trace.h" /* * Define registers for a3xx that contain addresses used by the diff --git a/drivers/gpu/msm/adreno_a3xx_snapshot.c b/drivers/gpu/msm/adreno_a3xx_snapshot.c index 5da3020d2a85..e34be4ce0ca6 100644 --- a/drivers/gpu/msm/adreno_a3xx_snapshot.c +++ b/drivers/gpu/msm/adreno_a3xx_snapshot.c @@ -4,12 +4,11 @@ */ #include -#include "kgsl.h" + #include "adreno.h" -#include "kgsl_snapshot.h" -#include "a3xx_reg.h" -#include "adreno_snapshot.h" #include "adreno_a3xx.h" +#include "adreno_snapshot.h" +#include "kgsl_device.h" /* * Set of registers to dump for A3XX on snapshot. diff --git a/drivers/gpu/msm/adreno_a5xx.c b/drivers/gpu/msm/adreno_a5xx.c index 39d688d19ddf..920451c97fb2 100644 --- a/drivers/gpu/msm/adreno_a5xx.c +++ b/drivers/gpu/msm/adreno_a5xx.c @@ -3,24 +3,20 @@ * Copyright (c) 2014-2019, The Linux Foundation. All rights reserved. */ -#include -#include -#include -#include #include +#include +#include +#include +#include +#include +#include #include "adreno.h" -#include "a5xx_reg.h" #include "adreno_a5xx.h" -#include "adreno_cp_parser.h" -#include "adreno_trace.h" -#include "adreno_pm4types.h" -#include "adreno_perfcounter.h" -#include "adreno_ringbuffer.h" -#include "kgsl_sharedmem.h" -#include "kgsl.h" -#include "kgsl_trace.h" #include "adreno_a5xx_packets.h" +#include "adreno_pm4types.h" +#include "adreno_trace.h" +#include "kgsl_trace.h" static int critical_packet_constructed; diff --git a/drivers/gpu/msm/adreno_a5xx_preempt.c b/drivers/gpu/msm/adreno_a5xx_preempt.c index 05634eb49e07..9d603692795c 100644 --- a/drivers/gpu/msm/adreno_a5xx_preempt.c +++ b/drivers/gpu/msm/adreno_a5xx_preempt.c @@ -1,13 +1,12 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (c) 2014-2017, The Linux Foundation. All rights reserved. + * Copyright (c) 2014-2017,2019 The Linux Foundation. All rights reserved. */ #include "adreno.h" #include "adreno_a5xx.h" -#include "a5xx_reg.h" -#include "adreno_trace.h" #include "adreno_pm4types.h" +#include "adreno_trace.h" #define PREEMPT_RECORD(_field) \ offsetof(struct a5xx_cp_preemption_record, _field) diff --git a/drivers/gpu/msm/adreno_a5xx_snapshot.c b/drivers/gpu/msm/adreno_a5xx_snapshot.c index 32642cd764b4..4ef6bf88dd8b 100644 --- a/drivers/gpu/msm/adreno_a5xx_snapshot.c +++ b/drivers/gpu/msm/adreno_a5xx_snapshot.c @@ -3,13 +3,9 @@ * Copyright (c) 2015-2019, The Linux Foundation. All rights reserved. */ -#include -#include "kgsl.h" #include "adreno.h" -#include "kgsl_snapshot.h" -#include "adreno_snapshot.h" -#include "a5xx_reg.h" #include "adreno_a5xx.h" +#include "adreno_snapshot.h" enum a5xx_rbbm_debbus_id { A5XX_RBBM_DBGBUS_CP = 0x1, diff --git a/drivers/gpu/msm/adreno_a6xx.c b/drivers/gpu/msm/adreno_a6xx.c index a5c0e2ee9a3c..3fb75e1febda 100644 --- a/drivers/gpu/msm/adreno_a6xx.c +++ b/drivers/gpu/msm/adreno_a6xx.c @@ -4,23 +4,15 @@ */ #include +#include #include -#include -#include #include "adreno.h" -#include "a6xx_reg.h" #include "adreno_a6xx.h" -#include "adreno_cp_parser.h" -#include "adreno_trace.h" -#include "adreno_pm4types.h" -#include "adreno_perfcounter.h" -#include "adreno_ringbuffer.h" #include "adreno_llc.h" -#include "kgsl_sharedmem.h" -#include "kgsl.h" +#include "adreno_pm4types.h" +#include "adreno_trace.h" #include "kgsl_gmu.h" -#include "kgsl_hfi.h" #include "kgsl_trace.h" #define MIN_HBB 13 diff --git a/drivers/gpu/msm/adreno_a6xx.h b/drivers/gpu/msm/adreno_a6xx.h index 74e097bde5e7..5b90d1fb61b5 100644 --- a/drivers/gpu/msm/adreno_a6xx.h +++ b/drivers/gpu/msm/adreno_a6xx.h @@ -1,4 +1,4 @@ -/* SPDX-License-Identifier: GPL-2.0 */ +/* SPDX-License-Identifier: GPL-2.0-only */ /* * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. */ @@ -6,6 +6,8 @@ #ifndef _ADRENO_A6XX_H_ #define _ADRENO_A6XX_H_ +#include + #include "a6xx_reg.h" /** diff --git a/drivers/gpu/msm/adreno_a6xx_gmu.c b/drivers/gpu/msm/adreno_a6xx_gmu.c index 94a128030bb8..85354e3d290e 100644 --- a/drivers/gpu/msm/adreno_a6xx_gmu.c +++ b/drivers/gpu/msm/adreno_a6xx_gmu.c @@ -3,23 +3,18 @@ * Copyright (c) 2018-2019, The Linux Foundation. All rights reserved. */ +/* soc/qcom/cmd-db.h needs types.h */ #include -#include -#include #include -#include +#include +#include #include -#include "kgsl_gmu_core.h" -#include "kgsl_gmu.h" -#include "kgsl_trace.h" -#include "kgsl_snapshot.h" - #include "adreno.h" -#include "a6xx_reg.h" #include "adreno_a6xx.h" #include "adreno_snapshot.h" -#include "adreno_trace.h" +#include "kgsl_gmu.h" +#include "kgsl_trace.h" static const unsigned int a6xx_gmu_gx_registers[] = { /* GMU GX */ diff --git a/drivers/gpu/msm/adreno_a6xx_preempt.c b/drivers/gpu/msm/adreno_a6xx_preempt.c index 68a1e34b0c7a..5012f64ad679 100644 --- a/drivers/gpu/msm/adreno_a6xx_preempt.c +++ b/drivers/gpu/msm/adreno_a6xx_preempt.c @@ -1,14 +1,12 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. */ #include "adreno.h" #include "adreno_a6xx.h" -#include "a6xx_reg.h" -#include "adreno_trace.h" #include "adreno_pm4types.h" -#include "kgsl_gmu_core.h" +#include "adreno_trace.h" #define PREEMPT_RECORD(_field) \ offsetof(struct a6xx_cp_preemption_record, _field) diff --git a/drivers/gpu/msm/adreno_a6xx_rgmu.c b/drivers/gpu/msm/adreno_a6xx_rgmu.c index 874294f709a6..a52945b12fdf 100644 --- a/drivers/gpu/msm/adreno_a6xx_rgmu.c +++ b/drivers/gpu/msm/adreno_a6xx_rgmu.c @@ -2,19 +2,15 @@ /* * Copyright (c) 2018-2019, The Linux Foundation. All rights reserved. */ -#include -#include -#include -#include "kgsl_gmu_core.h" -#include "kgsl_rgmu.h" -#include "kgsl_trace.h" +#include +#include #include "adreno.h" -#include "a6xx_reg.h" #include "adreno_a6xx.h" -#include "adreno_trace.h" #include "adreno_snapshot.h" +#include "kgsl_rgmu.h" +#include "kgsl_trace.h" /* RGMU timeouts */ #define RGMU_IDLE_TIMEOUT 100 /* ms */ diff --git a/drivers/gpu/msm/adreno_a6xx_snapshot.c b/drivers/gpu/msm/adreno_a6xx_snapshot.c index 6ca841a49131..a00384866a58 100644 --- a/drivers/gpu/msm/adreno_a6xx_snapshot.c +++ b/drivers/gpu/msm/adreno_a6xx_snapshot.c @@ -3,14 +3,9 @@ * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. */ -#include -#include "kgsl.h" #include "adreno.h" -#include "kgsl_snapshot.h" -#include "adreno_snapshot.h" -#include "a6xx_reg.h" #include "adreno_a6xx.h" -#include "kgsl_gmu_core.h" +#include "adreno_snapshot.h" #define A6XX_NUM_CTXTS 2 #define A6XX_NUM_AXI_ARB_BLOCKS 2 diff --git a/drivers/gpu/msm/adreno_compat.c b/drivers/gpu/msm/adreno_compat.c index 48b707779a62..d0be2708ae3b 100644 --- a/drivers/gpu/msm/adreno_compat.c +++ b/drivers/gpu/msm/adreno_compat.c @@ -2,14 +2,10 @@ /* * Copyright (c) 2013-2019, The Linux Foundation. All rights reserved. */ -#include -#include - -#include "kgsl.h" -#include "kgsl_compat.h" #include "adreno.h" #include "adreno_compat.h" +#include "kgsl_compat.h" int adreno_getproperty_compat(struct kgsl_device *device, struct kgsl_device_getproperty *param) diff --git a/drivers/gpu/msm/adreno_compat.h b/drivers/gpu/msm/adreno_compat.h index eb6e2ea6f723..ba4f00f4b89a 100644 --- a/drivers/gpu/msm/adreno_compat.h +++ b/drivers/gpu/msm/adreno_compat.h @@ -6,9 +6,9 @@ #define __ADRENO_COMPAT_H #ifdef CONFIG_COMPAT -#include -#include "kgsl.h" -#include "kgsl_device.h" + +struct kgsl_device; +struct kgsl_device_private; int adreno_getproperty_compat(struct kgsl_device *device, struct kgsl_device_getproperty *param); diff --git a/drivers/gpu/msm/adreno_coresight.c b/drivers/gpu/msm/adreno_coresight.c index dbad93d3e9ac..5a4d93545c23 100644 --- a/drivers/gpu/msm/adreno_coresight.c +++ b/drivers/gpu/msm/adreno_coresight.c @@ -3,10 +3,11 @@ * Copyright (c) 2013-2019, The Linux Foundation. All rights reserved. */ -#include #include +#include #include "adreno.h" + #define TO_ADRENO_CORESIGHT_ATTR(_attr) \ container_of(_attr, struct adreno_coresight_attr, attr) diff --git a/drivers/gpu/msm/adreno_cp_parser.c b/drivers/gpu/msm/adreno_cp_parser.c index f7951c1296ca..d47bca39d969 100644 --- a/drivers/gpu/msm/adreno_cp_parser.c +++ b/drivers/gpu/msm/adreno_cp_parser.c @@ -3,14 +3,12 @@ * Copyright (c) 2013-2019, The Linux Foundation. All rights reserved. */ -#include "kgsl.h" -#include "kgsl_sharedmem.h" -#include "kgsl_snapshot.h" +#include #include "adreno.h" -#include "adreno_pm4types.h" -#include "a3xx_reg.h" #include "adreno_cp_parser.h" +#include "adreno_pm4types.h" +#include "adreno_snapshot.h" #define MAX_IB_OBJS 1000 #define NUM_SET_DRAW_GROUPS 32 diff --git a/drivers/gpu/msm/adreno_debugfs.c b/drivers/gpu/msm/adreno_debugfs.c index 32ae6412c78a..bc324385af0d 100644 --- a/drivers/gpu/msm/adreno_debugfs.c +++ b/drivers/gpu/msm/adreno_debugfs.c @@ -1,17 +1,12 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (c) 2002,2008-2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2002,2008-2019, The Linux Foundation. All rights reserved. */ -#include -#include #include -#include -#include +#include -#include "kgsl.h" #include "adreno.h" -#include "kgsl_sync.h" static int _isdb_set(void *data, u64 val) { diff --git a/drivers/gpu/msm/adreno_dispatch.c b/drivers/gpu/msm/adreno_dispatch.c index a7da9458cb24..3da2bb68a9f0 100644 --- a/drivers/gpu/msm/adreno_dispatch.c +++ b/drivers/gpu/msm/adreno_dispatch.c @@ -1,20 +1,12 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (c) 2013-2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2013-2019, The Linux Foundation. All rights reserved. */ -#include -#include -#include -#include -#include +#include -#include "kgsl.h" -#include "kgsl_sharedmem.h" #include "adreno.h" -#include "adreno_ringbuffer.h" #include "adreno_trace.h" -#include "kgsl_sharedmem.h" #define DRAWQUEUE_NEXT(_i, _s) (((_i) + 1) % (_s)) diff --git a/drivers/gpu/msm/adreno_dispatch.h b/drivers/gpu/msm/adreno_dispatch.h index de2e538423dc..fca4a1597dc9 100644 --- a/drivers/gpu/msm/adreno_dispatch.h +++ b/drivers/gpu/msm/adreno_dispatch.h @@ -1,11 +1,14 @@ -/* SPDX-License-Identifier: GPL-2.0 */ +/* SPDX-License-Identifier: GPL-2.0-only */ /* - * Copyright (c) 2008-2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2008-2019, The Linux Foundation. All rights reserved. */ #ifndef ____ADRENO_DISPATCHER_H #define ____ADRENO_DISPATCHER_H +#include +#include + extern unsigned int adreno_drawobj_timeout; /* @@ -68,6 +71,12 @@ enum adreno_dispatcher_flags { ADRENO_DISPATCHER_ACTIVE = 1, }; +struct adreno_device; +struct adreno_context; +struct kgsl_context; +struct kgsl_device; +struct kgsl_device_private; + void adreno_dispatcher_start(struct kgsl_device *device); void adreno_dispatcher_halt(struct kgsl_device *device); void adreno_dispatcher_unhalt(struct kgsl_device *device); @@ -78,6 +87,8 @@ void adreno_dispatcher_irq_fault(struct adreno_device *adreno_dev); void adreno_dispatcher_stop(struct adreno_device *adreno_dev); void adreno_dispatcher_stop_fault_timer(struct kgsl_device *device); +struct kgsl_drawobj; + int adreno_dispatcher_queue_cmds(struct kgsl_device_private *dev_priv, struct kgsl_context *context, struct kgsl_drawobj *drawobj[], uint32_t count, uint32_t *timestamp); diff --git a/drivers/gpu/msm/adreno_drawctxt.c b/drivers/gpu/msm/adreno_drawctxt.c index 40395bf7f957..1132a6ad20cd 100644 --- a/drivers/gpu/msm/adreno_drawctxt.c +++ b/drivers/gpu/msm/adreno_drawctxt.c @@ -3,14 +3,10 @@ * Copyright (c) 2002,2007-2019, The Linux Foundation. All rights reserved. */ -#include -#include -#include #include -#include "kgsl.h" -#include "kgsl_sharedmem.h" #include "adreno.h" +#include "adreno_iommu.h" #include "adreno_trace.h" static void wait_callback(struct kgsl_device *device, diff --git a/drivers/gpu/msm/adreno_drawctxt.h b/drivers/gpu/msm/adreno_drawctxt.h index 50df8729787d..436c5a27b935 100644 --- a/drivers/gpu/msm/adreno_drawctxt.h +++ b/drivers/gpu/msm/adreno_drawctxt.h @@ -1,10 +1,14 @@ -/* SPDX-License-Identifier: GPL-2.0 */ +/* SPDX-License-Identifier: GPL-2.0-only */ /* * Copyright (c) 2002,2007-2019, The Linux Foundation. All rights reserved. */ #ifndef __ADRENO_DRAWCTXT_H #define __ADRENO_DRAWCTXT_H +#include + +#include "kgsl_device.h" + struct adreno_context_type { unsigned int type; const char *str; @@ -16,7 +20,6 @@ struct adreno_context_type { struct kgsl_device; struct adreno_device; struct kgsl_device_private; -struct kgsl_context; /** * struct adreno_context - Adreno GPU draw context diff --git a/drivers/gpu/msm/adreno_ioctl.c b/drivers/gpu/msm/adreno_ioctl.c index 116f0f9c4673..126424485454 100644 --- a/drivers/gpu/msm/adreno_ioctl.c +++ b/drivers/gpu/msm/adreno_ioctl.c @@ -1,10 +1,10 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (c) 2002,2007-2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2002,2007-2019, The Linux Foundation. All rights reserved. */ -#include -#include "kgsl_device.h" +#include + #include "adreno.h" #include "adreno_a5xx.h" diff --git a/drivers/gpu/msm/adreno_iommu.c b/drivers/gpu/msm/adreno_iommu.c index 523de9be7233..6463881ed486 100644 --- a/drivers/gpu/msm/adreno_iommu.c +++ b/drivers/gpu/msm/adreno_iommu.c @@ -2,9 +2,12 @@ /* * Copyright (c) 2002,2007-2019, The Linux Foundation. All rights reserved. */ -#include "adreno.h" -#include "kgsl_sharedmem.h" + +#include + #include "a3xx_reg.h" +#include "adreno.h" +#include "adreno_iommu.h" #include "adreno_pm4types.h" /* diff --git a/drivers/gpu/msm/adreno_llc.h b/drivers/gpu/msm/adreno_llc.h index 5c8279adff6d..9bedf5f09308 100644 --- a/drivers/gpu/msm/adreno_llc.h +++ b/drivers/gpu/msm/adreno_llc.h @@ -1,13 +1,14 @@ -/* SPDX-License-Identifier: GPL-2.0 */ +/* SPDX-License-Identifier: GPL-2.0-only */ /* * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. */ #ifndef __ADRENO_LLC_H #define __ADRENO_LLC_H -#include "adreno.h" #include +#include "adreno.h" + #ifdef CONFIG_QCOM_LLCC static inline bool adreno_llc_supported(void) diff --git a/drivers/gpu/msm/adreno_perfcounter.c b/drivers/gpu/msm/adreno_perfcounter.c index 9dab3b6316cc..7842dd93503c 100644 --- a/drivers/gpu/msm/adreno_perfcounter.c +++ b/drivers/gpu/msm/adreno_perfcounter.c @@ -2,14 +2,13 @@ /* * Copyright (c) 2002,2007-2019, The Linux Foundation. All rights reserved. */ -#include -#include -#include "kgsl.h" +#include + +#include "a5xx_reg.h" #include "adreno.h" #include "adreno_perfcounter.h" #include "adreno_pm4types.h" -#include "a5xx_reg.h" /* Bit flag for RBMM_PERFCTR_CTL */ #define RBBM_PERFCTR_CTL_ENABLE 0x00000001 diff --git a/drivers/gpu/msm/adreno_perfcounter.h b/drivers/gpu/msm/adreno_perfcounter.h index 2fa556ebd187..273c5aa20976 100644 --- a/drivers/gpu/msm/adreno_perfcounter.h +++ b/drivers/gpu/msm/adreno_perfcounter.h @@ -1,12 +1,10 @@ -/* SPDX-License-Identifier: GPL-2.0 */ +/* SPDX-License-Identifier: GPL-2.0-only */ /* - * Copyright (c) 2008-2015, 2017 The Linux Foundation. All rights reserved. + * Copyright (c) 2008-2015,2017,2019 The Linux Foundation. All rights reserved. */ #ifndef __ADRENO_PERFCOUNTER_H #define __ADRENO_PERFCOUNTER_H -#include "adreno.h" - struct adreno_device; /* ADRENO_PERFCOUNTERS - Given an adreno device, return the perfcounters list */ diff --git a/drivers/gpu/msm/adreno_profile.c b/drivers/gpu/msm/adreno_profile.c index ccb20c0ae6b2..be542b7e069e 100644 --- a/drivers/gpu/msm/adreno_profile.c +++ b/drivers/gpu/msm/adreno_profile.c @@ -1,20 +1,14 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (c) 2013-2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2013-2019, The Linux Foundation. All rights reserved. */ -#include -#include + #include -#include -#include -#include -#include #include #include #include "adreno.h" #include "adreno_profile.h" -#include "kgsl_sharedmem.h" #include "adreno_pm4types.h" #define ASSIGNS_STR_FORMAT "%.8s:%u " diff --git a/drivers/gpu/msm/adreno_profile.h b/drivers/gpu/msm/adreno_profile.h index 92340e6441a5..8994a4344c70 100644 --- a/drivers/gpu/msm/adreno_profile.h +++ b/drivers/gpu/msm/adreno_profile.h @@ -1,10 +1,9 @@ -/* SPDX-License-Identifier: GPL-2.0 */ +/* SPDX-License-Identifier: GPL-2.0-only */ /* - * Copyright (c) 2013-2014, The Linux Foundation. All rights reserved. + * Copyright (c) 2013-2014,2019 The Linux Foundation. All rights reserved. */ #ifndef __ADRENO_PROFILE_H #define __ADRENO_PROFILE_H -#include /** * struct adreno_profile_assigns_list: linked list for assigned perf counters diff --git a/drivers/gpu/msm/adreno_ringbuffer.c b/drivers/gpu/msm/adreno_ringbuffer.c index d0ad7f0d7585..5217d4d4096a 100644 --- a/drivers/gpu/msm/adreno_ringbuffer.c +++ b/drivers/gpu/msm/adreno_ringbuffer.c @@ -2,26 +2,16 @@ /* * Copyright (c) 2002,2007-2019, The Linux Foundation. All rights reserved. */ -#include -#include + #include -#include -#include -#include - -#include "kgsl.h" -#include "kgsl_sharedmem.h" -#include "kgsl_trace.h" -#include "kgsl_pwrctrl.h" +#include +#include "a3xx_reg.h" #include "adreno.h" -#include "adreno_iommu.h" #include "adreno_pm4types.h" #include "adreno_ringbuffer.h" #include "adreno_trace.h" - -#include "a3xx_reg.h" -#include "adreno_a5xx.h" +#include "kgsl_trace.h" #define RB_HOSTPTR(_rb, _pos) \ ((unsigned int *) ((_rb)->buffer_desc.hostptr + \ diff --git a/drivers/gpu/msm/adreno_ringbuffer.h b/drivers/gpu/msm/adreno_ringbuffer.h index 865edeafcaa5..32186c1132d3 100644 --- a/drivers/gpu/msm/adreno_ringbuffer.h +++ b/drivers/gpu/msm/adreno_ringbuffer.h @@ -5,10 +5,6 @@ #ifndef __ADRENO_RINGBUFFER_H #define __ADRENO_RINGBUFFER_H -#include "kgsl_iommu.h" -#include "adreno_iommu.h" -#include "adreno_dispatch.h" - /* Given a ringbuffer, return the adreno device that owns it */ #define _RB_OFFSET(_id) (offsetof(struct adreno_device, ringbuffers) + \ diff --git a/drivers/gpu/msm/adreno_snapshot.c b/drivers/gpu/msm/adreno_snapshot.c index 0ba560612da7..cec826f3e435 100644 --- a/drivers/gpu/msm/adreno_snapshot.c +++ b/drivers/gpu/msm/adreno_snapshot.c @@ -1,18 +1,12 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (c) 2012-2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2012-2019, The Linux Foundation. All rights reserved. */ -#include "kgsl.h" -#include "kgsl_sharedmem.h" -#include "kgsl_snapshot.h" - #include "adreno.h" -#include "adreno_pm4types.h" -#include "a3xx_reg.h" #include "adreno_cp_parser.h" +#include "adreno_pm4types.h" #include "adreno_snapshot.h" -#include "adreno_a5xx.h" #define VPC_MEMORY_BANKS 4 diff --git a/drivers/gpu/msm/adreno_sysfs.c b/drivers/gpu/msm/adreno_sysfs.c index 5943008397e8..0e6f1f88b09c 100644 --- a/drivers/gpu/msm/adreno_sysfs.c +++ b/drivers/gpu/msm/adreno_sysfs.c @@ -4,9 +4,7 @@ */ #include -#include -#include "kgsl_device.h" #include "adreno.h" struct adreno_sysfs_attribute { diff --git a/drivers/gpu/msm/kgsl.c b/drivers/gpu/msm/kgsl.c index edb18663aea8..c14cb1185a64 100644 --- a/drivers/gpu/msm/kgsl.c +++ b/drivers/gpu/msm/kgsl.c @@ -2,42 +2,29 @@ /* * Copyright (c) 2008-2019, The Linux Foundation. All rights reserved. */ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "kgsl.h" -#include "kgsl_debugfs.h" -#include "kgsl_sharedmem.h" -#include "kgsl_drawobj.h" -#include "kgsl_device.h" -#include "kgsl_trace.h" -#include "kgsl_sync.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + #include "kgsl_compat.h" -#include "kgsl_pool.h" +#include "kgsl_debugfs.h" +#include "kgsl_device.h" +#include "kgsl_mmu.h" +#include "kgsl_sync.h" +#include "kgsl_trace.h" #ifndef arch_mmap_check #define arch_mmap_check(addr, len, flags) (0) diff --git a/drivers/gpu/msm/kgsl.h b/drivers/gpu/msm/kgsl.h index 253b8663e7b2..aeb0ecbcf242 100644 --- a/drivers/gpu/msm/kgsl.h +++ b/drivers/gpu/msm/kgsl.h @@ -5,23 +5,15 @@ #ifndef __KGSL_H #define __KGSL_H -#include -#include -#include -#include -#include -#include -#include -#include #include -#include +#include #include #include -#include -#include -#include #include +#include "kgsl_gmu_core.h" +#include "kgsl_pwrscale.h" + /* * --- kgsl drawobj flags --- * These flags are same as --- drawobj flags --- @@ -457,6 +449,12 @@ struct kgsl_mem_entry *gpumem_alloc_entry(struct kgsl_device_private *dev_priv, uint64_t size, uint64_t flags); long gpumem_free_entry(struct kgsl_mem_entry *entry); +enum kgsl_mmutype kgsl_mmu_get_mmutype(struct kgsl_device *device); +void kgsl_mmu_add_global(struct kgsl_device *device, + struct kgsl_memdesc *memdesc, const char *name); +void kgsl_mmu_remove_global(struct kgsl_device *device, + struct kgsl_memdesc *memdesc); + /* Helper functions */ int kgsl_request_irq(struct platform_device *pdev, const char *name, irq_handler_t handler, void *data); diff --git a/drivers/gpu/msm/kgsl_compat.c b/drivers/gpu/msm/kgsl_compat.c index 1ec626e1d0dd..d38ceb0355a1 100644 --- a/drivers/gpu/msm/kgsl_compat.c +++ b/drivers/gpu/msm/kgsl_compat.c @@ -1,16 +1,10 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (c) 2013-2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2013-2019, The Linux Foundation. All rights reserved. */ -#include -#include -#include -#include - -#include "kgsl.h" -#include "kgsl_compat.h" #include "kgsl_device.h" +#include "kgsl_compat.h" #include "kgsl_sync.h" static long diff --git a/drivers/gpu/msm/kgsl_compat.h b/drivers/gpu/msm/kgsl_compat.h index b33b90abd5fc..8664e1c73e6b 100644 --- a/drivers/gpu/msm/kgsl_compat.h +++ b/drivers/gpu/msm/kgsl_compat.h @@ -1,14 +1,14 @@ -/* SPDX-License-Identifier: GPL-2.0 */ +/* SPDX-License-Identifier: GPL-2.0-only */ /* - * Copyright (c) 2013-2017, The Linux Foundation. All rights reserved. + * Copyright (c) 2013-2017,2019 The Linux Foundation. All rights reserved. */ #ifndef __KGSL_COMPAT_H #define __KGSL_COMPAT_H -#ifdef CONFIG_COMPAT #include -#include "kgsl.h" -#include "kgsl_device.h" +#include + +#ifdef CONFIG_COMPAT struct kgsl_ibdesc_compat { compat_ulong_t gpuaddr; @@ -228,6 +228,9 @@ static inline compat_size_t sizet_to_compat(size_t size) return (compat_size_t)size; } +struct kgsl_device; +struct kgsl_drawobj; + int kgsl_drawobj_create_compat(struct kgsl_device *device, unsigned int flags, struct kgsl_drawobj *drawobj, void __user *cmdlist, unsigned int numcmds, void __user *synclist, diff --git a/drivers/gpu/msm/kgsl_debugfs.c b/drivers/gpu/msm/kgsl_debugfs.c index cde0f4272ae0..6ed9507e8004 100644 --- a/drivers/gpu/msm/kgsl_debugfs.c +++ b/drivers/gpu/msm/kgsl_debugfs.c @@ -1,15 +1,13 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (c) 2002,2008-2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2002,2008-2019, The Linux Foundation. All rights reserved. */ -#include #include -#include "kgsl.h" +#include "kgsl_debugfs.h" #include "kgsl_device.h" #include "kgsl_sharedmem.h" -#include "kgsl_debugfs.h" /*default log levels is error for everything*/ #define KGSL_LOG_LEVEL_MAX 7 diff --git a/drivers/gpu/msm/kgsl_device.h b/drivers/gpu/msm/kgsl_device.h index fc8ef0578bca..d8b69fbefc1a 100644 --- a/drivers/gpu/msm/kgsl_device.h +++ b/drivers/gpu/msm/kgsl_device.h @@ -5,19 +5,9 @@ #ifndef __KGSL_DEVICE_H #define __KGSL_DEVICE_H -#include -#include -#include -#include - #include "kgsl.h" -#include "kgsl_mmu.h" -#include "kgsl_pwrctrl.h" -#include "kgsl_pwrscale.h" -#include "kgsl_snapshot.h" -#include "kgsl_sharedmem.h" #include "kgsl_drawobj.h" -#include "kgsl_gmu_core.h" +#include "kgsl_mmu.h" #define KGSL_IOCTL_FUNC(_cmd, _func) \ [_IOC_NR((_cmd))] = \ diff --git a/drivers/gpu/msm/kgsl_drawobj.c b/drivers/gpu/msm/kgsl_drawobj.c index f515979c78f8..1c4a9077e1c8 100644 --- a/drivers/gpu/msm/kgsl_drawobj.c +++ b/drivers/gpu/msm/kgsl_drawobj.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (c) 2016-2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2016-2019, The Linux Foundation. All rights reserved. */ /* @@ -18,16 +18,14 @@ * goes to zero indicating no more pending events. */ -#include -#include -#include +#include -#include "kgsl.h" +#include "adreno_drawctxt.h" +#include "kgsl_compat.h" #include "kgsl_device.h" #include "kgsl_drawobj.h" #include "kgsl_sync.h" #include "kgsl_trace.h" -#include "kgsl_compat.h" /* * Define an kmem cache for the memobj & sparseobj structures since we diff --git a/drivers/gpu/msm/kgsl_drawobj.h b/drivers/gpu/msm/kgsl_drawobj.h index b58dff910c53..7f3dd2624a5f 100644 --- a/drivers/gpu/msm/kgsl_drawobj.h +++ b/drivers/gpu/msm/kgsl_drawobj.h @@ -1,4 +1,4 @@ -/* SPDX-License-Identifier: GPL-2.0 */ +/* SPDX-License-Identifier: GPL-2.0-only */ /* * Copyright (c) 2016-2019, The Linux Foundation. All rights reserved. */ @@ -6,6 +6,8 @@ #ifndef __KGSL_DRAWOBJ_H #define __KGSL_DRAWOBJ_H +#include + #define DRAWOBJ(obj) (&obj->base) #define SYNCOBJ(obj) \ container_of(obj, struct kgsl_drawobj_sync, base) @@ -172,6 +174,9 @@ enum kgsl_drawobj_cmd_priv { CMDOBJ_PROFILE, }; +struct kgsl_ibdesc; +struct kgsl_cmd_syncpoint; + struct kgsl_drawobj_cmd *kgsl_drawobj_cmd_create(struct kgsl_device *device, struct kgsl_context *context, unsigned int flags, unsigned int type); diff --git a/drivers/gpu/msm/kgsl_events.c b/drivers/gpu/msm/kgsl_events.c index d3e36addeebc..7ee8e4fa8eab 100644 --- a/drivers/gpu/msm/kgsl_events.c +++ b/drivers/gpu/msm/kgsl_events.c @@ -1,15 +1,12 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (c) 2011-2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2011-2019, The Linux Foundation. All rights reserved. */ -#include -#include -#include #include -#include "kgsl_device.h" #include "kgsl_debugfs.h" +#include "kgsl_device.h" #include "kgsl_trace.h" /* diff --git a/drivers/gpu/msm/kgsl_gmu.c b/drivers/gpu/msm/kgsl_gmu.c index 5b2136c40604..becd85b0ce8b 100644 --- a/drivers/gpu/msm/kgsl_gmu.c +++ b/drivers/gpu/msm/kgsl_gmu.c @@ -2,22 +2,21 @@ /* * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. */ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "adreno.h" #include "kgsl_device.h" #include "kgsl_gmu.h" -#include "kgsl_hfi.h" -#include "adreno.h" #undef MODULE_PARAM_PREFIX #define MODULE_PARAM_PREFIX "kgsl." diff --git a/drivers/gpu/msm/kgsl_gmu.h b/drivers/gpu/msm/kgsl_gmu.h index e57a844947ca..849680e2d8f7 100644 --- a/drivers/gpu/msm/kgsl_gmu.h +++ b/drivers/gpu/msm/kgsl_gmu.h @@ -1,13 +1,11 @@ -/* SPDX-License-Identifier: GPL-2.0 */ +/* SPDX-License-Identifier: GPL-2.0-only */ /* * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. */ #ifndef __KGSL_GMU_H #define __KGSL_GMU_H -#include #include "kgsl_gmu_core.h" -#include #include "kgsl_hfi.h" #define MAX_GMUFW_SIZE 0x8000 /* in bytes */ diff --git a/drivers/gpu/msm/kgsl_gmu_core.c b/drivers/gpu/msm/kgsl_gmu_core.c index fed8a5b33e87..bf526c0c99df 100644 --- a/drivers/gpu/msm/kgsl_gmu_core.c +++ b/drivers/gpu/msm/kgsl_gmu_core.c @@ -1,14 +1,14 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (c) 2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2018-2019, The Linux Foundation. All rights reserved. */ -#include -#include +#include + +#include "adreno.h" #include "kgsl_device.h" #include "kgsl_gmu_core.h" #include "kgsl_trace.h" -#include "adreno.h" #undef MODULE_PARAM_PREFIX #define MODULE_PARAM_PREFIX "kgsl_gmu." diff --git a/drivers/gpu/msm/kgsl_gmu_core.h b/drivers/gpu/msm/kgsl_gmu_core.h index 97e895289e4d..c6c022160577 100644 --- a/drivers/gpu/msm/kgsl_gmu_core.h +++ b/drivers/gpu/msm/kgsl_gmu_core.h @@ -1,6 +1,6 @@ -/* SPDX-License-Identifier: GPL-2.0 */ +/* SPDX-License-Identifier: GPL-2.0-only */ /* - * Copyright (c) 2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2018-2019, The Linux Foundation. All rights reserved. */ #ifndef __KGSL_GMU_CORE_H #define __KGSL_GMU_CORE_H @@ -117,6 +117,7 @@ static const char * const gpu_idle_level_names[] = { #define FENCE_STATUS_WRITEDROPPED0_MASK 0x1 #define FENCE_STATUS_WRITEDROPPED1_MASK 0x2 +struct device_node; struct kgsl_device; struct kgsl_snapshot; diff --git a/drivers/gpu/msm/kgsl_hfi.c b/drivers/gpu/msm/kgsl_hfi.c index 08524da90a3b..c0dad3d3743e 100644 --- a/drivers/gpu/msm/kgsl_hfi.c +++ b/drivers/gpu/msm/kgsl_hfi.c @@ -3,14 +3,14 @@ * Copyright (c) 2018-2019, The Linux Foundation. All rights reserved. */ -#include "kgsl_device.h" -#include "kgsl_hfi.h" -#include "kgsl_gmu.h" -#include "kgsl_trace.h" -#include "kgsl_pwrctrl.h" +#include #include "adreno.h" #include "adreno_a6xx.h" +#include "kgsl_device.h" +#include "kgsl_gmu.h" +#include "kgsl_hfi.h" +#include "kgsl_trace.h" #define HFI_QUEUE_OFFSET(i) \ (ALIGN(sizeof(struct hfi_queue_table), SZ_16) + \ diff --git a/drivers/gpu/msm/kgsl_hfi.h b/drivers/gpu/msm/kgsl_hfi.h index cdc874ac14c9..472fd26614fe 100644 --- a/drivers/gpu/msm/kgsl_hfi.h +++ b/drivers/gpu/msm/kgsl_hfi.h @@ -1,12 +1,10 @@ -/* SPDX-License-Identifier: GPL-2.0 */ +/* SPDX-License-Identifier: GPL-2.0-only */ /* * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. */ #ifndef __KGSL_HFI_H #define __KGSL_HFI_H -#include - #define HFI_QUEUE_SIZE SZ_4K /* bytes, must be base 4dw */ #define MAX_RCVD_PAYLOAD_SIZE 16 /* dwords */ #define MAX_RCVD_SIZE (MAX_RCVD_PAYLOAD_SIZE + 3) /* dwords */ diff --git a/drivers/gpu/msm/kgsl_ioctl.c b/drivers/gpu/msm/kgsl_ioctl.c index acacfa9e7da9..8df9166bec50 100644 --- a/drivers/gpu/msm/kgsl_ioctl.c +++ b/drivers/gpu/msm/kgsl_ioctl.c @@ -1,12 +1,8 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (c) 2008-2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2008-2019, The Linux Foundation. All rights reserved. */ -#include -#include -#include -#include #include "kgsl_device.h" #include "kgsl_sync.h" diff --git a/drivers/gpu/msm/kgsl_iommu.c b/drivers/gpu/msm/kgsl_iommu.c index 5c703ea34da7..9cbcbfe26531 100644 --- a/drivers/gpu/msm/kgsl_iommu.c +++ b/drivers/gpu/msm/kgsl_iommu.c @@ -2,29 +2,21 @@ /* * Copyright (c) 2011-2019, The Linux Foundation. All rights reserved. */ -#include -#include -#include -#include -#include -#include + +#include #include -#include -#include #include +#include #include #include -#include -#include "kgsl.h" -#include "kgsl_device.h" -#include "kgsl_mmu.h" -#include "kgsl_sharedmem.h" -#include "kgsl_iommu.h" -#include "adreno_pm4types.h" #include "adreno.h" -#include "kgsl_trace.h" +#include "kgsl_device.h" +#include "kgsl_iommu.h" +#include "kgsl_mmu.h" #include "kgsl_pwrctrl.h" +#include "kgsl_sharedmem.h" +#include "kgsl_trace.h" #define _IOMMU_PRIV(_mmu) (&((_mmu)->priv.iommu)) diff --git a/drivers/gpu/msm/kgsl_iommu.h b/drivers/gpu/msm/kgsl_iommu.h index 3928cab3eaf9..e02df397b9b9 100644 --- a/drivers/gpu/msm/kgsl_iommu.h +++ b/drivers/gpu/msm/kgsl_iommu.h @@ -5,8 +5,7 @@ #ifndef __KGSL_IOMMU_H #define __KGSL_IOMMU_H -#include -#include "kgsl.h" +#include "kgsl_mmu.h" /* * These defines control the address range for allocations that diff --git a/drivers/gpu/msm/kgsl_mmu.c b/drivers/gpu/msm/kgsl_mmu.c index b68844a08c4b..df9fe39e98e6 100644 --- a/drivers/gpu/msm/kgsl_mmu.c +++ b/drivers/gpu/msm/kgsl_mmu.c @@ -1,19 +1,12 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (c) 2002,2007-2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2002,2007-2019, The Linux Foundation. All rights reserved. */ -#include -#include -#include -#include -#include -#include -#include -#include -#include "kgsl.h" -#include "kgsl_mmu.h" +#include + #include "kgsl_device.h" +#include "kgsl_mmu.h" #include "kgsl_sharedmem.h" static void pagetable_remove_sysfs_objects(struct kgsl_pagetable *pagetable); diff --git a/drivers/gpu/msm/kgsl_mmu.h b/drivers/gpu/msm/kgsl_mmu.h index 47f6663f0243..ae5032b7b2a6 100644 --- a/drivers/gpu/msm/kgsl_mmu.h +++ b/drivers/gpu/msm/kgsl_mmu.h @@ -5,6 +5,8 @@ #ifndef __KGSL_MMU_H #define __KGSL_MMU_H +#include + #include "kgsl_iommu.h" /* Identifier for the global page table */ @@ -186,7 +188,6 @@ void kgsl_mmu_put_gpuaddr(struct kgsl_memdesc *memdesc); unsigned int kgsl_virtaddr_to_physaddr(void *virtaddr); unsigned int kgsl_mmu_log_fault_addr(struct kgsl_mmu *mmu, u64 ttbr0, uint64_t addr); -enum kgsl_mmutype kgsl_mmu_get_mmutype(struct kgsl_device *device); bool kgsl_mmu_gpuaddr_in_range(struct kgsl_pagetable *pt, uint64_t gpuaddr); int kgsl_mmu_get_region(struct kgsl_pagetable *pagetable, @@ -196,11 +197,6 @@ int kgsl_mmu_find_region(struct kgsl_pagetable *pagetable, uint64_t region_start, uint64_t region_end, uint64_t *gpuaddr, uint64_t size, unsigned int align); -void kgsl_mmu_add_global(struct kgsl_device *device, - struct kgsl_memdesc *memdesc, const char *name); -void kgsl_mmu_remove_global(struct kgsl_device *device, - struct kgsl_memdesc *memdesc); - struct kgsl_pagetable *kgsl_mmu_get_pt_from_ptname(struct kgsl_mmu *mmu, int ptname); void kgsl_mmu_close(struct kgsl_device *device); diff --git a/drivers/gpu/msm/kgsl_pool.c b/drivers/gpu/msm/kgsl_pool.c index 441fa331da1e..dd1a3f3183b1 100644 --- a/drivers/gpu/msm/kgsl_pool.c +++ b/drivers/gpu/msm/kgsl_pool.c @@ -1,17 +1,16 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (c) 2016-2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2016-2019, The Linux Foundation. All rights reserved. */ -#include #include -#include #include -#include +#include +#include -#include "kgsl.h" #include "kgsl_device.h" #include "kgsl_pool.h" +#include "kgsl_sharedmem.h" #define KGSL_MAX_POOLS 4 #define KGSL_MAX_POOL_ORDER 8 @@ -283,6 +282,22 @@ static int kgsl_pool_get_retry_order(unsigned int order) return 0; } +static unsigned int kgsl_gfp_mask(unsigned int page_order) +{ + unsigned int gfp_mask = __GFP_HIGHMEM; + + if (page_order > 0) { + gfp_mask |= __GFP_COMP | __GFP_NORETRY | __GFP_NOWARN; + gfp_mask &= ~__GFP_RECLAIM; + } else + gfp_mask |= GFP_KERNEL; + + if (kgsl_sharedmem_get_noretry()) + gfp_mask |= __GFP_NORETRY | __GFP_NOWARN; + + return gfp_mask; +} + /** * kgsl_pool_alloc_page() - Allocate a page of requested size * @page_size: Size of the page to be allocated diff --git a/drivers/gpu/msm/kgsl_pool.h b/drivers/gpu/msm/kgsl_pool.h index 393a4d86a432..1bfa3233a654 100644 --- a/drivers/gpu/msm/kgsl_pool.h +++ b/drivers/gpu/msm/kgsl_pool.h @@ -1,30 +1,10 @@ -/* SPDX-License-Identifier: GPL-2.0 */ +/* SPDX-License-Identifier: GPL-2.0-only */ /* - * Copyright (c) 2016-2017, The Linux Foundation. All rights reserved. + * Copyright (c) 2016-2017,2019 The Linux Foundation. All rights reserved. */ #ifndef __KGSL_POOL_H #define __KGSL_POOL_H -#include -#include "kgsl_sharedmem.h" - -static inline unsigned int -kgsl_gfp_mask(unsigned int page_order) -{ - unsigned int gfp_mask = __GFP_HIGHMEM; - - if (page_order > 0) { - gfp_mask |= __GFP_COMP | __GFP_NORETRY | __GFP_NOWARN; - gfp_mask &= ~__GFP_RECLAIM; - } else - gfp_mask |= GFP_KERNEL; - - if (kgsl_sharedmem_get_noretry()) - gfp_mask |= __GFP_NORETRY | __GFP_NOWARN; - - return gfp_mask; -} - void kgsl_pool_free_sgt(struct sg_table *sgt); void kgsl_pool_free_pages(struct page **pages, unsigned int page_count); void kgsl_init_page_pools(struct platform_device *pdev); diff --git a/drivers/gpu/msm/kgsl_pwrctrl.c b/drivers/gpu/msm/kgsl_pwrctrl.c index 23586d01224c..f29373b95484 100644 --- a/drivers/gpu/msm/kgsl_pwrctrl.c +++ b/drivers/gpu/msm/kgsl_pwrctrl.c @@ -3,23 +3,18 @@ * Copyright (c) 2010-2019, The Linux Foundation. All rights reserved. */ -#include -#include -#include -#include #include #include -#include -#include -#include +#include #include +#include +#include +#include #include -#include "kgsl.h" -#include "kgsl_pwrscale.h" #include "kgsl_device.h" +#include "kgsl_pwrscale.h" #include "kgsl_trace.h" -#include "kgsl_gmu_core.h" #define KGSL_PWRFLAGS_POWER_ON 0 #define KGSL_PWRFLAGS_CLK_ON 1 diff --git a/drivers/gpu/msm/kgsl_pwrctrl.h b/drivers/gpu/msm/kgsl_pwrctrl.h index 6b6a52f6b268..85a93c621e87 100644 --- a/drivers/gpu/msm/kgsl_pwrctrl.h +++ b/drivers/gpu/msm/kgsl_pwrctrl.h @@ -5,6 +5,7 @@ #ifndef __KGSL_PWRCTRL_H #define __KGSL_PWRCTRL_H +#include #include /***************************************************************************** diff --git a/drivers/gpu/msm/kgsl_pwrscale.c b/drivers/gpu/msm/kgsl_pwrscale.c index 7cddb37f0dd5..58187cbe471a 100644 --- a/drivers/gpu/msm/kgsl_pwrscale.c +++ b/drivers/gpu/msm/kgsl_pwrscale.c @@ -3,15 +3,11 @@ * Copyright (c) 2010-2019, The Linux Foundation. All rights reserved. */ -#include -#include -#include #include -#include +#include -#include "kgsl.h" -#include "kgsl_pwrscale.h" #include "kgsl_device.h" +#include "kgsl_pwrscale.h" #include "kgsl_trace.h" /* diff --git a/drivers/gpu/msm/kgsl_pwrscale.h b/drivers/gpu/msm/kgsl_pwrscale.h index e44b6d007601..af07d5b85a08 100644 --- a/drivers/gpu/msm/kgsl_pwrscale.h +++ b/drivers/gpu/msm/kgsl_pwrscale.h @@ -1,12 +1,11 @@ -/* SPDX-License-Identifier: GPL-2.0 */ +/* SPDX-License-Identifier: GPL-2.0-only */ /* - * Copyright (c) 2010-2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2010-2019, The Linux Foundation. All rights reserved. */ #ifndef __KGSL_PWRSCALE_H #define __KGSL_PWRSCALE_H -#include #include #include "kgsl_pwrctrl.h" diff --git a/drivers/gpu/msm/kgsl_rgmu.c b/drivers/gpu/msm/kgsl_rgmu.c index 3cff6aec46ff..9982c63140d0 100644 --- a/drivers/gpu/msm/kgsl_rgmu.c +++ b/drivers/gpu/msm/kgsl_rgmu.c @@ -1,17 +1,18 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (c) 2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2018-2019, The Linux Foundation. All rights reserved. */ -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include + +#include "adreno.h" #include "kgsl_device.h" #include "kgsl_rgmu.h" -#include "kgsl_gmu_core.h" -#include "kgsl_trace.h" -#include "adreno.h" #define RGMU_CLK_FREQ 200000000 diff --git a/drivers/gpu/msm/kgsl_sharedmem.c b/drivers/gpu/msm/kgsl_sharedmem.c index 45e1ce8cdfbb..a676a107a33d 100644 --- a/drivers/gpu/msm/kgsl_sharedmem.c +++ b/drivers/gpu/msm/kgsl_sharedmem.c @@ -3,21 +3,14 @@ * Copyright (c) 2002,2007-2019, The Linux Foundation. All rights reserved. */ -#include -#include #include -#include -#include #include -#include +#include #include #include -#include -#include "kgsl.h" -#include "kgsl_sharedmem.h" #include "kgsl_device.h" -#include "kgsl_mmu.h" +#include "kgsl_sharedmem.h" /* * The user can set this from debugfs to force failed memory allocations to @@ -45,6 +38,43 @@ struct cp2_lock_req { #define MEM_PROTECT_LOCK_ID2 0x0A #define MEM_PROTECT_LOCK_ID2_FLAT 0x11 +int kgsl_allocate_global(struct kgsl_device *device, + struct kgsl_memdesc *memdesc, uint64_t size, uint64_t flags, + unsigned int priv, const char *name) +{ + int ret; + + kgsl_memdesc_init(device, memdesc, flags); + memdesc->priv |= priv; + + if (((memdesc->priv & KGSL_MEMDESC_CONTIG) != 0) || + (kgsl_mmu_get_mmutype(device) == KGSL_MMU_TYPE_NONE)) + ret = kgsl_sharedmem_alloc_contig(device, memdesc, + (size_t) size); + else { + ret = kgsl_sharedmem_page_alloc_user(memdesc, (size_t) size); + if (ret == 0) { + if (kgsl_memdesc_map(memdesc) == NULL) { + kgsl_sharedmem_free(memdesc); + ret = -ENOMEM; + } + } + } + + if (ret == 0) + kgsl_mmu_add_global(device, memdesc, name); + + return ret; +} + +void kgsl_free_global(struct kgsl_device *device, + struct kgsl_memdesc *memdesc) +{ + kgsl_mmu_remove_global(device, memdesc); + kgsl_sharedmem_free(memdesc); +} + + /* An attribute for showing per-process memory statistics */ struct kgsl_mem_entry_attribute { struct attribute attr; diff --git a/drivers/gpu/msm/kgsl_sharedmem.h b/drivers/gpu/msm/kgsl_sharedmem.h index 2e6862c15374..d7bc8be8b647 100644 --- a/drivers/gpu/msm/kgsl_sharedmem.h +++ b/drivers/gpu/msm/kgsl_sharedmem.h @@ -6,7 +6,10 @@ #define __KGSL_SHAREDMEM_H #include +#include +#include +#include "kgsl.h" #include "kgsl_mmu.h" struct kgsl_device; @@ -259,34 +262,9 @@ kgsl_memdesc_footprint(const struct kgsl_memdesc *memdesc) * all pagetables. This is for use for device wide GPU allocations such as * ringbuffers. */ -static inline int kgsl_allocate_global(struct kgsl_device *device, +int kgsl_allocate_global(struct kgsl_device *device, struct kgsl_memdesc *memdesc, uint64_t size, uint64_t flags, - unsigned int priv, const char *name) -{ - int ret; - - kgsl_memdesc_init(device, memdesc, flags); - memdesc->priv |= priv; - - if (((memdesc->priv & KGSL_MEMDESC_CONTIG) != 0) || - (kgsl_mmu_get_mmutype(device) == KGSL_MMU_TYPE_NONE)) - ret = kgsl_sharedmem_alloc_contig(device, memdesc, - (size_t) size); - else { - ret = kgsl_sharedmem_page_alloc_user(memdesc, (size_t) size); - if (ret == 0) { - if (kgsl_memdesc_map(memdesc) == NULL) { - kgsl_sharedmem_free(memdesc); - ret = -ENOMEM; - } - } - } - - if (ret == 0) - kgsl_mmu_add_global(device, memdesc, name); - - return ret; -} + unsigned int priv, const char *name); /** * kgsl_free_global() - Free a device wide GPU allocation and remove it from the @@ -298,12 +276,7 @@ static inline int kgsl_allocate_global(struct kgsl_device *device, * Remove the specific memory descriptor from the global pagetable entry list * and free it */ -static inline void kgsl_free_global(struct kgsl_device *device, - struct kgsl_memdesc *memdesc) -{ - kgsl_mmu_remove_global(device, memdesc); - kgsl_sharedmem_free(memdesc); -} +void kgsl_free_global(struct kgsl_device *device, struct kgsl_memdesc *memdesc); void kgsl_sharedmem_set_noretry(bool val); bool kgsl_sharedmem_get_noretry(void); diff --git a/drivers/gpu/msm/kgsl_snapshot.c b/drivers/gpu/msm/kgsl_snapshot.c index e309423abfe9..ab0f7f59bdee 100644 --- a/drivers/gpu/msm/kgsl_snapshot.c +++ b/drivers/gpu/msm/kgsl_snapshot.c @@ -3,18 +3,14 @@ * Copyright (c) 2012-2019, The Linux Foundation. All rights reserved. */ -#include -#include -#include +#include +#include #include -#include -#include -#include "kgsl.h" +#include "adreno_cp_parser.h" #include "kgsl_device.h" #include "kgsl_sharedmem.h" #include "kgsl_snapshot.h" -#include "adreno_cp_parser.h" static void kgsl_snapshot_save_frozen_objs(struct work_struct *work); diff --git a/drivers/gpu/msm/kgsl_snapshot.h b/drivers/gpu/msm/kgsl_snapshot.h index 477f3aafa8ab..1fa51226f905 100644 --- a/drivers/gpu/msm/kgsl_snapshot.h +++ b/drivers/gpu/msm/kgsl_snapshot.h @@ -1,4 +1,4 @@ -/* SPDX-License-Identifier: GPL-2.0 */ +/* SPDX-License-Identifier: GPL-2.0-only */ /* * Copyright (c) 2012-2019, The Linux Foundation. All rights reserved. */ @@ -279,6 +279,9 @@ struct kgsl_snapshot_gpu_object_v2 { __u64 size; /* Size of the object (in dwords) */ } __packed; +struct kgsl_device; +struct kgsl_process_private; + void kgsl_snapshot_push_object(struct kgsl_device *device, struct kgsl_process_private *process, uint64_t gpuaddr, uint64_t dwords); diff --git a/drivers/gpu/msm/kgsl_sync.c b/drivers/gpu/msm/kgsl_sync.c index 5c1f71e086bc..38b5c88ae46a 100644 --- a/drivers/gpu/msm/kgsl_sync.c +++ b/drivers/gpu/msm/kgsl_sync.c @@ -1,16 +1,13 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (c) 2012-2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2012-2019, The Linux Foundation. All rights reserved. */ -#include #include -#include #include -#include - -#include +#include +#include "kgsl_device.h" #include "kgsl_sync.h" static void kgsl_sync_timeline_signal(struct kgsl_sync_timeline *timeline, diff --git a/drivers/gpu/msm/kgsl_sync.h b/drivers/gpu/msm/kgsl_sync.h index 8a234ef66e6f..a54baf461ae4 100644 --- a/drivers/gpu/msm/kgsl_sync.h +++ b/drivers/gpu/msm/kgsl_sync.h @@ -1,12 +1,11 @@ -/* SPDX-License-Identifier: GPL-2.0 */ +/* SPDX-License-Identifier: GPL-2.0-only */ /* - * Copyright (c) 2012-2014, 2018 The Linux Foundation. All rights reserved. + * Copyright (c) 2012-2014,2018-2019 The Linux Foundation. All rights reserved. */ #ifndef __KGSL_SYNC_H #define __KGSL_SYNC_H -#include -#include "kgsl_device.h" +#include /** * struct kgsl_sync_timeline - A sync timeline associated with a kgsl context @@ -68,6 +67,10 @@ struct kgsl_sync_fence_cb { bool (*func)(void *priv); }; +struct kgsl_device_private; +struct kgsl_drawobj_sync_event; +struct event_fence_info; +struct kgsl_process_private; struct kgsl_syncsource; #if defined(CONFIG_SYNC_FILE) diff --git a/drivers/gpu/msm/kgsl_trace.c b/drivers/gpu/msm/kgsl_trace.c index d22b7e31df0b..30a7bcbfb212 100644 --- a/drivers/gpu/msm/kgsl_trace.c +++ b/drivers/gpu/msm/kgsl_trace.c @@ -1,11 +1,10 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (c) 2011, 2013, 2015 The Linux Foundation. All rights reserved. + * Copyright (c) 2011,2013,2015,2019 The Linux Foundation. All rights reserved. */ #include -#include "kgsl.h" #include "kgsl_device.h" /* Instantiate tracepoints */ diff --git a/drivers/gpu/msm/kgsl_trace.h b/drivers/gpu/msm/kgsl_trace.h index 966f791a2b97..261658e00661 100644 --- a/drivers/gpu/msm/kgsl_trace.h +++ b/drivers/gpu/msm/kgsl_trace.h @@ -1,4 +1,4 @@ -/* SPDX-License-Identifier: GPL-2.0 */ +/* SPDX-License-Identifier: GPL-2.0-only */ /* * Copyright (c) 2011-2019, The Linux Foundation. All rights reserved. */ @@ -14,10 +14,11 @@ #define TRACE_INCLUDE_FILE kgsl_trace #include -#include "kgsl_device.h" -#include "adreno_drawctxt.h" -struct kgsl_device; +#include "kgsl.h" +#include "kgsl_drawobj.h" +#include "kgsl_sharedmem.h" + struct kgsl_ringbuffer_issueibcmds; struct kgsl_device_waittimestamp;