hc
2023-12-06 08f87f769b595151be1afeff53e144f543faa614
kernel/drivers/gpu/arm/bifrost/mali_kbase_gpuprops.c
....@@ -1,7 +1,7 @@
11 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
22 /*
33 *
4
- * (C) COPYRIGHT 2011-2021 ARM Limited. All rights reserved.
4
+ * (C) COPYRIGHT 2011-2022 ARM Limited. All rights reserved.
55 *
66 * This program is free software and is provided to you under the terms of the
77 * GNU General Public License version 2 as published by the Free Software
....@@ -198,7 +198,6 @@
198198 gpu_props->raw_props.mem_features = regdump.mem_features;
199199 gpu_props->raw_props.mmu_features = regdump.mmu_features;
200200 gpu_props->raw_props.l2_features = regdump.l2_features;
201
- gpu_props->raw_props.core_features = regdump.core_features;
202201
203202 gpu_props->raw_props.as_present = regdump.as_present;
204203 gpu_props->raw_props.js_present = regdump.js_present;
....@@ -312,7 +311,6 @@
312311 struct base_gpu_props * const gpu_props, struct kbase_device *kbdev)
313312 {
314313 int i;
315
- u32 gpu_id;
316314
317315 /* Populate the base_gpu_props structure */
318316 kbase_gpuprops_update_core_props_gpu_id(gpu_props);
....@@ -323,9 +321,6 @@
323321 gpu_props->core_props.gpu_available_memory_size =
324322 totalram_pages() << PAGE_SHIFT;
325323 #endif
326
-
327
- gpu_props->core_props.num_exec_engines =
328
- KBASE_UBFX32(gpu_props->raw_props.core_features, 0, 4);
329324
330325 for (i = 0; i < BASE_GPU_NUM_TEXTURE_FEATURES_REGISTERS; i++)
331326 gpu_props->core_props.texture_features[i] = gpu_props->raw_props.texture_features[i];
....@@ -365,48 +360,23 @@
365360 gpu_props->thread_props.tls_alloc =
366361 gpu_props->raw_props.thread_tls_alloc;
367362
368
- /* MIDHARC-2364 was intended for tULx.
369
- * Workaround for the incorrectly applied THREAD_FEATURES to tDUx.
370
- */
371
- gpu_id = kbdev->gpu_props.props.raw_props.gpu_id;
372
-
373363 #if MALI_USE_CSF
374364 gpu_props->thread_props.max_registers =
375
- KBASE_UBFX32(gpu_props->raw_props.thread_features,
376
- 0U, 22);
365
+ KBASE_UBFX32(gpu_props->raw_props.thread_features, 0U, 22);
377366 gpu_props->thread_props.impl_tech =
378
- KBASE_UBFX32(gpu_props->raw_props.thread_features,
379
- 22U, 2);
367
+ KBASE_UBFX32(gpu_props->raw_props.thread_features, 22U, 2);
380368 gpu_props->thread_props.max_task_queue =
381
- KBASE_UBFX32(gpu_props->raw_props.thread_features,
382
- 24U, 8);
369
+ KBASE_UBFX32(gpu_props->raw_props.thread_features, 24U, 8);
383370 gpu_props->thread_props.max_thread_group_split = 0;
384371 #else
385
- if ((gpu_id & GPU_ID2_PRODUCT_MODEL) == GPU_ID2_PRODUCT_TDUX) {
386
- gpu_props->thread_props.max_registers =
387
- KBASE_UBFX32(gpu_props->raw_props.thread_features,
388
- 0U, 22);
389
- gpu_props->thread_props.impl_tech =
390
- KBASE_UBFX32(gpu_props->raw_props.thread_features,
391
- 22U, 2);
392
- gpu_props->thread_props.max_task_queue =
393
- KBASE_UBFX32(gpu_props->raw_props.thread_features,
394
- 24U, 8);
395
- gpu_props->thread_props.max_thread_group_split = 0;
396
- } else {
397
- gpu_props->thread_props.max_registers =
398
- KBASE_UBFX32(gpu_props->raw_props.thread_features,
399
- 0U, 16);
400
- gpu_props->thread_props.max_task_queue =
401
- KBASE_UBFX32(gpu_props->raw_props.thread_features,
402
- 16U, 8);
403
- gpu_props->thread_props.max_thread_group_split =
404
- KBASE_UBFX32(gpu_props->raw_props.thread_features,
405
- 24U, 6);
406
- gpu_props->thread_props.impl_tech =
407
- KBASE_UBFX32(gpu_props->raw_props.thread_features,
408
- 30U, 2);
409
- }
372
+ gpu_props->thread_props.max_registers =
373
+ KBASE_UBFX32(gpu_props->raw_props.thread_features, 0U, 16);
374
+ gpu_props->thread_props.max_task_queue =
375
+ KBASE_UBFX32(gpu_props->raw_props.thread_features, 16U, 8);
376
+ gpu_props->thread_props.max_thread_group_split =
377
+ KBASE_UBFX32(gpu_props->raw_props.thread_features, 24U, 6);
378
+ gpu_props->thread_props.impl_tech =
379
+ KBASE_UBFX32(gpu_props->raw_props.thread_features, 30U, 2);
410380 #endif
411381
412382 /* If values are not specified, then use defaults */
....@@ -506,6 +476,21 @@
506476 if (!kbase_hw_has_feature(kbdev, BASE_HW_FEATURE_THREAD_GROUP_SPLIT))
507477 gpu_props->thread_props.max_thread_group_split = 0;
508478
479
+ /*
480
+ * The CORE_FEATURES register has different meanings depending on GPU.
481
+ * On tGOx, bits[3:0] encode num_exec_engines.
482
+ * On CSF GPUs, bits[7:0] is an enumeration that needs to be parsed,
483
+ * instead.
484
+ * GPUs like tTIx have additional fields like LSC_SIZE that are
485
+ * otherwise reserved/RAZ on older GPUs.
486
+ */
487
+ gpu_props->raw_props.core_features = regdump.core_features;
488
+
489
+#if !MALI_USE_CSF
490
+ gpu_props->core_props.num_exec_engines =
491
+ KBASE_UBFX32(gpu_props->raw_props.core_features, 0, 4);
492
+#endif
493
+
509494 return err;
510495 }
511496
....@@ -527,7 +512,7 @@
527512 static u32 l2_hash_values[ASN_HASH_COUNT] = {
528513 0,
529514 };
530
-static int num_override_l2_hash_values;
515
+static unsigned int num_override_l2_hash_values;
531516 module_param_array(l2_hash_values, uint, &num_override_l2_hash_values, 0000);
532517 MODULE_PARM_DESC(l2_hash_values, "Override L2 hash values config for testing");
533518
....@@ -581,7 +566,7 @@
581566
582567 kbdev->l2_hash_values_override = false;
583568 if (num_override_l2_hash_values) {
584
- int i;
569
+ unsigned int i;
585570
586571 kbdev->l2_hash_values_override = true;
587572 for (i = 0; i < num_override_l2_hash_values; i++)
....@@ -661,6 +646,21 @@
661646 dev_info(kbdev->dev, "Reflected L2_CONFIG is 0x%08x\n",
662647 regdump.l2_config);
663648
649
+ if (kbase_hw_has_feature(kbdev, BASE_HW_FEATURE_ASN_HASH)) {
650
+ int idx;
651
+ const bool asn_he = regdump.l2_config &
652
+ L2_CONFIG_ASN_HASH_ENABLE_MASK;
653
+#if !IS_ENABLED(CONFIG_MALI_BIFROST_NO_MALI)
654
+ if (!asn_he && kbdev->l2_hash_values_override)
655
+ dev_err(kbdev->dev,
656
+ "Failed to use requested ASN_HASH, fallback to default");
657
+#endif
658
+ for (idx = 0; idx < ASN_HASH_COUNT; idx++)
659
+ dev_info(kbdev->dev,
660
+ "%s ASN_HASH[%d] is [0x%08x]\n",
661
+ asn_he ? "Overridden" : "Default", idx,
662
+ regdump.l2_asn_hash[idx]);
663
+ }
664664
665665 /* Update gpuprops with reflected L2_FEATURES */
666666 gpu_props->raw_props.l2_features = regdump.l2_features;
....@@ -680,94 +680,102 @@
680680 #define PROP(name, member) \
681681 {KBASE_GPUPROP_ ## name, offsetof(struct base_gpu_props, member), \
682682 sizeof(((struct base_gpu_props *)0)->member)}
683
- PROP(PRODUCT_ID, core_props.product_id),
684
- PROP(VERSION_STATUS, core_props.version_status),
685
- PROP(MINOR_REVISION, core_props.minor_revision),
686
- PROP(MAJOR_REVISION, core_props.major_revision),
687
- PROP(GPU_FREQ_KHZ_MAX, core_props.gpu_freq_khz_max),
688
- PROP(LOG2_PROGRAM_COUNTER_SIZE, core_props.log2_program_counter_size),
689
- PROP(TEXTURE_FEATURES_0, core_props.texture_features[0]),
690
- PROP(TEXTURE_FEATURES_1, core_props.texture_features[1]),
691
- PROP(TEXTURE_FEATURES_2, core_props.texture_features[2]),
692
- PROP(TEXTURE_FEATURES_3, core_props.texture_features[3]),
693
- PROP(GPU_AVAILABLE_MEMORY_SIZE, core_props.gpu_available_memory_size),
694
- PROP(NUM_EXEC_ENGINES, core_props.num_exec_engines),
683
+ PROP(PRODUCT_ID, core_props.product_id),
684
+ PROP(VERSION_STATUS, core_props.version_status),
685
+ PROP(MINOR_REVISION, core_props.minor_revision),
686
+ PROP(MAJOR_REVISION, core_props.major_revision),
687
+ PROP(GPU_FREQ_KHZ_MAX, core_props.gpu_freq_khz_max),
688
+ PROP(LOG2_PROGRAM_COUNTER_SIZE, core_props.log2_program_counter_size),
689
+ PROP(TEXTURE_FEATURES_0, core_props.texture_features[0]),
690
+ PROP(TEXTURE_FEATURES_1, core_props.texture_features[1]),
691
+ PROP(TEXTURE_FEATURES_2, core_props.texture_features[2]),
692
+ PROP(TEXTURE_FEATURES_3, core_props.texture_features[3]),
693
+ PROP(GPU_AVAILABLE_MEMORY_SIZE, core_props.gpu_available_memory_size),
695694
696
- PROP(L2_LOG2_LINE_SIZE, l2_props.log2_line_size),
697
- PROP(L2_LOG2_CACHE_SIZE, l2_props.log2_cache_size),
698
- PROP(L2_NUM_L2_SLICES, l2_props.num_l2_slices),
695
+#if MALI_USE_CSF
696
+#define BACKWARDS_COMPAT_PROP(name, type) \
697
+ { \
698
+ KBASE_GPUPROP_##name, SIZE_MAX, sizeof(type) \
699
+ }
700
+ BACKWARDS_COMPAT_PROP(NUM_EXEC_ENGINES, u8),
701
+#else
702
+ PROP(NUM_EXEC_ENGINES, core_props.num_exec_engines),
703
+#endif
699704
700
- PROP(TILER_BIN_SIZE_BYTES, tiler_props.bin_size_bytes),
701
- PROP(TILER_MAX_ACTIVE_LEVELS, tiler_props.max_active_levels),
705
+ PROP(L2_LOG2_LINE_SIZE, l2_props.log2_line_size),
706
+ PROP(L2_LOG2_CACHE_SIZE, l2_props.log2_cache_size),
707
+ PROP(L2_NUM_L2_SLICES, l2_props.num_l2_slices),
702708
703
- PROP(MAX_THREADS, thread_props.max_threads),
704
- PROP(MAX_WORKGROUP_SIZE, thread_props.max_workgroup_size),
705
- PROP(MAX_BARRIER_SIZE, thread_props.max_barrier_size),
706
- PROP(MAX_REGISTERS, thread_props.max_registers),
707
- PROP(MAX_TASK_QUEUE, thread_props.max_task_queue),
708
- PROP(MAX_THREAD_GROUP_SPLIT, thread_props.max_thread_group_split),
709
- PROP(IMPL_TECH, thread_props.impl_tech),
710
- PROP(TLS_ALLOC, thread_props.tls_alloc),
709
+ PROP(TILER_BIN_SIZE_BYTES, tiler_props.bin_size_bytes),
710
+ PROP(TILER_MAX_ACTIVE_LEVELS, tiler_props.max_active_levels),
711711
712
- PROP(RAW_SHADER_PRESENT, raw_props.shader_present),
713
- PROP(RAW_TILER_PRESENT, raw_props.tiler_present),
714
- PROP(RAW_L2_PRESENT, raw_props.l2_present),
715
- PROP(RAW_STACK_PRESENT, raw_props.stack_present),
716
- PROP(RAW_L2_FEATURES, raw_props.l2_features),
717
- PROP(RAW_CORE_FEATURES, raw_props.core_features),
718
- PROP(RAW_MEM_FEATURES, raw_props.mem_features),
719
- PROP(RAW_MMU_FEATURES, raw_props.mmu_features),
720
- PROP(RAW_AS_PRESENT, raw_props.as_present),
721
- PROP(RAW_JS_PRESENT, raw_props.js_present),
722
- PROP(RAW_JS_FEATURES_0, raw_props.js_features[0]),
723
- PROP(RAW_JS_FEATURES_1, raw_props.js_features[1]),
724
- PROP(RAW_JS_FEATURES_2, raw_props.js_features[2]),
725
- PROP(RAW_JS_FEATURES_3, raw_props.js_features[3]),
726
- PROP(RAW_JS_FEATURES_4, raw_props.js_features[4]),
727
- PROP(RAW_JS_FEATURES_5, raw_props.js_features[5]),
728
- PROP(RAW_JS_FEATURES_6, raw_props.js_features[6]),
729
- PROP(RAW_JS_FEATURES_7, raw_props.js_features[7]),
730
- PROP(RAW_JS_FEATURES_8, raw_props.js_features[8]),
731
- PROP(RAW_JS_FEATURES_9, raw_props.js_features[9]),
732
- PROP(RAW_JS_FEATURES_10, raw_props.js_features[10]),
733
- PROP(RAW_JS_FEATURES_11, raw_props.js_features[11]),
734
- PROP(RAW_JS_FEATURES_12, raw_props.js_features[12]),
735
- PROP(RAW_JS_FEATURES_13, raw_props.js_features[13]),
736
- PROP(RAW_JS_FEATURES_14, raw_props.js_features[14]),
737
- PROP(RAW_JS_FEATURES_15, raw_props.js_features[15]),
738
- PROP(RAW_TILER_FEATURES, raw_props.tiler_features),
739
- PROP(RAW_TEXTURE_FEATURES_0, raw_props.texture_features[0]),
740
- PROP(RAW_TEXTURE_FEATURES_1, raw_props.texture_features[1]),
741
- PROP(RAW_TEXTURE_FEATURES_2, raw_props.texture_features[2]),
742
- PROP(RAW_TEXTURE_FEATURES_3, raw_props.texture_features[3]),
743
- PROP(RAW_GPU_ID, raw_props.gpu_id),
744
- PROP(RAW_THREAD_MAX_THREADS, raw_props.thread_max_threads),
745
- PROP(RAW_THREAD_MAX_WORKGROUP_SIZE,
746
- raw_props.thread_max_workgroup_size),
712
+ PROP(MAX_THREADS, thread_props.max_threads),
713
+ PROP(MAX_WORKGROUP_SIZE, thread_props.max_workgroup_size),
714
+ PROP(MAX_BARRIER_SIZE, thread_props.max_barrier_size),
715
+ PROP(MAX_REGISTERS, thread_props.max_registers),
716
+ PROP(MAX_TASK_QUEUE, thread_props.max_task_queue),
717
+ PROP(MAX_THREAD_GROUP_SPLIT, thread_props.max_thread_group_split),
718
+ PROP(IMPL_TECH, thread_props.impl_tech),
719
+ PROP(TLS_ALLOC, thread_props.tls_alloc),
720
+
721
+ PROP(RAW_SHADER_PRESENT, raw_props.shader_present),
722
+ PROP(RAW_TILER_PRESENT, raw_props.tiler_present),
723
+ PROP(RAW_L2_PRESENT, raw_props.l2_present),
724
+ PROP(RAW_STACK_PRESENT, raw_props.stack_present),
725
+ PROP(RAW_L2_FEATURES, raw_props.l2_features),
726
+ PROP(RAW_CORE_FEATURES, raw_props.core_features),
727
+ PROP(RAW_MEM_FEATURES, raw_props.mem_features),
728
+ PROP(RAW_MMU_FEATURES, raw_props.mmu_features),
729
+ PROP(RAW_AS_PRESENT, raw_props.as_present),
730
+ PROP(RAW_JS_PRESENT, raw_props.js_present),
731
+ PROP(RAW_JS_FEATURES_0, raw_props.js_features[0]),
732
+ PROP(RAW_JS_FEATURES_1, raw_props.js_features[1]),
733
+ PROP(RAW_JS_FEATURES_2, raw_props.js_features[2]),
734
+ PROP(RAW_JS_FEATURES_3, raw_props.js_features[3]),
735
+ PROP(RAW_JS_FEATURES_4, raw_props.js_features[4]),
736
+ PROP(RAW_JS_FEATURES_5, raw_props.js_features[5]),
737
+ PROP(RAW_JS_FEATURES_6, raw_props.js_features[6]),
738
+ PROP(RAW_JS_FEATURES_7, raw_props.js_features[7]),
739
+ PROP(RAW_JS_FEATURES_8, raw_props.js_features[8]),
740
+ PROP(RAW_JS_FEATURES_9, raw_props.js_features[9]),
741
+ PROP(RAW_JS_FEATURES_10, raw_props.js_features[10]),
742
+ PROP(RAW_JS_FEATURES_11, raw_props.js_features[11]),
743
+ PROP(RAW_JS_FEATURES_12, raw_props.js_features[12]),
744
+ PROP(RAW_JS_FEATURES_13, raw_props.js_features[13]),
745
+ PROP(RAW_JS_FEATURES_14, raw_props.js_features[14]),
746
+ PROP(RAW_JS_FEATURES_15, raw_props.js_features[15]),
747
+ PROP(RAW_TILER_FEATURES, raw_props.tiler_features),
748
+ PROP(RAW_TEXTURE_FEATURES_0, raw_props.texture_features[0]),
749
+ PROP(RAW_TEXTURE_FEATURES_1, raw_props.texture_features[1]),
750
+ PROP(RAW_TEXTURE_FEATURES_2, raw_props.texture_features[2]),
751
+ PROP(RAW_TEXTURE_FEATURES_3, raw_props.texture_features[3]),
752
+ PROP(RAW_GPU_ID, raw_props.gpu_id),
753
+ PROP(RAW_THREAD_MAX_THREADS, raw_props.thread_max_threads),
754
+ PROP(RAW_THREAD_MAX_WORKGROUP_SIZE, raw_props.thread_max_workgroup_size),
747755 PROP(RAW_THREAD_MAX_BARRIER_SIZE, raw_props.thread_max_barrier_size),
748
- PROP(RAW_THREAD_FEATURES, raw_props.thread_features),
749
- PROP(RAW_THREAD_TLS_ALLOC, raw_props.thread_tls_alloc),
750
- PROP(RAW_COHERENCY_MODE, raw_props.coherency_mode),
751
- PROP(RAW_GPU_FEATURES, raw_props.gpu_features),
752
- PROP(COHERENCY_NUM_GROUPS, coherency_info.num_groups),
753
- PROP(COHERENCY_NUM_CORE_GROUPS, coherency_info.num_core_groups),
754
- PROP(COHERENCY_COHERENCY, coherency_info.coherency),
755
- PROP(COHERENCY_GROUP_0, coherency_info.group[0].core_mask),
756
- PROP(COHERENCY_GROUP_1, coherency_info.group[1].core_mask),
757
- PROP(COHERENCY_GROUP_2, coherency_info.group[2].core_mask),
758
- PROP(COHERENCY_GROUP_3, coherency_info.group[3].core_mask),
759
- PROP(COHERENCY_GROUP_4, coherency_info.group[4].core_mask),
760
- PROP(COHERENCY_GROUP_5, coherency_info.group[5].core_mask),
761
- PROP(COHERENCY_GROUP_6, coherency_info.group[6].core_mask),
762
- PROP(COHERENCY_GROUP_7, coherency_info.group[7].core_mask),
763
- PROP(COHERENCY_GROUP_8, coherency_info.group[8].core_mask),
764
- PROP(COHERENCY_GROUP_9, coherency_info.group[9].core_mask),
765
- PROP(COHERENCY_GROUP_10, coherency_info.group[10].core_mask),
766
- PROP(COHERENCY_GROUP_11, coherency_info.group[11].core_mask),
767
- PROP(COHERENCY_GROUP_12, coherency_info.group[12].core_mask),
768
- PROP(COHERENCY_GROUP_13, coherency_info.group[13].core_mask),
769
- PROP(COHERENCY_GROUP_14, coherency_info.group[14].core_mask),
770
- PROP(COHERENCY_GROUP_15, coherency_info.group[15].core_mask),
756
+ PROP(RAW_THREAD_FEATURES, raw_props.thread_features),
757
+ PROP(RAW_COHERENCY_MODE, raw_props.coherency_mode),
758
+ PROP(RAW_THREAD_TLS_ALLOC, raw_props.thread_tls_alloc),
759
+ PROP(RAW_GPU_FEATURES, raw_props.gpu_features),
760
+ PROP(COHERENCY_NUM_GROUPS, coherency_info.num_groups),
761
+ PROP(COHERENCY_NUM_CORE_GROUPS, coherency_info.num_core_groups),
762
+ PROP(COHERENCY_COHERENCY, coherency_info.coherency),
763
+ PROP(COHERENCY_GROUP_0, coherency_info.group[0].core_mask),
764
+ PROP(COHERENCY_GROUP_1, coherency_info.group[1].core_mask),
765
+ PROP(COHERENCY_GROUP_2, coherency_info.group[2].core_mask),
766
+ PROP(COHERENCY_GROUP_3, coherency_info.group[3].core_mask),
767
+ PROP(COHERENCY_GROUP_4, coherency_info.group[4].core_mask),
768
+ PROP(COHERENCY_GROUP_5, coherency_info.group[5].core_mask),
769
+ PROP(COHERENCY_GROUP_6, coherency_info.group[6].core_mask),
770
+ PROP(COHERENCY_GROUP_7, coherency_info.group[7].core_mask),
771
+ PROP(COHERENCY_GROUP_8, coherency_info.group[8].core_mask),
772
+ PROP(COHERENCY_GROUP_9, coherency_info.group[9].core_mask),
773
+ PROP(COHERENCY_GROUP_10, coherency_info.group[10].core_mask),
774
+ PROP(COHERENCY_GROUP_11, coherency_info.group[11].core_mask),
775
+ PROP(COHERENCY_GROUP_12, coherency_info.group[12].core_mask),
776
+ PROP(COHERENCY_GROUP_13, coherency_info.group[13].core_mask),
777
+ PROP(COHERENCY_GROUP_14, coherency_info.group[14].core_mask),
778
+ PROP(COHERENCY_GROUP_15, coherency_info.group[15].core_mask),
771779
772780 #undef PROP
773781 };
....@@ -787,7 +795,7 @@
787795 }
788796
789797 kprops->prop_buffer_size = size;
790
- kprops->prop_buffer = kmalloc(size, GFP_KERNEL);
798
+ kprops->prop_buffer = kzalloc(size, GFP_KERNEL);
791799
792800 if (!kprops->prop_buffer) {
793801 kprops->prop_buffer_size = 0;
....@@ -804,7 +812,14 @@
804812 for (i = 0; i < count; i++) {
805813 u32 type = gpu_property_mapping[i].type;
806814 u8 type_size;
807
- void *field = ((u8 *)props) + gpu_property_mapping[i].offset;
815
+ const size_t offset = gpu_property_mapping[i].offset;
816
+ const u64 dummy_backwards_compat_value = (u64)0;
817
+ const void *field;
818
+
819
+ if (likely(offset < sizeof(struct base_gpu_props)))
820
+ field = ((const u8 *)props) + offset;
821
+ else
822
+ field = &dummy_backwards_compat_value;
808823
809824 switch (gpu_property_mapping[i].size) {
810825 case 1:
....@@ -830,16 +845,16 @@
830845
831846 switch (type_size) {
832847 case KBASE_GPUPROP_VALUE_SIZE_U8:
833
- WRITE_U8(*((u8 *)field));
848
+ WRITE_U8(*((const u8 *)field));
834849 break;
835850 case KBASE_GPUPROP_VALUE_SIZE_U16:
836
- WRITE_U16(*((u16 *)field));
851
+ WRITE_U16(*((const u16 *)field));
837852 break;
838853 case KBASE_GPUPROP_VALUE_SIZE_U32:
839
- WRITE_U32(*((u32 *)field));
854
+ WRITE_U32(*((const u32 *)field));
840855 break;
841856 case KBASE_GPUPROP_VALUE_SIZE_U64:
842
- WRITE_U64(*((u64 *)field));
857
+ WRITE_U64(*((const u64 *)field));
843858 break;
844859 default: /* Cannot be reached */
845860 WARN_ON(1);