Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'drm-for-v4.15-part2' of git://people.freedesktop.org/~airlied/linux

Pull more drm updates from Dave Airlie:
"Fixes/cleanups for rc1, non-desktop flags for VR

- remove the MSM dt-bindings file Rob managed to push in the previous
pull.

- add a property/edid quirk to denote HMD devices, I had these
hanging around for a few weeks and Keith had done some work on
them, they are fairly self contained and small, and only affect
people using HTC Vive VR headsets so far.

- amdgpu, tegra, tilcdc, fsl fixes

- some imx-drm cleanups I missed, these seemed pretty small, and no
reason to hold off.

I have one TTM regression fix (fixes bochs-vga in qemu) sitting
locally awaiting review I'll probably send that in a separate pull
request tomorrow"

* tag 'drm-for-v4.15-part2' of git://people.freedesktop.org/~airlied/linux: (33 commits)
dt-bindings: remove file that was added accidentally
drm/edid: quirk HTC vive headset as non-desktop. [v2]
drm/fb: add support for not enabling fbcon on non-desktop displays [v2]
drm: add connector info/property for non-desktop displays [v2]
drm/amdgpu: fix rmmod KCQ disable failed error
drm/amdgpu: fix kernel hang when starting VNC server
drm/amdgpu: don't skip attributes when powerplay is enabled
drm/amd/pp: fix typecast error in powerplay.
drm/tilcdc: Remove obsolete "ti,tilcdc,slave" dts binding support
drm/tegra: sor: Reimplement pad clock
Revert "drm/radeon: dont switch vt on suspend"
drm/amd/amdgpu: fix over-bound accessing in amdgpu_cs_wait_any_fence
drm/amd/powerplay: fix unfreeze level smc message for smu7
drm/amdgpu:fix memleak
drm/amdgpu:fix memleak in takedown
drm/amd/pp: fix dpm randomly failed on Vega10
drm/amdgpu: set f_mapping on exported DMA-bufs
drm/amdgpu: Properly allocate VM invalidate eng v2
drm/fsl-dcu: enable IRQ before drm_atomic_helper_resume()
drm/fsl-dcu: avoid disabling pixel clock twice on suspend
...

+281 -1399
+1 -1
Documentation/devicetree/bindings/display/imx/fsl-imx-drm.txt
··· 129 129 130 130 example: 131 131 132 - display@di0 { 132 + disp0 { 133 133 compatible = "fsl,imx-parallel-display"; 134 134 edid = [edid-data]; 135 135 interface-pix-fmt = "rgb24";
-6
drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c
··· 59 59 return false; 60 60 } 61 61 62 - tmp = bios[0x18] | (bios[0x19] << 8); 63 - if (bios[tmp + 0x14] != 0x0) { 64 - DRM_INFO("Not an x86 BIOS ROM\n"); 65 - return false; 66 - } 67 - 68 62 bios_header_start = bios[0x48] | (bios[0x49] << 8); 69 63 if (!bios_header_start) { 70 64 DRM_INFO("Can't locate bios header\n");
+5 -2
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
··· 1495 1495 memset(wait, 0, sizeof(*wait)); 1496 1496 wait->out.status = (r > 0); 1497 1497 wait->out.first_signaled = first; 1498 - /* set return value 0 to indicate success */ 1499 - r = array[first]->error; 1498 + 1499 + if (first < fence_count && array[first]) 1500 + r = array[first]->error; 1501 + else 1502 + r = 0; 1500 1503 1501 1504 err_free_fence_array: 1502 1505 for (i = 0; i < fence_count; i++)
+23 -20
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
··· 1837 1837 adev->ip_blocks[i].status.hw = false; 1838 1838 } 1839 1839 1840 + if (adev->firmware.load_type == AMDGPU_FW_LOAD_SMU) 1841 + amdgpu_ucode_fini_bo(adev); 1842 + 1840 1843 for (i = adev->num_ip_blocks - 1; i >= 0; i--) { 1841 1844 if (!adev->ip_blocks[i].status.sw) 1842 1845 continue; ··· 3264 3261 pm_pg_lock = (*pos >> 23) & 1; 3265 3262 3266 3263 if (*pos & (1ULL << 62)) { 3267 - se_bank = (*pos >> 24) & 0x3FF; 3268 - sh_bank = (*pos >> 34) & 0x3FF; 3269 - instance_bank = (*pos >> 44) & 0x3FF; 3264 + se_bank = (*pos & GENMASK_ULL(33, 24)) >> 24; 3265 + sh_bank = (*pos & GENMASK_ULL(43, 34)) >> 34; 3266 + instance_bank = (*pos & GENMASK_ULL(53, 44)) >> 44; 3270 3267 3271 3268 if (se_bank == 0x3FF) 3272 3269 se_bank = 0xFFFFFFFF; ··· 3340 3337 pm_pg_lock = (*pos >> 23) & 1; 3341 3338 3342 3339 if (*pos & (1ULL << 62)) { 3343 - se_bank = (*pos >> 24) & 0x3FF; 3344 - sh_bank = (*pos >> 34) & 0x3FF; 3345 - instance_bank = (*pos >> 44) & 0x3FF; 3340 + se_bank = (*pos & GENMASK_ULL(33, 24)) >> 24; 3341 + sh_bank = (*pos & GENMASK_ULL(43, 34)) >> 34; 3342 + instance_bank = (*pos & GENMASK_ULL(53, 44)) >> 44; 3346 3343 3347 3344 if (se_bank == 0x3FF) 3348 3345 se_bank = 0xFFFFFFFF; ··· 3690 3687 return -EINVAL; 3691 3688 3692 3689 /* decode offset */ 3693 - offset = (*pos & 0x7F); 3694 - se = ((*pos >> 7) & 0xFF); 3695 - sh = ((*pos >> 15) & 0xFF); 3696 - cu = ((*pos >> 23) & 0xFF); 3697 - wave = ((*pos >> 31) & 0xFF); 3698 - simd = ((*pos >> 37) & 0xFF); 3690 + offset = (*pos & GENMASK_ULL(6, 0)); 3691 + se = (*pos & GENMASK_ULL(14, 7)) >> 7; 3692 + sh = (*pos & GENMASK_ULL(22, 15)) >> 15; 3693 + cu = (*pos & GENMASK_ULL(30, 23)) >> 23; 3694 + wave = (*pos & GENMASK_ULL(36, 31)) >> 31; 3695 + simd = (*pos & GENMASK_ULL(44, 37)) >> 37; 3699 3696 3700 3697 /* switch to the specific se/sh/cu */ 3701 3698 mutex_lock(&adev->grbm_idx_mutex); ··· 3740 3737 return -EINVAL; 3741 3738 3742 3739 /* decode offset */ 3743 - offset = (*pos & 0xFFF); /* in dwords */ 3744 - se = ((*pos >> 12) & 0xFF); 3745 - sh = ((*pos >> 20) & 0xFF); 3746 - cu = ((*pos >> 28) & 0xFF); 3747 - wave = ((*pos >> 36) & 0xFF); 3748 - simd = ((*pos >> 44) & 0xFF); 3749 - thread = ((*pos >> 52) & 0xFF); 3750 - bank = ((*pos >> 60) & 1); 3740 + offset = *pos & GENMASK_ULL(11, 0); 3741 + se = (*pos & GENMASK_ULL(19, 12)) >> 12; 3742 + sh = (*pos & GENMASK_ULL(27, 20)) >> 20; 3743 + cu = (*pos & GENMASK_ULL(35, 28)) >> 28; 3744 + wave = (*pos & GENMASK_ULL(43, 36)) >> 36; 3745 + simd = (*pos & GENMASK_ULL(51, 44)) >> 44; 3746 + thread = (*pos & GENMASK_ULL(59, 52)) >> 52; 3747 + bank = (*pos & GENMASK_ULL(61, 60)) >> 60; 3751 3748 3752 3749 data = kmalloc_array(1024, sizeof(*data), GFP_KERNEL); 3753 3750 if (!data)
+8 -7
drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
··· 63 63 flags, NULL, resv, 0, &bo); 64 64 if (r) { 65 65 if (r != -ERESTARTSYS) { 66 + if (flags & AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED) { 67 + flags &= ~AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED; 68 + goto retry; 69 + } 70 + 66 71 if (initial_domain == AMDGPU_GEM_DOMAIN_VRAM) { 67 72 initial_domain |= AMDGPU_GEM_DOMAIN_GTT; 68 73 goto retry; ··· 328 323 r = amdgpu_ttm_tt_get_user_pages(bo->tbo.ttm, 329 324 bo->tbo.ttm->pages); 330 325 if (r) 331 - goto unlock_mmap_sem; 326 + goto release_object; 332 327 333 328 r = amdgpu_bo_reserve(bo, true); 334 329 if (r) ··· 352 347 353 348 free_pages: 354 349 release_pages(bo->tbo.ttm->pages, bo->tbo.ttm->num_pages); 355 - 356 - unlock_mmap_sem: 357 - up_read(&current->mm->mmap_sem); 358 350 359 351 release_object: 360 352 drm_gem_object_put_unlocked(gobj); ··· 558 556 559 557 if (args->va_address < AMDGPU_VA_RESERVED_SIZE) { 560 558 dev_err(&dev->pdev->dev, 561 - "va_address 0x%lX is in reserved area 0x%X\n", 562 - (unsigned long)args->va_address, 563 - AMDGPU_VA_RESERVED_SIZE); 559 + "va_address 0x%LX is in reserved area 0x%LX\n", 560 + args->va_address, AMDGPU_VA_RESERVED_SIZE); 564 561 return -EINVAL; 565 562 } 566 563
-6
drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c
··· 71 71 { 72 72 struct amdgpu_gtt_mgr *mgr = man->priv; 73 73 74 - spin_lock(&mgr->lock); 75 - if (!drm_mm_clean(&mgr->mm)) { 76 - spin_unlock(&mgr->lock); 77 - return -EBUSY; 78 - } 79 - 80 74 drm_mm_takedown(&mgr->mm); 81 75 spin_unlock(&mgr->lock); 82 76 kfree(mgr);
+4
drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
··· 946 946 struct amdgpu_device *adev = dev_get_drvdata(dev); 947 947 umode_t effective_mode = attr->mode; 948 948 949 + /* no skipping for powerplay */ 950 + if (adev->powerplay.cgs_device) 951 + return effective_mode; 952 + 949 953 /* Skip limit attributes if DPM is not enabled */ 950 954 if (!adev->pm.dpm_enabled && 951 955 (attr == &sensor_dev_attr_temp1_crit.dev_attr.attr ||
-3
drivers/gpu/drm/amd/amdgpu/amdgpu_powerplay.c
··· 164 164 ret = adev->powerplay.ip_funcs->hw_fini( 165 165 adev->powerplay.pp_handle); 166 166 167 - if (adev->firmware.load_type == AMDGPU_FW_LOAD_SMU) 168 - amdgpu_ucode_fini_bo(adev); 169 - 170 167 return ret; 171 168 } 172 169
+5 -1
drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c
··· 169 169 int flags) 170 170 { 171 171 struct amdgpu_bo *bo = gem_to_amdgpu_bo(gobj); 172 + struct dma_buf *buf; 172 173 173 174 if (amdgpu_ttm_tt_get_usermm(bo->tbo.ttm) || 174 175 bo->flags & AMDGPU_GEM_CREATE_VM_ALWAYS_VALID) 175 176 return ERR_PTR(-EPERM); 176 177 177 - return drm_gem_prime_export(dev, gobj, flags); 178 + buf = drm_gem_prime_export(dev, gobj, flags); 179 + if (!IS_ERR(buf)) 180 + buf->file->f_mapping = dev->anon_inode->i_mapping; 181 + return buf; 178 182 }
-2
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
··· 442 442 if (adev->firmware.load_type != AMDGPU_FW_LOAD_PSP) 443 443 return 0; 444 444 445 - amdgpu_ucode_fini_bo(adev); 446 - 447 445 psp_ring_destroy(psp, PSP_RING_TYPE__KM); 448 446 449 447 amdgpu_bo_free_kernel(&psp->tmr_bo, &psp->tmr_mc_addr, &psp->tmr_buf);
+2 -1
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h
··· 94 94 #define AMDGPU_MMHUB 1 95 95 96 96 /* hardcode that limit for now */ 97 - #define AMDGPU_VA_RESERVED_SIZE (8 << 20) 97 + #define AMDGPU_VA_RESERVED_SIZE (8ULL << 20) 98 + 98 99 /* max vmids dedicated for process */ 99 100 #define AMDGPU_VM_MAX_RESERVED_VMID 1 100 101
-5
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
··· 68 68 struct amdgpu_vram_mgr *mgr = man->priv; 69 69 70 70 spin_lock(&mgr->lock); 71 - if (!drm_mm_clean(&mgr->mm)) { 72 - spin_unlock(&mgr->lock); 73 - return -EBUSY; 74 - } 75 - 76 71 drm_mm_takedown(&mgr->mm); 77 72 spin_unlock(&mgr->lock); 78 73 kfree(mgr);
+8
drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
··· 4670 4670 gfx_v7_0_cp_compute_fini(adev); 4671 4671 gfx_v7_0_rlc_fini(adev); 4672 4672 gfx_v7_0_mec_fini(adev); 4673 + amdgpu_bo_free_kernel(&adev->gfx.rlc.clear_state_obj, 4674 + &adev->gfx.rlc.clear_state_gpu_addr, 4675 + (void **)&adev->gfx.rlc.cs_ptr); 4676 + if (adev->gfx.rlc.cp_table_size) { 4677 + amdgpu_bo_free_kernel(&adev->gfx.rlc.cp_table_obj, 4678 + &adev->gfx.rlc.cp_table_gpu_addr, 4679 + (void **)&adev->gfx.rlc.cp_table_ptr); 4680 + } 4673 4681 gfx_v7_0_free_microcode(adev); 4674 4682 4675 4683 return 0;
+9
drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
··· 2118 2118 2119 2119 gfx_v8_0_mec_fini(adev); 2120 2120 gfx_v8_0_rlc_fini(adev); 2121 + amdgpu_bo_free_kernel(&adev->gfx.rlc.clear_state_obj, 2122 + &adev->gfx.rlc.clear_state_gpu_addr, 2123 + (void **)&adev->gfx.rlc.cs_ptr); 2124 + if ((adev->asic_type == CHIP_CARRIZO) || 2125 + (adev->asic_type == CHIP_STONEY)) { 2126 + amdgpu_bo_free_kernel(&adev->gfx.rlc.cp_table_obj, 2127 + &adev->gfx.rlc.cp_table_gpu_addr, 2128 + (void **)&adev->gfx.rlc.cp_table_ptr); 2129 + } 2121 2130 gfx_v8_0_free_microcode(adev); 2122 2131 2123 2132 return 0;
+27
drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
··· 207 207 SOC15_REG_OFFSET(GC, 0, mmTD_CNTL), 0x01bd9f33, 0x00000800 208 208 }; 209 209 210 + static const u32 golden_settings_gc_9_x_common[] = 211 + { 212 + SOC15_REG_OFFSET(GC, 0, mmGRBM_CAM_INDEX), 0xffffffff, 0x00000000, 213 + SOC15_REG_OFFSET(GC, 0, mmGRBM_CAM_DATA), 0xffffffff, 0x2544c382 214 + }; 215 + 210 216 #define VEGA10_GB_ADDR_CONFIG_GOLDEN 0x2a114042 211 217 #define RAVEN_GB_ADDR_CONFIG_GOLDEN 0x24000042 212 218 ··· 248 242 default: 249 243 break; 250 244 } 245 + 246 + amdgpu_program_register_sequence(adev, golden_settings_gc_9_x_common, 247 + (const u32)ARRAY_SIZE(golden_settings_gc_9_x_common)); 251 248 } 252 249 253 250 static void gfx_v9_0_scratch_init(struct amdgpu_device *adev) ··· 997 988 start + SQIND_WAVE_SGPRS_OFFSET, size, dst); 998 989 } 999 990 991 + static void gfx_v9_0_read_wave_vgprs(struct amdgpu_device *adev, uint32_t simd, 992 + uint32_t wave, uint32_t thread, 993 + uint32_t start, uint32_t size, 994 + uint32_t *dst) 995 + { 996 + wave_read_regs( 997 + adev, simd, wave, thread, 998 + start + SQIND_WAVE_VGPRS_OFFSET, size, dst); 999 + } 1000 1000 1001 1001 static const struct amdgpu_gfx_funcs gfx_v9_0_gfx_funcs = { 1002 1002 .get_gpu_clock_counter = &gfx_v9_0_get_gpu_clock_counter, 1003 1003 .select_se_sh = &gfx_v9_0_select_se_sh, 1004 1004 .read_wave_data = &gfx_v9_0_read_wave_data, 1005 1005 .read_wave_sgprs = &gfx_v9_0_read_wave_sgprs, 1006 + .read_wave_vgprs = &gfx_v9_0_read_wave_vgprs, 1006 1007 }; 1007 1008 1008 1009 static void gfx_v9_0_gpu_early_init(struct amdgpu_device *adev) ··· 1468 1449 1469 1450 gfx_v9_0_mec_fini(adev); 1470 1451 gfx_v9_0_ngg_fini(adev); 1452 + amdgpu_bo_free_kernel(&adev->gfx.rlc.clear_state_obj, 1453 + &adev->gfx.rlc.clear_state_gpu_addr, 1454 + (void **)&adev->gfx.rlc.cs_ptr); 1455 + if (adev->asic_type == CHIP_RAVEN) { 1456 + amdgpu_bo_free_kernel(&adev->gfx.rlc.cp_table_obj, 1457 + &adev->gfx.rlc.cp_table_gpu_addr, 1458 + (void **)&adev->gfx.rlc.cp_table_ptr); 1459 + } 1471 1460 gfx_v9_0_free_microcode(adev); 1472 1461 1473 1462 return 0;
+12 -3
drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
··· 392 392 static int gmc_v9_0_late_init(void *handle) 393 393 { 394 394 struct amdgpu_device *adev = (struct amdgpu_device *)handle; 395 - unsigned vm_inv_eng[AMDGPU_MAX_VMHUBS] = { 3, 3 }; 395 + /* 396 + * The latest engine allocation on gfx9 is: 397 + * Engine 0, 1: idle 398 + * Engine 2, 3: firmware 399 + * Engine 4~13: amdgpu ring, subject to change when ring number changes 400 + * Engine 14~15: idle 401 + * Engine 16: kfd tlb invalidation 402 + * Engine 17: Gart flushes 403 + */ 404 + unsigned vm_inv_eng[AMDGPU_MAX_VMHUBS] = { 4, 4 }; 396 405 unsigned i; 397 406 398 407 for(i = 0; i < adev->num_rings; ++i) { ··· 414 405 ring->funcs->vmhub); 415 406 } 416 407 417 - /* Engine 17 is used for GART flushes */ 408 + /* Engine 16 is used for KFD and 17 for GART flushes */ 418 409 for(i = 0; i < AMDGPU_MAX_VMHUBS; ++i) 419 - BUG_ON(vm_inv_eng[i] > 17); 410 + BUG_ON(vm_inv_eng[i] > 16); 420 411 421 412 return amdgpu_irq_get(adev, &adev->mc.vm_fault, 0); 422 413 }
+1 -1
drivers/gpu/drm/amd/powerplay/hwmgr/ppatomctrl.c
··· 1486 1486 if (vddci_id_buf[i] == virtual_voltage_id) { 1487 1487 for (j = 0; j < profile->ucLeakageBinNum; j++) { 1488 1488 if (efuse_voltage_id <= leakage_bin[j]) { 1489 - *vddci = vddci_buf[j * profile->ucElbVDDC_Num + i]; 1489 + *vddci = vddci_buf[j * profile->ucElbVDDCI_Num + i]; 1490 1490 break; 1491 1491 } 1492 1492 }
+2 -2
drivers/gpu/drm/amd/powerplay/hwmgr/process_pptables_v1_0.c
··· 830 830 const ATOM_Tonga_POWERPLAYTABLE *powerplay_table) 831 831 { 832 832 hwmgr->platform_descriptor.overdriveLimit.engineClock = 833 - le16_to_cpu(powerplay_table->ulMaxODEngineClock); 833 + le32_to_cpu(powerplay_table->ulMaxODEngineClock); 834 834 hwmgr->platform_descriptor.overdriveLimit.memoryClock = 835 - le16_to_cpu(powerplay_table->ulMaxODMemoryClock); 835 + le32_to_cpu(powerplay_table->ulMaxODMemoryClock); 836 836 837 837 hwmgr->platform_descriptor.minOverdriveVDDC = 0; 838 838 hwmgr->platform_descriptor.maxOverdriveVDDC = 0;
+1 -1
drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c
··· 3778 3778 "Trying to Unfreeze MCLK DPM when DPM is disabled", 3779 3779 ); 3780 3780 PP_ASSERT_WITH_CODE(0 == smum_send_msg_to_smc(hwmgr, 3781 - PPSMC_MSG_SCLKDPM_UnfreezeLevel), 3781 + PPSMC_MSG_MCLKDPM_UnfreezeLevel), 3782 3782 "Failed to unfreeze MCLK DPM during UnFreezeSclkMclkDPM Function!", 3783 3783 return -EINVAL); 3784 3784 }
+15 -14
drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
··· 753 753 uint32_t config_telemetry = 0; 754 754 struct pp_atomfwctrl_voltage_table vol_table; 755 755 struct cgs_system_info sys_info = {0}; 756 + uint32_t reg; 756 757 757 758 data = kzalloc(sizeof(struct vega10_hwmgr), GFP_KERNEL); 758 759 if (data == NULL) ··· 859 858 hwmgr->thermal_controller. 860 859 advanceFanControlParameters.usFanPWMMinLimit * 861 860 hwmgr->thermal_controller.fanInfo.ulMaxRPM / 100; 861 + 862 + reg = soc15_get_register_offset(DF_HWID, 0, 863 + mmDF_CS_AON0_DramBaseAddress0_BASE_IDX, 864 + mmDF_CS_AON0_DramBaseAddress0); 865 + data->mem_channels = (cgs_read_register(hwmgr->device, reg) & 866 + DF_CS_AON0_DramBaseAddress0__IntLvNumChan_MASK) >> 867 + DF_CS_AON0_DramBaseAddress0__IntLvNumChan__SHIFT; 868 + PP_ASSERT_WITH_CODE(data->mem_channels < ARRAY_SIZE(channel_number), 869 + "Mem Channel Index Exceeded maximum!", 870 + return -EINVAL); 862 871 863 872 return result; 864 873 } ··· 1788 1777 struct vega10_single_dpm_table *dpm_table = 1789 1778 &(data->dpm_table.mem_table); 1790 1779 int result = 0; 1791 - uint32_t i, j, reg, mem_channels; 1780 + uint32_t i, j; 1792 1781 1793 1782 for (i = 0; i < dpm_table->count; i++) { 1794 1783 result = vega10_populate_single_memory_level(hwmgr, ··· 1812 1801 i++; 1813 1802 } 1814 1803 1815 - reg = soc15_get_register_offset(DF_HWID, 0, 1816 - mmDF_CS_AON0_DramBaseAddress0_BASE_IDX, 1817 - mmDF_CS_AON0_DramBaseAddress0); 1818 - mem_channels = (cgs_read_register(hwmgr->device, reg) & 1819 - DF_CS_AON0_DramBaseAddress0__IntLvNumChan_MASK) >> 1820 - DF_CS_AON0_DramBaseAddress0__IntLvNumChan__SHIFT; 1821 - PP_ASSERT_WITH_CODE(mem_channels < ARRAY_SIZE(channel_number), 1822 - "Mem Channel Index Exceeded maximum!", 1823 - return -1); 1824 - 1825 - pp_table->NumMemoryChannels = cpu_to_le16(mem_channels); 1804 + pp_table->NumMemoryChannels = (uint16_t)(data->mem_channels); 1826 1805 pp_table->MemoryChannelWidth = 1827 - cpu_to_le16(HBM_MEMORY_CHANNEL_WIDTH * 1828 - channel_number[mem_channels]); 1806 + (uint16_t)(HBM_MEMORY_CHANNEL_WIDTH * 1807 + channel_number[data->mem_channels]); 1829 1808 1830 1809 pp_table->LowestUclkReservedForUlv = 1831 1810 (uint8_t)(data->lowest_uclk_reserved_for_ulv);
+1
drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.h
··· 389 389 uint32_t config_telemetry; 390 390 uint32_t smu_version; 391 391 uint32_t acg_loop_state; 392 + uint32_t mem_channels; 392 393 }; 393 394 394 395 #define VEGA10_DPM2_NEAR_TDP_DEC 10
+17
drivers/gpu/drm/drm_connector.c
··· 234 234 config->link_status_property, 235 235 0); 236 236 237 + drm_object_attach_property(&connector->base, 238 + config->non_desktop_property, 239 + 0); 240 + 237 241 if (drm_core_check_feature(dev, DRIVER_ATOMIC)) { 238 242 drm_object_attach_property(&connector->base, config->prop_crtc_id, 0); 239 243 } ··· 767 763 * value of link-status is "GOOD". If something fails during or after modeset, 768 764 * the kernel driver may set this to "BAD" and issue a hotplug uevent. Drivers 769 765 * should update this value using drm_mode_connector_set_link_status_property(). 766 + * non_desktop: 767 + * Indicates the output should be ignored for purposes of displaying a 768 + * standard desktop environment or console. This is most likely because 769 + * the output device is not rectilinear. 770 770 * 771 771 * Connectors also have one standardized atomic property: 772 772 * ··· 818 810 if (!prop) 819 811 return -ENOMEM; 820 812 dev->mode_config.link_status_property = prop; 813 + 814 + prop = drm_property_create_bool(dev, DRM_MODE_PROP_IMMUTABLE, "non-desktop"); 815 + if (!prop) 816 + return -ENOMEM; 817 + dev->mode_config.non_desktop_property = prop; 821 818 822 819 return 0; 823 820 } ··· 1206 1193 1207 1194 if (edid) 1208 1195 size = EDID_LENGTH * (1 + edid->extensions); 1196 + 1197 + drm_object_property_set_value(&connector->base, 1198 + dev->mode_config.non_desktop_property, 1199 + connector->display_info.non_desktop); 1209 1200 1210 1201 ret = drm_property_replace_global_blob(dev, 1211 1202 &connector->edid_blob_ptr,
+9 -2
drivers/gpu/drm/drm_edid.c
··· 82 82 #define EDID_QUIRK_FORCE_6BPC (1 << 10) 83 83 /* Force 10bpc */ 84 84 #define EDID_QUIRK_FORCE_10BPC (1 << 11) 85 + /* Non desktop display (i.e. HMD) */ 86 + #define EDID_QUIRK_NON_DESKTOP (1 << 12) 85 87 86 88 struct detailed_mode_closure { 87 89 struct drm_connector *connector; ··· 159 157 160 158 /* Rotel RSX-1058 forwards sink's EDID but only does HDMI 1.1*/ 161 159 { "ETR", 13896, EDID_QUIRK_FORCE_8BPC }, 160 + 161 + /* HTC Vive VR Headset */ 162 + { "HVR", 0xaa01, EDID_QUIRK_NON_DESKTOP }, 162 163 }; 163 164 164 165 /* ··· 4398 4393 } 4399 4394 4400 4395 static void drm_add_display_info(struct drm_connector *connector, 4401 - struct edid *edid) 4396 + struct edid *edid, u32 quirks) 4402 4397 { 4403 4398 struct drm_display_info *info = &connector->display_info; 4404 4399 ··· 4411 4406 info->cea_rev = 0; 4412 4407 info->max_tmds_clock = 0; 4413 4408 info->dvi_dual = false; 4409 + 4410 + info->non_desktop = !!(quirks & EDID_QUIRK_NON_DESKTOP); 4414 4411 4415 4412 if (edid->revision < 3) 4416 4413 return; ··· 4634 4627 * To avoid multiple parsing of same block, lets parse that map 4635 4628 * from sink info, before parsing CEA modes. 4636 4629 */ 4637 - drm_add_display_info(connector, edid); 4630 + drm_add_display_info(connector, edid, quirks); 4638 4631 4639 4632 /* 4640 4633 * EDID spec says modes should be preferred in this order:
+5 -1
drivers/gpu/drm/drm_fb_helper.c
··· 2033 2033 { 2034 2034 bool enable; 2035 2035 2036 + if (connector->display_info.non_desktop) 2037 + return false; 2038 + 2036 2039 if (strict) 2037 2040 enable = connector->status == connector_status_connected; 2038 2041 else ··· 2055 2052 connector = fb_helper->connector_info[i]->connector; 2056 2053 enabled[i] = drm_connector_enabled(connector, true); 2057 2054 DRM_DEBUG_KMS("connector %d enabled? %s\n", connector->base.id, 2058 - enabled[i] ? "yes" : "no"); 2055 + connector->display_info.non_desktop ? "non desktop" : enabled[i] ? "yes" : "no"); 2056 + 2059 2057 any_enabled |= enabled[i]; 2060 2058 } 2061 2059
+1 -2
drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
··· 210 210 return PTR_ERR(fsl_dev->state); 211 211 } 212 212 213 - clk_disable_unprepare(fsl_dev->pix_clk); 214 213 clk_disable_unprepare(fsl_dev->clk); 215 214 216 215 return 0; ··· 232 233 if (fsl_dev->tcon) 233 234 fsl_tcon_bypass_enable(fsl_dev->tcon); 234 235 fsl_dcu_drm_init_planes(fsl_dev->drm); 236 + enable_irq(fsl_dev->irq); 235 237 drm_atomic_helper_resume(fsl_dev->drm, fsl_dev->state); 236 238 237 239 console_lock(); ··· 240 240 console_unlock(); 241 241 242 242 drm_kms_helper_poll_enable(fsl_dev->drm); 243 - enable_irq(fsl_dev->irq); 244 243 245 244 return 0; 246 245 }
-5
drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
··· 102 102 { 103 103 struct drm_encoder *encoder = &fsl_dev->encoder; 104 104 struct drm_connector *connector = &fsl_dev->connector.base; 105 - struct drm_mode_config *mode_config = &fsl_dev->drm->mode_config; 106 105 int ret; 107 106 108 107 fsl_dev->connector.encoder = encoder; ··· 120 121 ret = drm_mode_connector_attach_encoder(connector, encoder); 121 122 if (ret < 0) 122 123 goto err_sysfs; 123 - 124 - drm_object_property_set_value(&connector->base, 125 - mode_config->dpms_property, 126 - DRM_MODE_DPMS_OFF); 127 124 128 125 ret = drm_panel_attach(panel, connector); 129 126 if (ret) {
+1 -1
drivers/gpu/drm/imx/ipuv3-crtc.c
··· 115 115 116 116 if (crtc->state) { 117 117 if (crtc->state->mode_blob) 118 - drm_property_unreference_blob(crtc->state->mode_blob); 118 + drm_property_blob_put(crtc->state->mode_blob); 119 119 120 120 state = to_imx_crtc_state(crtc->state); 121 121 memset(state, 0, sizeof(*state));
+1 -1
drivers/gpu/drm/imx/parallel-display.c
··· 183 183 &imx_pd_connector_helper_funcs); 184 184 drm_connector_init(drm, &imxpd->connector, 185 185 &imx_pd_connector_funcs, 186 - DRM_MODE_CONNECTOR_VGA); 186 + DRM_MODE_CONNECTOR_DPI); 187 187 } 188 188 189 189 if (imxpd->panel)
-1
drivers/gpu/drm/radeon/radeon_fb.c
··· 245 245 } 246 246 247 247 info->par = rfbdev; 248 - info->skip_vt_switch = true; 249 248 250 249 ret = radeon_framebuffer_init(rdev->ddev, &rfbdev->rfb, &mode_cmd, gobj); 251 250 if (ret) {
+111 -46
drivers/gpu/drm/tegra/sor.c
··· 174 174 175 175 struct reset_control *rst; 176 176 struct clk *clk_parent; 177 - struct clk *clk_brick; 178 177 struct clk *clk_safe; 179 - struct clk *clk_src; 178 + struct clk *clk_out; 179 + struct clk *clk_pad; 180 180 struct clk *clk_dp; 181 181 struct clk *clk; 182 182 ··· 255 255 256 256 clk_disable_unprepare(sor->clk); 257 257 258 - err = clk_set_parent(sor->clk, parent); 258 + err = clk_set_parent(sor->clk_out, parent); 259 259 if (err < 0) 260 260 return err; 261 261 ··· 266 266 return 0; 267 267 } 268 268 269 - struct tegra_clk_sor_brick { 269 + struct tegra_clk_sor_pad { 270 270 struct clk_hw hw; 271 271 struct tegra_sor *sor; 272 272 }; 273 273 274 - static inline struct tegra_clk_sor_brick *to_brick(struct clk_hw *hw) 274 + static inline struct tegra_clk_sor_pad *to_pad(struct clk_hw *hw) 275 275 { 276 - return container_of(hw, struct tegra_clk_sor_brick, hw); 276 + return container_of(hw, struct tegra_clk_sor_pad, hw); 277 277 } 278 278 279 - static const char * const tegra_clk_sor_brick_parents[] = { 279 + static const char * const tegra_clk_sor_pad_parents[] = { 280 280 "pll_d2_out0", "pll_dp" 281 281 }; 282 282 283 - static int tegra_clk_sor_brick_set_parent(struct clk_hw *hw, u8 index) 283 + static int tegra_clk_sor_pad_set_parent(struct clk_hw *hw, u8 index) 284 284 { 285 - struct tegra_clk_sor_brick *brick = to_brick(hw); 286 - struct tegra_sor *sor = brick->sor; 285 + struct tegra_clk_sor_pad *pad = to_pad(hw); 286 + struct tegra_sor *sor = pad->sor; 287 287 u32 value; 288 288 289 289 value = tegra_sor_readl(sor, SOR_CLK_CNTRL); ··· 304 304 return 0; 305 305 } 306 306 307 - static u8 tegra_clk_sor_brick_get_parent(struct clk_hw *hw) 307 + static u8 tegra_clk_sor_pad_get_parent(struct clk_hw *hw) 308 308 { 309 - struct tegra_clk_sor_brick *brick = to_brick(hw); 310 - struct tegra_sor *sor = brick->sor; 309 + struct tegra_clk_sor_pad *pad = to_pad(hw); 310 + struct tegra_sor *sor = pad->sor; 311 311 u8 parent = U8_MAX; 312 312 u32 value; 313 313 ··· 328 328 return parent; 329 329 } 330 330 331 - static const struct clk_ops tegra_clk_sor_brick_ops = { 332 - .set_parent = tegra_clk_sor_brick_set_parent, 333 - .get_parent = tegra_clk_sor_brick_get_parent, 331 + static const struct clk_ops tegra_clk_sor_pad_ops = { 332 + .set_parent = tegra_clk_sor_pad_set_parent, 333 + .get_parent = tegra_clk_sor_pad_get_parent, 334 334 }; 335 335 336 - static struct clk *tegra_clk_sor_brick_register(struct tegra_sor *sor, 337 - const char *name) 336 + static struct clk *tegra_clk_sor_pad_register(struct tegra_sor *sor, 337 + const char *name) 338 338 { 339 - struct tegra_clk_sor_brick *brick; 339 + struct tegra_clk_sor_pad *pad; 340 340 struct clk_init_data init; 341 341 struct clk *clk; 342 342 343 - brick = devm_kzalloc(sor->dev, sizeof(*brick), GFP_KERNEL); 344 - if (!brick) 343 + pad = devm_kzalloc(sor->dev, sizeof(*pad), GFP_KERNEL); 344 + if (!pad) 345 345 return ERR_PTR(-ENOMEM); 346 346 347 - brick->sor = sor; 347 + pad->sor = sor; 348 348 349 349 init.name = name; 350 350 init.flags = 0; 351 - init.parent_names = tegra_clk_sor_brick_parents; 352 - init.num_parents = ARRAY_SIZE(tegra_clk_sor_brick_parents); 353 - init.ops = &tegra_clk_sor_brick_ops; 351 + init.parent_names = tegra_clk_sor_pad_parents; 352 + init.num_parents = ARRAY_SIZE(tegra_clk_sor_pad_parents); 353 + init.ops = &tegra_clk_sor_pad_ops; 354 354 355 - brick->hw.init = &init; 355 + pad->hw.init = &init; 356 356 357 - clk = devm_clk_register(sor->dev, &brick->hw); 357 + clk = devm_clk_register(sor->dev, &pad->hw); 358 358 359 359 return clk; 360 360 } ··· 998 998 999 999 /* switch to safe parent clock */ 1000 1000 err = tegra_sor_set_parent_clock(sor, sor->clk_safe); 1001 - if (err < 0) 1001 + if (err < 0) { 1002 1002 dev_err(sor->dev, "failed to set safe parent clock: %d\n", err); 1003 + return err; 1004 + } 1003 1005 1004 1006 value = tegra_sor_readl(sor, SOR_DP_PADCTL0); 1005 1007 value &= ~(SOR_DP_PADCTL_PD_TXD_3 | SOR_DP_PADCTL_PD_TXD_0 | ··· 2009 2007 2010 2008 /* switch to safe parent clock */ 2011 2009 err = tegra_sor_set_parent_clock(sor, sor->clk_safe); 2012 - if (err < 0) 2010 + if (err < 0) { 2013 2011 dev_err(sor->dev, "failed to set safe parent clock: %d\n", err); 2012 + return; 2013 + } 2014 2014 2015 2015 div = clk_get_rate(sor->clk) / 1000000 * 4; 2016 2016 ··· 2115 2111 tegra_sor_writel(sor, value, SOR_XBAR_CTRL); 2116 2112 2117 2113 /* switch to parent clock */ 2118 - err = clk_set_parent(sor->clk_src, sor->clk_parent); 2119 - if (err < 0) 2120 - dev_err(sor->dev, "failed to set source clock: %d\n", err); 2121 - 2122 - err = tegra_sor_set_parent_clock(sor, sor->clk_src); 2123 - if (err < 0) 2114 + err = clk_set_parent(sor->clk, sor->clk_parent); 2115 + if (err < 0) { 2124 2116 dev_err(sor->dev, "failed to set parent clock: %d\n", err); 2117 + return; 2118 + } 2119 + 2120 + err = tegra_sor_set_parent_clock(sor, sor->clk_pad); 2121 + if (err < 0) { 2122 + dev_err(sor->dev, "failed to set pad clock: %d\n", err); 2123 + return; 2124 + } 2125 2125 2126 2126 value = SOR_INPUT_CONTROL_HDMI_SRC_SELECT(dc->pipe); 2127 2127 ··· 2636 2628 } 2637 2629 2638 2630 if (sor->soc->supports_hdmi || sor->soc->supports_dp) { 2639 - sor->clk_src = devm_clk_get(&pdev->dev, "source"); 2640 - if (IS_ERR(sor->clk_src)) { 2641 - err = PTR_ERR(sor->clk_src); 2642 - dev_err(sor->dev, "failed to get source clock: %d\n", 2643 - err); 2631 + struct device_node *np = pdev->dev.of_node; 2632 + const char *name; 2633 + 2634 + /* 2635 + * For backwards compatibility with Tegra210 device trees, 2636 + * fall back to the old clock name "source" if the new "out" 2637 + * clock is not available. 2638 + */ 2639 + if (of_property_match_string(np, "clock-names", "out") < 0) 2640 + name = "source"; 2641 + else 2642 + name = "out"; 2643 + 2644 + sor->clk_out = devm_clk_get(&pdev->dev, name); 2645 + if (IS_ERR(sor->clk_out)) { 2646 + err = PTR_ERR(sor->clk_out); 2647 + dev_err(sor->dev, "failed to get %s clock: %d\n", 2648 + name, err); 2644 2649 goto remove; 2645 2650 } 2646 2651 } ··· 2679 2658 goto remove; 2680 2659 } 2681 2660 2661 + /* 2662 + * Starting with Tegra186, the BPMP provides an implementation for 2663 + * the pad output clock, so we have to look it up from device tree. 2664 + */ 2665 + sor->clk_pad = devm_clk_get(&pdev->dev, "pad"); 2666 + if (IS_ERR(sor->clk_pad)) { 2667 + if (sor->clk_pad != ERR_PTR(-ENOENT)) { 2668 + err = PTR_ERR(sor->clk_pad); 2669 + goto remove; 2670 + } 2671 + 2672 + /* 2673 + * If the pad output clock is not available, then we assume 2674 + * we're on Tegra210 or earlier and have to provide our own 2675 + * implementation. 2676 + */ 2677 + sor->clk_pad = NULL; 2678 + } 2679 + 2680 + /* 2681 + * The bootloader may have set up the SOR such that it's module clock 2682 + * is sourced by one of the display PLLs. However, that doesn't work 2683 + * without properly having set up other bits of the SOR. 2684 + */ 2685 + err = clk_set_parent(sor->clk_out, sor->clk_safe); 2686 + if (err < 0) { 2687 + dev_err(&pdev->dev, "failed to use safe clock: %d\n", err); 2688 + goto remove; 2689 + } 2690 + 2682 2691 platform_set_drvdata(pdev, sor); 2683 2692 pm_runtime_enable(&pdev->dev); 2684 2693 2685 - pm_runtime_get_sync(&pdev->dev); 2686 - sor->clk_brick = tegra_clk_sor_brick_register(sor, "sor1_brick"); 2687 - pm_runtime_put(&pdev->dev); 2694 + /* 2695 + * On Tegra210 and earlier, provide our own implementation for the 2696 + * pad output clock. 2697 + */ 2698 + if (!sor->clk_pad) { 2699 + err = pm_runtime_get_sync(&pdev->dev); 2700 + if (err < 0) { 2701 + dev_err(&pdev->dev, "failed to get runtime PM: %d\n", 2702 + err); 2703 + goto remove; 2704 + } 2688 2705 2689 - if (IS_ERR(sor->clk_brick)) { 2690 - err = PTR_ERR(sor->clk_brick); 2691 - dev_err(&pdev->dev, "failed to register SOR clock: %d\n", err); 2706 + sor->clk_pad = tegra_clk_sor_pad_register(sor, 2707 + "sor1_pad_clkout"); 2708 + pm_runtime_put(&pdev->dev); 2709 + } 2710 + 2711 + if (IS_ERR(sor->clk_pad)) { 2712 + err = PTR_ERR(sor->clk_pad); 2713 + dev_err(&pdev->dev, "failed to register SOR pad clock: %d\n", 2714 + err); 2692 2715 goto remove; 2693 2716 } 2694 2717
-11
drivers/gpu/drm/tilcdc/Kconfig
··· 12 12 controller, for example AM33xx in beagle-bone, DA8xx, or 13 13 OMAP-L1xx. This driver replaces the FB_DA8XX fbdev driver. 14 14 15 - config DRM_TILCDC_SLAVE_COMPAT 16 - bool "Support device tree blobs using TI LCDC Slave binding" 17 - depends on DRM_TILCDC 18 - default y 19 - select OF_RESOLVE 20 - select OF_OVERLAY 21 - help 22 - Choose this option if you need a kernel that is compatible 23 - with device tree blobs using the obsolete "ti,tilcdc,slave" 24 - binding. If you find "ti,tilcdc,slave"-string from your DTB, 25 - you probably need this. Otherwise you do not.
-3
drivers/gpu/drm/tilcdc/Makefile
··· 3 3 ccflags-y += -Werror 4 4 endif 5 5 6 - obj-$(CONFIG_DRM_TILCDC_SLAVE_COMPAT) += tilcdc_slave_compat.o \ 7 - tilcdc_slave_compat.dtb.o 8 - 9 6 tilcdc-y := \ 10 7 tilcdc_plane.o \ 11 8 tilcdc_crtc.o \
-264
drivers/gpu/drm/tilcdc/tilcdc_slave_compat.c
··· 1 - /* 2 - * Copyright (C) 2015 Texas Instruments 3 - * Author: Jyri Sarha <jsarha@ti.com> 4 - * 5 - * This program is free software; you can redistribute it and/or modify it 6 - * under the terms of the GNU General Public License version 2 as published by 7 - * the Free Software Foundation. 8 - * 9 - */ 10 - 11 - /* 12 - * To support the old "ti,tilcdc,slave" binding the binding has to be 13 - * transformed to the new external encoder binding. 14 - */ 15 - 16 - #include <linux/kernel.h> 17 - #include <linux/of.h> 18 - #include <linux/of_graph.h> 19 - #include <linux/of_fdt.h> 20 - #include <linux/slab.h> 21 - #include <linux/list.h> 22 - 23 - #include "tilcdc_slave_compat.h" 24 - 25 - struct kfree_table { 26 - int total; 27 - int num; 28 - void **table; 29 - }; 30 - 31 - static int __init kfree_table_init(struct kfree_table *kft) 32 - { 33 - kft->total = 32; 34 - kft->num = 0; 35 - kft->table = kmalloc(kft->total * sizeof(*kft->table), 36 - GFP_KERNEL); 37 - if (!kft->table) 38 - return -ENOMEM; 39 - 40 - return 0; 41 - } 42 - 43 - static int __init kfree_table_add(struct kfree_table *kft, void *p) 44 - { 45 - if (kft->num == kft->total) { 46 - void **old = kft->table; 47 - 48 - kft->total *= 2; 49 - kft->table = krealloc(old, kft->total * sizeof(*kft->table), 50 - GFP_KERNEL); 51 - if (!kft->table) { 52 - kft->table = old; 53 - kfree(p); 54 - return -ENOMEM; 55 - } 56 - } 57 - kft->table[kft->num++] = p; 58 - return 0; 59 - } 60 - 61 - static void __init kfree_table_free(struct kfree_table *kft) 62 - { 63 - int i; 64 - 65 - for (i = 0; i < kft->num; i++) 66 - kfree(kft->table[i]); 67 - 68 - kfree(kft->table); 69 - } 70 - 71 - static 72 - struct property * __init tilcdc_prop_dup(const struct property *prop, 73 - struct kfree_table *kft) 74 - { 75 - struct property *nprop; 76 - 77 - nprop = kzalloc(sizeof(*nprop), GFP_KERNEL); 78 - if (!nprop || kfree_table_add(kft, nprop)) 79 - return NULL; 80 - 81 - nprop->name = kstrdup(prop->name, GFP_KERNEL); 82 - if (!nprop->name || kfree_table_add(kft, nprop->name)) 83 - return NULL; 84 - 85 - nprop->value = kmemdup(prop->value, prop->length, GFP_KERNEL); 86 - if (!nprop->value || kfree_table_add(kft, nprop->value)) 87 - return NULL; 88 - 89 - nprop->length = prop->length; 90 - 91 - return nprop; 92 - } 93 - 94 - static void __init tilcdc_copy_props(struct device_node *from, 95 - struct device_node *to, 96 - const char * const props[], 97 - struct kfree_table *kft) 98 - { 99 - struct property *prop; 100 - int i; 101 - 102 - for (i = 0; props[i]; i++) { 103 - prop = of_find_property(from, props[i], NULL); 104 - if (!prop) 105 - continue; 106 - 107 - prop = tilcdc_prop_dup(prop, kft); 108 - if (!prop) 109 - continue; 110 - 111 - prop->next = to->properties; 112 - to->properties = prop; 113 - } 114 - } 115 - 116 - static int __init tilcdc_prop_str_update(struct property *prop, 117 - const char *str, 118 - struct kfree_table *kft) 119 - { 120 - prop->value = kstrdup(str, GFP_KERNEL); 121 - if (kfree_table_add(kft, prop->value) || !prop->value) 122 - return -ENOMEM; 123 - prop->length = strlen(str)+1; 124 - return 0; 125 - } 126 - 127 - static void __init tilcdc_node_disable(struct device_node *node) 128 - { 129 - struct property *prop; 130 - 131 - prop = kzalloc(sizeof(*prop), GFP_KERNEL); 132 - if (!prop) 133 - return; 134 - 135 - prop->name = "status"; 136 - prop->value = "disabled"; 137 - prop->length = strlen((char *)prop->value)+1; 138 - 139 - of_update_property(node, prop); 140 - } 141 - 142 - static struct device_node * __init tilcdc_get_overlay(struct kfree_table *kft) 143 - { 144 - const int size = __dtb_tilcdc_slave_compat_end - 145 - __dtb_tilcdc_slave_compat_begin; 146 - static void *overlay_data; 147 - struct device_node *overlay; 148 - 149 - if (!size) { 150 - pr_warn("%s: No overlay data\n", __func__); 151 - return NULL; 152 - } 153 - 154 - overlay_data = kmemdup(__dtb_tilcdc_slave_compat_begin, 155 - size, GFP_KERNEL); 156 - if (!overlay_data || kfree_table_add(kft, overlay_data)) 157 - return NULL; 158 - 159 - of_fdt_unflatten_tree(overlay_data, NULL, &overlay); 160 - if (!overlay) { 161 - pr_warn("%s: Unfattening overlay tree failed\n", __func__); 162 - return NULL; 163 - } 164 - 165 - return overlay; 166 - } 167 - 168 - static const struct of_device_id tilcdc_slave_of_match[] __initconst = { 169 - { .compatible = "ti,tilcdc,slave", }, 170 - {}, 171 - }; 172 - 173 - static const struct of_device_id tilcdc_of_match[] __initconst = { 174 - { .compatible = "ti,am33xx-tilcdc", }, 175 - {}, 176 - }; 177 - 178 - static const struct of_device_id tilcdc_tda998x_of_match[] __initconst = { 179 - { .compatible = "nxp,tda998x", }, 180 - {}, 181 - }; 182 - 183 - static const char * const tilcdc_slave_props[] __initconst = { 184 - "pinctrl-names", 185 - "pinctrl-0", 186 - "pinctrl-1", 187 - NULL 188 - }; 189 - 190 - static void __init tilcdc_convert_slave_node(void) 191 - { 192 - struct device_node *slave = NULL, *lcdc = NULL; 193 - struct device_node *i2c = NULL, *fragment = NULL; 194 - struct device_node *overlay, *encoder; 195 - struct property *prop; 196 - /* For all memory needed for the overlay tree. This memory can 197 - be freed after the overlay has been applied. */ 198 - struct kfree_table kft; 199 - int ovcs_id, ret; 200 - 201 - if (kfree_table_init(&kft)) 202 - return; 203 - 204 - lcdc = of_find_matching_node(NULL, tilcdc_of_match); 205 - slave = of_find_matching_node(NULL, tilcdc_slave_of_match); 206 - 207 - if (!slave || !of_device_is_available(lcdc)) 208 - goto out; 209 - 210 - i2c = of_parse_phandle(slave, "i2c", 0); 211 - if (!i2c) { 212 - pr_err("%s: Can't find i2c node trough phandle\n", __func__); 213 - goto out; 214 - } 215 - 216 - overlay = tilcdc_get_overlay(&kft); 217 - if (!overlay) 218 - goto out; 219 - 220 - encoder = of_find_matching_node(overlay, tilcdc_tda998x_of_match); 221 - if (!encoder) { 222 - pr_err("%s: Failed to find tda998x node\n", __func__); 223 - goto out; 224 - } 225 - 226 - tilcdc_copy_props(slave, encoder, tilcdc_slave_props, &kft); 227 - 228 - for_each_child_of_node(overlay, fragment) { 229 - prop = of_find_property(fragment, "target-path", NULL); 230 - if (!prop) 231 - continue; 232 - if (!strncmp("i2c", (char *)prop->value, prop->length)) 233 - if (tilcdc_prop_str_update(prop, i2c->full_name, &kft)) 234 - goto out; 235 - if (!strncmp("lcdc", (char *)prop->value, prop->length)) 236 - if (tilcdc_prop_str_update(prop, lcdc->full_name, &kft)) 237 - goto out; 238 - } 239 - 240 - tilcdc_node_disable(slave); 241 - 242 - ovcs_id = 0; 243 - ret = of_overlay_apply(overlay, &ovcs_id); 244 - if (ret) 245 - pr_err("%s: Applying overlay changeset failed: %d\n", 246 - __func__, ret); 247 - else 248 - pr_info("%s: ti,tilcdc,slave node successfully converted\n", 249 - __func__); 250 - out: 251 - kfree_table_free(&kft); 252 - of_node_put(i2c); 253 - of_node_put(slave); 254 - of_node_put(lcdc); 255 - of_node_put(fragment); 256 - } 257 - 258 - static int __init tilcdc_slave_compat_init(void) 259 - { 260 - tilcdc_convert_slave_node(); 261 - return 0; 262 - } 263 - 264 - subsys_initcall(tilcdc_slave_compat_init);
-72
drivers/gpu/drm/tilcdc/tilcdc_slave_compat.dts
··· 1 - /* 2 - * DTS overlay for converting ti,tilcdc,slave binding to new binding. 3 - * 4 - * Copyright (C) 2015 Texas Instruments Inc. 5 - * Author: Jyri Sarha <jsarha@ti.com> 6 - * 7 - * This program is free software; you can redistribute it and/or 8 - * modify it under the terms of the GNU General Public License 9 - * version 2 as published by the Free Software Foundation. 10 - */ 11 - 12 - /* 13 - * target-path property values are simple tags that are replaced with 14 - * correct values in tildcdc_slave_compat.c. Some properties are also 15 - * copied over from the ti,tilcdc,slave node. 16 - */ 17 - 18 - /dts-v1/; 19 - / { 20 - fragment@0 { 21 - target-path = "i2c"; 22 - __overlay__ { 23 - #address-cells = <1>; 24 - #size-cells = <0>; 25 - tda19988 { 26 - compatible = "nxp,tda998x"; 27 - reg = <0x70>; 28 - status = "okay"; 29 - 30 - port { 31 - hdmi_0: endpoint@0 { 32 - remote-endpoint = <&lcd_0>; 33 - }; 34 - }; 35 - }; 36 - }; 37 - }; 38 - 39 - fragment@1 { 40 - target-path = "lcdc"; 41 - __overlay__ { 42 - port { 43 - lcd_0: endpoint@0 { 44 - remote-endpoint = <&hdmi_0>; 45 - }; 46 - }; 47 - }; 48 - }; 49 - 50 - __local_fixups__ { 51 - fragment@0 { 52 - __overlay__ { 53 - tda19988 { 54 - port { 55 - endpoint@0 { 56 - remote-endpoint = <0>; 57 - }; 58 - }; 59 - }; 60 - }; 61 - }; 62 - fragment@1 { 63 - __overlay__ { 64 - port { 65 - endpoint@0 { 66 - remote-endpoint = <0>; 67 - }; 68 - }; 69 - }; 70 - }; 71 - }; 72 - };
-25
drivers/gpu/drm/tilcdc/tilcdc_slave_compat.h
··· 1 - /* 2 - * Copyright (C) 2015 Texas Instruments 3 - * Author: Jyri Sarha <jsarha@ti.com> 4 - * 5 - * This program is free software; you can redistribute it and/or modify it 6 - * under the terms of the GNU General Public License version 2 as published by 7 - * the Free Software Foundation. 8 - * 9 - * This program is distributed in the hope that it will be useful, but WITHOUT 10 - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 12 - * more details. 13 - * 14 - * You should have received a copy of the GNU General Public License along with 15 - * this program. If not, see <http://www.gnu.org/licenses/>. 16 - */ 17 - /* This header declares the symbols defined in tilcdc_slave_compat.dts */ 18 - 19 - #ifndef __TILCDC_SLAVE_COMPAT_H__ 20 - #define __TILCDC_SLAVE_COMPAT_H__ 21 - 22 - extern uint8_t __dtb_tilcdc_slave_compat_begin[]; 23 - extern uint8_t __dtb_tilcdc_slave_compat_end[]; 24 - 25 - #endif /* __TILCDC_SLAVE_COMPAT_H__ */
-3
drivers/gpu/ipu-v3/ipu-dc.c
··· 249 249 250 250 void ipu_dc_enable_channel(struct ipu_dc *dc) 251 251 { 252 - int di; 253 252 u32 reg; 254 - 255 - di = dc->di; 256 253 257 254 reg = readl(dc->base + DC_WR_CH_CONF); 258 255 reg |= DC_WR_CH_CONF_PROG_TYPE_NORMAL;
+5
include/drm/drm_connector.h
··· 284 284 * @hdmi: advance features of a HDMI sink. 285 285 */ 286 286 struct drm_hdmi_info hdmi; 287 + 288 + /** 289 + * @non_desktop: Non desktop display (HMD). 290 + */ 291 + bool non_desktop; 287 292 }; 288 293 289 294 int drm_display_info_set_bus_formats(struct drm_display_info *info,
+7
include/drm/drm_mode_config.h
··· 728 728 */ 729 729 struct drm_property *suggested_y_property; 730 730 731 + /** 732 + * @non_desktop_property: Optional connector property with a hint 733 + * that device isn't a standard display, and the console/desktop, 734 + * should not be displayed on it. 735 + */ 736 + struct drm_property *non_desktop_property; 737 + 731 738 /* dumb ioctl parameters */ 732 739 uint32_t preferred_depth, prefer_shadow; 733 740
-887
include/dt-bindings/msm/msm-bus-ids.h
··· 1 - /* Copyright (c) 2014-2016, The Linux Foundation. All rights reserved. 2 - * 3 - * This program is free software; you can redistribute it and/or modify 4 - * it under the terms of the GNU General Public License version 2 and 5 - * only version 2 as published by the Free Software Foundation. 6 - * 7 - * This program is distributed in the hope that it will be useful, 8 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 9 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 - * GNU General Public License for more details. 11 - */ 12 - 13 - #ifndef __MSM_BUS_IDS_H 14 - #define __MSM_BUS_IDS_H 15 - 16 - /* Aggregation types */ 17 - #define AGG_SCHEME_NONE 0 18 - #define AGG_SCHEME_LEG 1 19 - #define AGG_SCHEME_1 2 20 - 21 - /* Topology related enums */ 22 - #define MSM_BUS_FAB_DEFAULT 0 23 - #define MSM_BUS_FAB_APPSS 0 24 - #define MSM_BUS_FAB_SYSTEM 1024 25 - #define MSM_BUS_FAB_MMSS 2048 26 - #define MSM_BUS_FAB_SYSTEM_FPB 3072 27 - #define MSM_BUS_FAB_CPSS_FPB 4096 28 - 29 - #define MSM_BUS_FAB_BIMC 0 30 - #define MSM_BUS_FAB_SYS_NOC 1024 31 - #define MSM_BUS_FAB_MMSS_NOC 2048 32 - #define MSM_BUS_FAB_OCMEM_NOC 3072 33 - #define MSM_BUS_FAB_PERIPH_NOC 4096 34 - #define MSM_BUS_FAB_CONFIG_NOC 5120 35 - #define MSM_BUS_FAB_OCMEM_VNOC 6144 36 - #define MSM_BUS_FAB_MMSS_AHB 2049 37 - #define MSM_BUS_FAB_A0_NOC 6145 38 - #define MSM_BUS_FAB_A1_NOC 6146 39 - #define MSM_BUS_FAB_A2_NOC 6147 40 - #define MSM_BUS_FAB_GNOC 6148 41 - #define MSM_BUS_FAB_CR_VIRT 6149 42 - 43 - #define MSM_BUS_MASTER_FIRST 1 44 - #define MSM_BUS_MASTER_AMPSS_M0 1 45 - #define MSM_BUS_MASTER_AMPSS_M1 2 46 - #define MSM_BUS_APPSS_MASTER_FAB_MMSS 3 47 - #define MSM_BUS_APPSS_MASTER_FAB_SYSTEM 4 48 - #define MSM_BUS_SYSTEM_MASTER_FAB_APPSS 5 49 - #define MSM_BUS_MASTER_SPS 6 50 - #define MSM_BUS_MASTER_ADM_PORT0 7 51 - #define MSM_BUS_MASTER_ADM_PORT1 8 52 - #define MSM_BUS_SYSTEM_MASTER_ADM1_PORT0 9 53 - #define MSM_BUS_MASTER_ADM1_PORT1 10 54 - #define MSM_BUS_MASTER_LPASS_PROC 11 55 - #define MSM_BUS_MASTER_MSS_PROCI 12 56 - #define MSM_BUS_MASTER_MSS_PROCD 13 57 - #define MSM_BUS_MASTER_MSS_MDM_PORT0 14 58 - #define MSM_BUS_MASTER_LPASS 15 59 - #define MSM_BUS_SYSTEM_MASTER_CPSS_FPB 16 60 - #define MSM_BUS_SYSTEM_MASTER_SYSTEM_FPB 17 61 - #define MSM_BUS_SYSTEM_MASTER_MMSS_FPB 18 62 - #define MSM_BUS_MASTER_ADM1_CI 19 63 - #define MSM_BUS_MASTER_ADM0_CI 20 64 - #define MSM_BUS_MASTER_MSS_MDM_PORT1 21 65 - #define MSM_BUS_MASTER_MDP_PORT0 22 66 - #define MSM_BUS_MASTER_MDP_PORT1 23 67 - #define MSM_BUS_MMSS_MASTER_ADM1_PORT0 24 68 - #define MSM_BUS_MASTER_ROTATOR 25 69 - #define MSM_BUS_MASTER_GRAPHICS_3D 26 70 - #define MSM_BUS_MASTER_JPEG_DEC 27 71 - #define MSM_BUS_MASTER_GRAPHICS_2D_CORE0 28 72 - #define MSM_BUS_MASTER_VFE 29 73 - #define MSM_BUS_MASTER_VFE0 MSM_BUS_MASTER_VFE 74 - #define MSM_BUS_MASTER_VPE 30 75 - #define MSM_BUS_MASTER_JPEG_ENC 31 76 - #define MSM_BUS_MASTER_GRAPHICS_2D_CORE1 32 77 - #define MSM_BUS_MMSS_MASTER_APPS_FAB 33 78 - #define MSM_BUS_MASTER_HD_CODEC_PORT0 34 79 - #define MSM_BUS_MASTER_HD_CODEC_PORT1 35 80 - #define MSM_BUS_MASTER_SPDM 36 81 - #define MSM_BUS_MASTER_RPM 37 82 - #define MSM_BUS_MASTER_MSS 38 83 - #define MSM_BUS_MASTER_RIVA 39 84 - #define MSM_BUS_MASTER_SNOC_VMEM 40 85 - #define MSM_BUS_MASTER_MSS_SW_PROC 41 86 - #define MSM_BUS_MASTER_MSS_FW_PROC 42 87 - #define MSM_BUS_MASTER_HMSS 43 88 - #define MSM_BUS_MASTER_GSS_NAV 44 89 - #define MSM_BUS_MASTER_PCIE 45 90 - #define MSM_BUS_MASTER_SATA 46 91 - #define MSM_BUS_MASTER_CRYPTO 47 92 - #define MSM_BUS_MASTER_VIDEO_CAP 48 93 - #define MSM_BUS_MASTER_GRAPHICS_3D_PORT1 49 94 - #define MSM_BUS_MASTER_VIDEO_ENC 50 95 - #define MSM_BUS_MASTER_VIDEO_DEC 51 96 - #define MSM_BUS_MASTER_LPASS_AHB 52 97 - #define MSM_BUS_MASTER_QDSS_BAM 53 98 - #define MSM_BUS_MASTER_SNOC_CFG 54 99 - #define MSM_BUS_MASTER_CRYPTO_CORE0 55 100 - #define MSM_BUS_MASTER_CRYPTO_CORE1 56 101 - #define MSM_BUS_MASTER_MSS_NAV 57 102 - #define MSM_BUS_MASTER_OCMEM_DMA 58 103 - #define MSM_BUS_MASTER_WCSS 59 104 - #define MSM_BUS_MASTER_QDSS_ETR 60 105 - #define MSM_BUS_MASTER_USB3 61 106 - #define MSM_BUS_MASTER_JPEG 62 107 - #define MSM_BUS_MASTER_VIDEO_P0 63 108 - #define MSM_BUS_MASTER_VIDEO_P1 64 109 - #define MSM_BUS_MASTER_MSS_PROC 65 110 - #define MSM_BUS_MASTER_JPEG_OCMEM 66 111 - #define MSM_BUS_MASTER_MDP_OCMEM 67 112 - #define MSM_BUS_MASTER_VIDEO_P0_OCMEM 68 113 - #define MSM_BUS_MASTER_VIDEO_P1_OCMEM 69 114 - #define MSM_BUS_MASTER_VFE_OCMEM 70 115 - #define MSM_BUS_MASTER_CNOC_ONOC_CFG 71 116 - #define MSM_BUS_MASTER_RPM_INST 72 117 - #define MSM_BUS_MASTER_RPM_DATA 73 118 - #define MSM_BUS_MASTER_RPM_SYS 74 119 - #define MSM_BUS_MASTER_DEHR 75 120 - #define MSM_BUS_MASTER_QDSS_DAP 76 121 - #define MSM_BUS_MASTER_TIC 77 122 - #define MSM_BUS_MASTER_SDCC_1 78 123 - #define MSM_BUS_MASTER_SDCC_3 79 124 - #define MSM_BUS_MASTER_SDCC_4 80 125 - #define MSM_BUS_MASTER_SDCC_2 81 126 - #define MSM_BUS_MASTER_TSIF 82 127 - #define MSM_BUS_MASTER_BAM_DMA 83 128 - #define MSM_BUS_MASTER_BLSP_2 84 129 - #define MSM_BUS_MASTER_USB_HSIC 85 130 - #define MSM_BUS_MASTER_BLSP_1 86 131 - #define MSM_BUS_MASTER_USB_HS 87 132 - #define MSM_BUS_MASTER_PNOC_CFG 88 133 - #define MSM_BUS_MASTER_V_OCMEM_GFX3D 89 134 - #define MSM_BUS_MASTER_IPA 90 135 - #define MSM_BUS_MASTER_QPIC 91 136 - #define MSM_BUS_MASTER_MDPE 92 137 - #define MSM_BUS_MASTER_USB_HS2 93 138 - #define MSM_BUS_MASTER_VPU 94 139 - #define MSM_BUS_MASTER_UFS 95 140 - #define MSM_BUS_MASTER_BCAST 96 141 - #define MSM_BUS_MASTER_CRYPTO_CORE2 97 142 - #define MSM_BUS_MASTER_EMAC 98 143 - #define MSM_BUS_MASTER_VPU_1 99 144 - #define MSM_BUS_MASTER_PCIE_1 100 145 - #define MSM_BUS_MASTER_USB3_1 101 146 - #define MSM_BUS_MASTER_CNOC_MNOC_MMSS_CFG 102 147 - #define MSM_BUS_MASTER_CNOC_MNOC_CFG 103 148 - #define MSM_BUS_MASTER_TCU_0 104 149 - #define MSM_BUS_MASTER_TCU_1 105 150 - #define MSM_BUS_MASTER_CPP 106 151 - #define MSM_BUS_MASTER_AUDIO 107 152 - #define MSM_BUS_MASTER_PCIE_2 108 153 - #define MSM_BUS_MASTER_VFE1 109 154 - #define MSM_BUS_MASTER_XM_USB_HS1 110 155 - #define MSM_BUS_MASTER_PCNOC_BIMC_1 111 156 - #define MSM_BUS_MASTER_BIMC_PCNOC 112 157 - #define MSM_BUS_MASTER_XI_USB_HSIC 113 158 - #define MSM_BUS_MASTER_SGMII 114 159 - #define MSM_BUS_SPMI_FETCHER 115 160 - #define MSM_BUS_MASTER_GNOC_BIMC 116 161 - #define MSM_BUS_MASTER_CRVIRT_A2NOC 117 162 - #define MSM_BUS_MASTER_CNOC_A2NOC 118 163 - #define MSM_BUS_MASTER_WLAN 119 164 - #define MSM_BUS_MASTER_MSS_CE 120 165 - #define MSM_BUS_MASTER_CDSP_PROC 121 166 - #define MSM_BUS_MASTER_GNOC_SNOC 122 167 - #define MSM_BUS_MASTER_PIMEM 123 168 - #define MSM_BUS_MASTER_MASTER_LAST 124 169 - 170 - #define MSM_BUS_SYSTEM_FPB_MASTER_SYSTEM MSM_BUS_SYSTEM_MASTER_SYSTEM_FPB 171 - #define MSM_BUS_CPSS_FPB_MASTER_SYSTEM MSM_BUS_SYSTEM_MASTER_CPSS_FPB 172 - 173 - #define MSM_BUS_SNOC_MM_INT_0 10000 174 - #define MSM_BUS_SNOC_MM_INT_1 10001 175 - #define MSM_BUS_SNOC_MM_INT_2 10002 176 - #define MSM_BUS_SNOC_MM_INT_BIMC 10003 177 - #define MSM_BUS_SNOC_INT_0 10004 178 - #define MSM_BUS_SNOC_INT_1 10005 179 - #define MSM_BUS_SNOC_INT_BIMC 10006 180 - #define MSM_BUS_SNOC_BIMC_0_MAS 10007 181 - #define MSM_BUS_SNOC_BIMC_1_MAS 10008 182 - #define MSM_BUS_SNOC_QDSS_INT 10009 183 - #define MSM_BUS_PNOC_SNOC_MAS 10010 184 - #define MSM_BUS_PNOC_SNOC_SLV 10011 185 - #define MSM_BUS_PNOC_INT_0 10012 186 - #define MSM_BUS_PNOC_INT_1 10013 187 - #define MSM_BUS_PNOC_M_0 10014 188 - #define MSM_BUS_PNOC_M_1 10015 189 - #define MSM_BUS_BIMC_SNOC_MAS 10016 190 - #define MSM_BUS_BIMC_SNOC_SLV 10017 191 - #define MSM_BUS_PNOC_SLV_0 10018 192 - #define MSM_BUS_PNOC_SLV_1 10019 193 - #define MSM_BUS_PNOC_SLV_2 10020 194 - #define MSM_BUS_PNOC_SLV_3 10021 195 - #define MSM_BUS_PNOC_SLV_4 10022 196 - #define MSM_BUS_PNOC_SLV_8 10023 197 - #define MSM_BUS_PNOC_SLV_9 10024 198 - #define MSM_BUS_SNOC_BIMC_0_SLV 10025 199 - #define MSM_BUS_SNOC_BIMC_1_SLV 10026 200 - #define MSM_BUS_MNOC_BIMC_MAS 10027 201 - #define MSM_BUS_MNOC_BIMC_SLV 10028 202 - #define MSM_BUS_BIMC_MNOC_MAS 10029 203 - #define MSM_BUS_BIMC_MNOC_SLV 10030 204 - #define MSM_BUS_SNOC_BIMC_MAS 10031 205 - #define MSM_BUS_SNOC_BIMC_SLV 10032 206 - #define MSM_BUS_CNOC_SNOC_MAS 10033 207 - #define MSM_BUS_CNOC_SNOC_SLV 10034 208 - #define MSM_BUS_SNOC_CNOC_MAS 10035 209 - #define MSM_BUS_SNOC_CNOC_SLV 10036 210 - #define MSM_BUS_OVNOC_SNOC_MAS 10037 211 - #define MSM_BUS_OVNOC_SNOC_SLV 10038 212 - #define MSM_BUS_SNOC_OVNOC_MAS 10039 213 - #define MSM_BUS_SNOC_OVNOC_SLV 10040 214 - #define MSM_BUS_SNOC_PNOC_MAS 10041 215 - #define MSM_BUS_SNOC_PNOC_SLV 10042 216 - #define MSM_BUS_BIMC_INT_APPS_EBI 10043 217 - #define MSM_BUS_BIMC_INT_APPS_SNOC 10044 218 - #define MSM_BUS_SNOC_BIMC_2_MAS 10045 219 - #define MSM_BUS_SNOC_BIMC_2_SLV 10046 220 - #define MSM_BUS_PNOC_SLV_5 10047 221 - #define MSM_BUS_PNOC_SLV_7 10048 222 - #define MSM_BUS_PNOC_INT_2 10049 223 - #define MSM_BUS_PNOC_INT_3 10050 224 - #define MSM_BUS_PNOC_INT_4 10051 225 - #define MSM_BUS_PNOC_INT_5 10052 226 - #define MSM_BUS_PNOC_INT_6 10053 227 - #define MSM_BUS_PNOC_INT_7 10054 228 - #define MSM_BUS_BIMC_SNOC_1_MAS 10055 229 - #define MSM_BUS_BIMC_SNOC_1_SLV 10056 230 - #define MSM_BUS_PNOC_A1NOC_MAS 10057 231 - #define MSM_BUS_PNOC_A1NOC_SLV 10058 232 - #define MSM_BUS_CNOC_A1NOC_MAS 10059 233 - #define MSM_BUS_A0NOC_SNOC_MAS 10060 234 - #define MSM_BUS_A0NOC_SNOC_SLV 10061 235 - #define MSM_BUS_A1NOC_SNOC_SLV 10062 236 - #define MSM_BUS_A1NOC_SNOC_MAS 10063 237 - #define MSM_BUS_A2NOC_SNOC_MAS 10064 238 - #define MSM_BUS_A2NOC_SNOC_SLV 10065 239 - #define MSM_BUS_SNOC_INT_2 10066 240 - #define MSM_BUS_A0NOC_QDSS_INT 10067 241 - #define MSM_BUS_INT_LAST 10068 242 - 243 - #define MSM_BUS_INT_TEST_ID 20000 244 - #define MSM_BUS_INT_TEST_LAST 20050 245 - 246 - #define MSM_BUS_SLAVE_FIRST 512 247 - #define MSM_BUS_SLAVE_EBI_CH0 512 248 - #define MSM_BUS_SLAVE_EBI_CH1 513 249 - #define MSM_BUS_SLAVE_AMPSS_L2 514 250 - #define MSM_BUS_APPSS_SLAVE_FAB_MMSS 515 251 - #define MSM_BUS_APPSS_SLAVE_FAB_SYSTEM 516 252 - #define MSM_BUS_SYSTEM_SLAVE_FAB_APPS 517 253 - #define MSM_BUS_SLAVE_SPS 518 254 - #define MSM_BUS_SLAVE_SYSTEM_IMEM 519 255 - #define MSM_BUS_SLAVE_AMPSS 520 256 - #define MSM_BUS_SLAVE_MSS 521 257 - #define MSM_BUS_SLAVE_LPASS 522 258 - #define MSM_BUS_SYSTEM_SLAVE_CPSS_FPB 523 259 - #define MSM_BUS_SYSTEM_SLAVE_SYSTEM_FPB 524 260 - #define MSM_BUS_SYSTEM_SLAVE_MMSS_FPB 525 261 - #define MSM_BUS_SLAVE_CORESIGHT 526 262 - #define MSM_BUS_SLAVE_RIVA 527 263 - #define MSM_BUS_SLAVE_SMI 528 264 - #define MSM_BUS_MMSS_SLAVE_FAB_APPS 529 265 - #define MSM_BUS_MMSS_SLAVE_FAB_APPS_1 530 266 - #define MSM_BUS_SLAVE_MM_IMEM 531 267 - #define MSM_BUS_SLAVE_CRYPTO 532 268 - #define MSM_BUS_SLAVE_SPDM 533 269 - #define MSM_BUS_SLAVE_RPM 534 270 - #define MSM_BUS_SLAVE_RPM_MSG_RAM 535 271 - #define MSM_BUS_SLAVE_MPM 536 272 - #define MSM_BUS_SLAVE_PMIC1_SSBI1_A 537 273 - #define MSM_BUS_SLAVE_PMIC1_SSBI1_B 538 274 - #define MSM_BUS_SLAVE_PMIC1_SSBI1_C 539 275 - #define MSM_BUS_SLAVE_PMIC2_SSBI2_A 540 276 - #define MSM_BUS_SLAVE_PMIC2_SSBI2_B 541 277 - #define MSM_BUS_SLAVE_GSBI1_UART 542 278 - #define MSM_BUS_SLAVE_GSBI2_UART 543 279 - #define MSM_BUS_SLAVE_GSBI3_UART 544 280 - #define MSM_BUS_SLAVE_GSBI4_UART 545 281 - #define MSM_BUS_SLAVE_GSBI5_UART 546 282 - #define MSM_BUS_SLAVE_GSBI6_UART 547 283 - #define MSM_BUS_SLAVE_GSBI7_UART 548 284 - #define MSM_BUS_SLAVE_GSBI8_UART 549 285 - #define MSM_BUS_SLAVE_GSBI9_UART 550 286 - #define MSM_BUS_SLAVE_GSBI10_UART 551 287 - #define MSM_BUS_SLAVE_GSBI11_UART 552 288 - #define MSM_BUS_SLAVE_GSBI12_UART 553 289 - #define MSM_BUS_SLAVE_GSBI1_QUP 554 290 - #define MSM_BUS_SLAVE_GSBI2_QUP 555 291 - #define MSM_BUS_SLAVE_GSBI3_QUP 556 292 - #define MSM_BUS_SLAVE_GSBI4_QUP 557 293 - #define MSM_BUS_SLAVE_GSBI5_QUP 558 294 - #define MSM_BUS_SLAVE_GSBI6_QUP 559 295 - #define MSM_BUS_SLAVE_GSBI7_QUP 560 296 - #define MSM_BUS_SLAVE_GSBI8_QUP 561 297 - #define MSM_BUS_SLAVE_GSBI9_QUP 562 298 - #define MSM_BUS_SLAVE_GSBI10_QUP 563 299 - #define MSM_BUS_SLAVE_GSBI11_QUP 564 300 - #define MSM_BUS_SLAVE_GSBI12_QUP 565 301 - #define MSM_BUS_SLAVE_EBI2_NAND 566 302 - #define MSM_BUS_SLAVE_EBI2_CS0 567 303 - #define MSM_BUS_SLAVE_EBI2_CS1 568 304 - #define MSM_BUS_SLAVE_EBI2_CS2 569 305 - #define MSM_BUS_SLAVE_EBI2_CS3 570 306 - #define MSM_BUS_SLAVE_EBI2_CS4 571 307 - #define MSM_BUS_SLAVE_EBI2_CS5 572 308 - #define MSM_BUS_SLAVE_USB_FS1 573 309 - #define MSM_BUS_SLAVE_USB_FS2 574 310 - #define MSM_BUS_SLAVE_TSIF 575 311 - #define MSM_BUS_SLAVE_MSM_TSSC 576 312 - #define MSM_BUS_SLAVE_MSM_PDM 577 313 - #define MSM_BUS_SLAVE_MSM_DIMEM 578 314 - #define MSM_BUS_SLAVE_MSM_TCSR 579 315 - #define MSM_BUS_SLAVE_MSM_PRNG 580 316 - #define MSM_BUS_SLAVE_GSS 581 317 - #define MSM_BUS_SLAVE_SATA 582 318 - #define MSM_BUS_SLAVE_USB3 583 319 - #define MSM_BUS_SLAVE_WCSS 584 320 - #define MSM_BUS_SLAVE_OCIMEM 585 321 - #define MSM_BUS_SLAVE_SNOC_OCMEM 586 322 - #define MSM_BUS_SLAVE_SERVICE_SNOC 587 323 - #define MSM_BUS_SLAVE_QDSS_STM 588 324 - #define MSM_BUS_SLAVE_CAMERA_CFG 589 325 - #define MSM_BUS_SLAVE_DISPLAY_CFG 590 326 - #define MSM_BUS_SLAVE_OCMEM_CFG 591 327 - #define MSM_BUS_SLAVE_CPR_CFG 592 328 - #define MSM_BUS_SLAVE_CPR_XPU_CFG 593 329 - #define MSM_BUS_SLAVE_MISC_CFG 594 330 - #define MSM_BUS_SLAVE_MISC_XPU_CFG 595 331 - #define MSM_BUS_SLAVE_VENUS_CFG 596 332 - #define MSM_BUS_SLAVE_MISC_VENUS_CFG 597 333 - #define MSM_BUS_SLAVE_GRAPHICS_3D_CFG 598 334 - #define MSM_BUS_SLAVE_MMSS_CLK_CFG 599 335 - #define MSM_BUS_SLAVE_MMSS_CLK_XPU_CFG 600 336 - #define MSM_BUS_SLAVE_MNOC_MPU_CFG 601 337 - #define MSM_BUS_SLAVE_ONOC_MPU_CFG 602 338 - #define MSM_BUS_SLAVE_SERVICE_MNOC 603 339 - #define MSM_BUS_SLAVE_OCMEM 604 340 - #define MSM_BUS_SLAVE_SERVICE_ONOC 605 341 - #define MSM_BUS_SLAVE_SDCC_1 606 342 - #define MSM_BUS_SLAVE_SDCC_3 607 343 - #define MSM_BUS_SLAVE_SDCC_2 608 344 - #define MSM_BUS_SLAVE_SDCC_4 609 345 - #define MSM_BUS_SLAVE_BAM_DMA 610 346 - #define MSM_BUS_SLAVE_BLSP_2 611 347 - #define MSM_BUS_SLAVE_USB_HSIC 612 348 - #define MSM_BUS_SLAVE_BLSP_1 613 349 - #define MSM_BUS_SLAVE_USB_HS 614 350 - #define MSM_BUS_SLAVE_PDM 615 351 - #define MSM_BUS_SLAVE_PERIPH_APU_CFG 616 352 - #define MSM_BUS_SLAVE_PNOC_MPU_CFG 617 353 - #define MSM_BUS_SLAVE_PRNG 618 354 - #define MSM_BUS_SLAVE_SERVICE_PNOC 619 355 - #define MSM_BUS_SLAVE_CLK_CTL 620 356 - #define MSM_BUS_SLAVE_CNOC_MSS 621 357 - #define MSM_BUS_SLAVE_SECURITY 622 358 - #define MSM_BUS_SLAVE_TCSR 623 359 - #define MSM_BUS_SLAVE_TLMM 624 360 - #define MSM_BUS_SLAVE_CRYPTO_0_CFG 625 361 - #define MSM_BUS_SLAVE_CRYPTO_1_CFG 626 362 - #define MSM_BUS_SLAVE_IMEM_CFG 627 363 - #define MSM_BUS_SLAVE_MESSAGE_RAM 628 364 - #define MSM_BUS_SLAVE_BIMC_CFG 629 365 - #define MSM_BUS_SLAVE_BOOT_ROM 630 366 - #define MSM_BUS_SLAVE_CNOC_MNOC_MMSS_CFG 631 367 - #define MSM_BUS_SLAVE_PMIC_ARB 632 368 - #define MSM_BUS_SLAVE_SPDM_WRAPPER 633 369 - #define MSM_BUS_SLAVE_DEHR_CFG 634 370 - #define MSM_BUS_SLAVE_QDSS_CFG 635 371 - #define MSM_BUS_SLAVE_RBCPR_CFG 636 372 - #define MSM_BUS_SLAVE_RBCPR_QDSS_APU_CFG 637 373 - #define MSM_BUS_SLAVE_SNOC_MPU_CFG 638 374 - #define MSM_BUS_SLAVE_CNOC_ONOC_CFG 639 375 - #define MSM_BUS_SLAVE_CNOC_MNOC_CFG 640 376 - #define MSM_BUS_SLAVE_PNOC_CFG 641 377 - #define MSM_BUS_SLAVE_SNOC_CFG 642 378 - #define MSM_BUS_SLAVE_EBI1_DLL_CFG 643 379 - #define MSM_BUS_SLAVE_PHY_APU_CFG 644 380 - #define MSM_BUS_SLAVE_EBI1_PHY_CFG 645 381 - #define MSM_BUS_SLAVE_SERVICE_CNOC 646 382 - #define MSM_BUS_SLAVE_IPS_CFG 647 383 - #define MSM_BUS_SLAVE_QPIC 648 384 - #define MSM_BUS_SLAVE_DSI_CFG 649 385 - #define MSM_BUS_SLAVE_UFS_CFG 650 386 - #define MSM_BUS_SLAVE_RBCPR_CX_CFG 651 387 - #define MSM_BUS_SLAVE_RBCPR_MX_CFG 652 388 - #define MSM_BUS_SLAVE_PCIE_CFG 653 389 - #define MSM_BUS_SLAVE_USB_PHYS_CFG 654 390 - #define MSM_BUS_SLAVE_VIDEO_CAP_CFG 655 391 - #define MSM_BUS_SLAVE_AVSYNC_CFG 656 392 - #define MSM_BUS_SLAVE_CRYPTO_2_CFG 657 393 - #define MSM_BUS_SLAVE_VPU_CFG 658 394 - #define MSM_BUS_SLAVE_BCAST_CFG 659 395 - #define MSM_BUS_SLAVE_KLM_CFG 660 396 - #define MSM_BUS_SLAVE_GENI_IR_CFG 661 397 - #define MSM_BUS_SLAVE_OCMEM_GFX 662 398 - #define MSM_BUS_SLAVE_CATS_128 663 399 - #define MSM_BUS_SLAVE_OCMEM_64 664 400 - #define MSM_BUS_SLAVE_PCIE_0 665 401 - #define MSM_BUS_SLAVE_PCIE_1 666 402 - #define MSM_BUS_SLAVE_PCIE_0_CFG 667 403 - #define MSM_BUS_SLAVE_PCIE_1_CFG 668 404 - #define MSM_BUS_SLAVE_SRVC_MNOC 669 405 - #define MSM_BUS_SLAVE_USB_HS2 670 406 - #define MSM_BUS_SLAVE_AUDIO 671 407 - #define MSM_BUS_SLAVE_TCU 672 408 - #define MSM_BUS_SLAVE_APPSS 673 409 - #define MSM_BUS_SLAVE_PCIE_PARF 674 410 - #define MSM_BUS_SLAVE_USB3_PHY_CFG 675 411 - #define MSM_BUS_SLAVE_IPA_CFG 676 412 - #define MSM_BUS_SLAVE_A0NOC_SNOC 677 413 - #define MSM_BUS_SLAVE_A1NOC_SNOC 678 414 - #define MSM_BUS_SLAVE_A2NOC_SNOC 679 415 - #define MSM_BUS_SLAVE_HMSS_L3 680 416 - #define MSM_BUS_SLAVE_PIMEM_CFG 681 417 - #define MSM_BUS_SLAVE_DCC_CFG 682 418 - #define MSM_BUS_SLAVE_QDSS_RBCPR_APU_CFG 683 419 - #define MSM_BUS_SLAVE_PCIE_2_CFG 684 420 - #define MSM_BUS_SLAVE_PCIE20_AHB2PHY 685 421 - #define MSM_BUS_SLAVE_A0NOC_CFG 686 422 - #define MSM_BUS_SLAVE_A1NOC_CFG 687 423 - #define MSM_BUS_SLAVE_A2NOC_CFG 688 424 - #define MSM_BUS_SLAVE_A1NOC_MPU_CFG 689 425 - #define MSM_BUS_SLAVE_A2NOC_MPU_CFG 690 426 - #define MSM_BUS_SLAVE_A0NOC_SMMU_CFG 691 427 - #define MSM_BUS_SLAVE_A1NOC_SMMU_CFG 692 428 - #define MSM_BUS_SLAVE_A2NOC_SMMU_CFG 693 429 - #define MSM_BUS_SLAVE_LPASS_SMMU_CFG 694 430 - #define MSM_BUS_SLAVE_MMAGIC_CFG 695 431 - #define MSM_BUS_SLAVE_VENUS_THROTTLE_CFG 696 432 - #define MSM_BUS_SLAVE_SSC_CFG 697 433 - #define MSM_BUS_SLAVE_DSA_CFG 698 434 - #define MSM_BUS_SLAVE_DSA_MPU_CFG 699 435 - #define MSM_BUS_SLAVE_DISPLAY_THROTTLE_CFG 700 436 - #define MSM_BUS_SLAVE_SMMU_CPP_CFG 701 437 - #define MSM_BUS_SLAVE_SMMU_JPEG_CFG 702 438 - #define MSM_BUS_SLAVE_SMMU_MDP_CFG 703 439 - #define MSM_BUS_SLAVE_SMMU_ROTATOR_CFG 704 440 - #define MSM_BUS_SLAVE_SMMU_VENUS_CFG 705 441 - #define MSM_BUS_SLAVE_SMMU_VFE_CFG 706 442 - #define MSM_BUS_SLAVE_A0NOC_MPU_CFG 707 443 - #define MSM_BUS_SLAVE_VMEM_CFG 708 444 - #define MSM_BUS_SLAVE_CAMERA_THROTTLE_CFG 709 445 - #define MSM_BUS_SLAVE_VMEM 710 446 - #define MSM_BUS_SLAVE_AHB2PHY 711 447 - #define MSM_BUS_SLAVE_PIMEM 712 448 - #define MSM_BUS_SLAVE_SNOC_VMEM 713 449 - #define MSM_BUS_SLAVE_PCIE_2 714 450 - #define MSM_BUS_SLAVE_RBCPR_MX 715 451 - #define MSM_BUS_SLAVE_RBCPR_CX 716 452 - #define MSM_BUS_SLAVE_BIMC_PCNOC 717 453 - #define MSM_BUS_SLAVE_PCNOC_BIMC_1 718 454 - #define MSM_BUS_SLAVE_SGMII 719 455 - #define MSM_BUS_SLAVE_SPMI_FETCHER 720 456 - #define MSM_BUS_PNOC_SLV_6 721 457 - #define MSM_BUS_SLAVE_MMSS_SMMU_CFG 722 458 - #define MSM_BUS_SLAVE_WLAN 723 459 - #define MSM_BUS_SLAVE_CRVIRT_A2NOC 724 460 - #define MSM_BUS_SLAVE_CNOC_A2NOC 725 461 - #define MSM_BUS_SLAVE_GLM 726 462 - #define MSM_BUS_SLAVE_GNOC_BIMC 727 463 - #define MSM_BUS_SLAVE_GNOC_SNOC 728 464 - #define MSM_BUS_SLAVE_QM_CFG 729 465 - #define MSM_BUS_SLAVE_TLMM_EAST 730 466 - #define MSM_BUS_SLAVE_TLMM_NORTH 731 467 - #define MSM_BUS_SLAVE_TLMM_WEST 732 468 - #define MSM_BUS_SLAVE_SKL 733 469 - #define MSM_BUS_SLAVE_LPASS_TCM 734 470 - #define MSM_BUS_SLAVE_TLMM_SOUTH 735 471 - #define MSM_BUS_SLAVE_TLMM_CENTER 736 472 - #define MSM_BUS_MSS_NAV_CE_MPU_CFG 737 473 - #define MSM_BUS_SLAVE_A2NOC_THROTTLE_CFG 738 474 - #define MSM_BUS_SLAVE_CDSP 739 475 - #define MSM_BUS_SLAVE_CDSP_SMMU_CFG 740 476 - #define MSM_BUS_SLAVE_LPASS_MPU_CFG 741 477 - #define MSM_BUS_SLAVE_CSI_PHY_CFG 742 478 - #define MSM_BUS_SLAVE_LAST 743 479 - 480 - #define MSM_BUS_SYSTEM_FPB_SLAVE_SYSTEM MSM_BUS_SYSTEM_SLAVE_SYSTEM_FPB 481 - #define MSM_BUS_CPSS_FPB_SLAVE_SYSTEM MSM_BUS_SYSTEM_SLAVE_CPSS_FPB 482 - 483 - /* 484 - * ID's used in RPM messages 485 - */ 486 - #define ICBID_MASTER_APPSS_PROC 0 487 - #define ICBID_MASTER_MSS_PROC 1 488 - #define ICBID_MASTER_MNOC_BIMC 2 489 - #define ICBID_MASTER_SNOC_BIMC 3 490 - #define ICBID_MASTER_SNOC_BIMC_0 ICBID_MASTER_SNOC_BIMC 491 - #define ICBID_MASTER_CNOC_MNOC_MMSS_CFG 4 492 - #define ICBID_MASTER_CNOC_MNOC_CFG 5 493 - #define ICBID_MASTER_GFX3D 6 494 - #define ICBID_MASTER_JPEG 7 495 - #define ICBID_MASTER_MDP 8 496 - #define ICBID_MASTER_MDP0 ICBID_MASTER_MDP 497 - #define ICBID_MASTER_MDPS ICBID_MASTER_MDP 498 - #define ICBID_MASTER_VIDEO 9 499 - #define ICBID_MASTER_VIDEO_P0 ICBID_MASTER_VIDEO 500 - #define ICBID_MASTER_VIDEO_P1 10 501 - #define ICBID_MASTER_VFE 11 502 - #define ICBID_MASTER_VFE0 ICBID_MASTER_VFE 503 - #define ICBID_MASTER_CNOC_ONOC_CFG 12 504 - #define ICBID_MASTER_JPEG_OCMEM 13 505 - #define ICBID_MASTER_MDP_OCMEM 14 506 - #define ICBID_MASTER_VIDEO_P0_OCMEM 15 507 - #define ICBID_MASTER_VIDEO_P1_OCMEM 16 508 - #define ICBID_MASTER_VFE_OCMEM 17 509 - #define ICBID_MASTER_LPASS_AHB 18 510 - #define ICBID_MASTER_QDSS_BAM 19 511 - #define ICBID_MASTER_SNOC_CFG 20 512 - #define ICBID_MASTER_BIMC_SNOC 21 513 - #define ICBID_MASTER_BIMC_SNOC_0 ICBID_MASTER_BIMC_SNOC 514 - #define ICBID_MASTER_CNOC_SNOC 22 515 - #define ICBID_MASTER_CRYPTO 23 516 - #define ICBID_MASTER_CRYPTO_CORE0 ICBID_MASTER_CRYPTO 517 - #define ICBID_MASTER_CRYPTO_CORE1 24 518 - #define ICBID_MASTER_LPASS_PROC 25 519 - #define ICBID_MASTER_MSS 26 520 - #define ICBID_MASTER_MSS_NAV 27 521 - #define ICBID_MASTER_OCMEM_DMA 28 522 - #define ICBID_MASTER_PNOC_SNOC 29 523 - #define ICBID_MASTER_WCSS 30 524 - #define ICBID_MASTER_QDSS_ETR 31 525 - #define ICBID_MASTER_USB3 32 526 - #define ICBID_MASTER_USB3_0 ICBID_MASTER_USB3 527 - #define ICBID_MASTER_SDCC_1 33 528 - #define ICBID_MASTER_SDCC_3 34 529 - #define ICBID_MASTER_SDCC_2 35 530 - #define ICBID_MASTER_SDCC_4 36 531 - #define ICBID_MASTER_TSIF 37 532 - #define ICBID_MASTER_BAM_DMA 38 533 - #define ICBID_MASTER_BLSP_2 39 534 - #define ICBID_MASTER_USB_HSIC 40 535 - #define ICBID_MASTER_BLSP_1 41 536 - #define ICBID_MASTER_USB_HS 42 537 - #define ICBID_MASTER_USB_HS1 ICBID_MASTER_USB_HS 538 - #define ICBID_MASTER_PNOC_CFG 43 539 - #define ICBID_MASTER_SNOC_PNOC 44 540 - #define ICBID_MASTER_RPM_INST 45 541 - #define ICBID_MASTER_RPM_DATA 46 542 - #define ICBID_MASTER_RPM_SYS 47 543 - #define ICBID_MASTER_DEHR 48 544 - #define ICBID_MASTER_QDSS_DAP 49 545 - #define ICBID_MASTER_SPDM 50 546 - #define ICBID_MASTER_TIC 51 547 - #define ICBID_MASTER_SNOC_CNOC 52 548 - #define ICBID_MASTER_GFX3D_OCMEM 53 549 - #define ICBID_MASTER_GFX3D_GMEM ICBID_MASTER_GFX3D_OCMEM 550 - #define ICBID_MASTER_OVIRT_SNOC 54 551 - #define ICBID_MASTER_SNOC_OVIRT 55 552 - #define ICBID_MASTER_SNOC_GVIRT ICBID_MASTER_SNOC_OVIRT 553 - #define ICBID_MASTER_ONOC_OVIRT 56 554 - #define ICBID_MASTER_USB_HS2 57 555 - #define ICBID_MASTER_QPIC 58 556 - #define ICBID_MASTER_IPA 59 557 - #define ICBID_MASTER_DSI 60 558 - #define ICBID_MASTER_MDP1 61 559 - #define ICBID_MASTER_MDPE ICBID_MASTER_MDP1 560 - #define ICBID_MASTER_VPU_PROC 62 561 - #define ICBID_MASTER_VPU 63 562 - #define ICBID_MASTER_VPU0 ICBID_MASTER_VPU 563 - #define ICBID_MASTER_CRYPTO_CORE2 64 564 - #define ICBID_MASTER_PCIE_0 65 565 - #define ICBID_MASTER_PCIE_1 66 566 - #define ICBID_MASTER_SATA 67 567 - #define ICBID_MASTER_UFS 68 568 - #define ICBID_MASTER_USB3_1 69 569 - #define ICBID_MASTER_VIDEO_OCMEM 70 570 - #define ICBID_MASTER_VPU1 71 571 - #define ICBID_MASTER_VCAP 72 572 - #define ICBID_MASTER_EMAC 73 573 - #define ICBID_MASTER_BCAST 74 574 - #define ICBID_MASTER_MMSS_PROC 75 575 - #define ICBID_MASTER_SNOC_BIMC_1 76 576 - #define ICBID_MASTER_SNOC_PCNOC 77 577 - #define ICBID_MASTER_AUDIO 78 578 - #define ICBID_MASTER_MM_INT_0 79 579 - #define ICBID_MASTER_MM_INT_1 80 580 - #define ICBID_MASTER_MM_INT_2 81 581 - #define ICBID_MASTER_MM_INT_BIMC 82 582 - #define ICBID_MASTER_MSS_INT 83 583 - #define ICBID_MASTER_PCNOC_CFG 84 584 - #define ICBID_MASTER_PCNOC_INT_0 85 585 - #define ICBID_MASTER_PCNOC_INT_1 86 586 - #define ICBID_MASTER_PCNOC_M_0 87 587 - #define ICBID_MASTER_PCNOC_M_1 88 588 - #define ICBID_MASTER_PCNOC_S_0 89 589 - #define ICBID_MASTER_PCNOC_S_1 90 590 - #define ICBID_MASTER_PCNOC_S_2 91 591 - #define ICBID_MASTER_PCNOC_S_3 92 592 - #define ICBID_MASTER_PCNOC_S_4 93 593 - #define ICBID_MASTER_PCNOC_S_6 94 594 - #define ICBID_MASTER_PCNOC_S_7 95 595 - #define ICBID_MASTER_PCNOC_S_8 96 596 - #define ICBID_MASTER_PCNOC_S_9 97 597 - #define ICBID_MASTER_QDSS_INT 98 598 - #define ICBID_MASTER_SNOC_INT_0 99 599 - #define ICBID_MASTER_SNOC_INT_1 100 600 - #define ICBID_MASTER_SNOC_INT_BIMC 101 601 - #define ICBID_MASTER_TCU_0 102 602 - #define ICBID_MASTER_TCU_1 103 603 - #define ICBID_MASTER_BIMC_INT_0 104 604 - #define ICBID_MASTER_BIMC_INT_1 105 605 - #define ICBID_MASTER_CAMERA 106 606 - #define ICBID_MASTER_RICA 107 607 - #define ICBID_MASTER_SNOC_BIMC_2 108 608 - #define ICBID_MASTER_BIMC_SNOC_1 109 609 - #define ICBID_MASTER_A0NOC_SNOC 110 610 - #define ICBID_MASTER_A1NOC_SNOC 111 611 - #define ICBID_MASTER_A2NOC_SNOC 112 612 - #define ICBID_MASTER_PIMEM 113 613 - #define ICBID_MASTER_SNOC_VMEM 114 614 - #define ICBID_MASTER_CPP 115 615 - #define ICBID_MASTER_CNOC_A1NOC 116 616 - #define ICBID_MASTER_PNOC_A1NOC 117 617 - #define ICBID_MASTER_HMSS 118 618 - #define ICBID_MASTER_PCIE_2 119 619 - #define ICBID_MASTER_ROTATOR 120 620 - #define ICBID_MASTER_VENUS_VMEM 121 621 - #define ICBID_MASTER_DCC 122 622 - #define ICBID_MASTER_MCDMA 123 623 - #define ICBID_MASTER_PCNOC_INT_2 124 624 - #define ICBID_MASTER_PCNOC_INT_3 125 625 - #define ICBID_MASTER_PCNOC_INT_4 126 626 - #define ICBID_MASTER_PCNOC_INT_5 127 627 - #define ICBID_MASTER_PCNOC_INT_6 128 628 - #define ICBID_MASTER_PCNOC_S_5 129 629 - #define ICBID_MASTER_SENSORS_AHB 130 630 - #define ICBID_MASTER_SENSORS_PROC 131 631 - #define ICBID_MASTER_QSPI 132 632 - #define ICBID_MASTER_VFE1 133 633 - #define ICBID_MASTER_SNOC_INT_2 134 634 - #define ICBID_MASTER_SMMNOC_BIMC 135 635 - #define ICBID_MASTER_CRVIRT_A1NOC 136 636 - #define ICBID_MASTER_XM_USB_HS1 137 637 - #define ICBID_MASTER_XI_USB_HS1 138 638 - #define ICBID_MASTER_PCNOC_BIMC_1 139 639 - #define ICBID_MASTER_BIMC_PCNOC 140 640 - #define ICBID_MASTER_XI_HSIC 141 641 - #define ICBID_MASTER_SGMII 142 642 - #define ICBID_MASTER_SPMI_FETCHER 143 643 - #define ICBID_MASTER_GNOC_BIMC 144 644 - #define ICBID_MASTER_CRVIRT_A2NOC 145 645 - #define ICBID_MASTER_CNOC_A2NOC 146 646 - #define ICBID_MASTER_WLAN 147 647 - #define ICBID_MASTER_MSS_CE 148 648 - #define ICBID_MASTER_CDSP_PROC 149 649 - #define ICBID_MASTER_GNOC_SNOC 150 650 - 651 - #define ICBID_SLAVE_EBI1 0 652 - #define ICBID_SLAVE_APPSS_L2 1 653 - #define ICBID_SLAVE_BIMC_SNOC 2 654 - #define ICBID_SLAVE_BIMC_SNOC_0 ICBID_SLAVE_BIMC_SNOC 655 - #define ICBID_SLAVE_CAMERA_CFG 3 656 - #define ICBID_SLAVE_DISPLAY_CFG 4 657 - #define ICBID_SLAVE_OCMEM_CFG 5 658 - #define ICBID_SLAVE_CPR_CFG 6 659 - #define ICBID_SLAVE_CPR_XPU_CFG 7 660 - #define ICBID_SLAVE_MISC_CFG 8 661 - #define ICBID_SLAVE_MISC_XPU_CFG 9 662 - #define ICBID_SLAVE_VENUS_CFG 10 663 - #define ICBID_SLAVE_GFX3D_CFG 11 664 - #define ICBID_SLAVE_MMSS_CLK_CFG 12 665 - #define ICBID_SLAVE_MMSS_CLK_XPU_CFG 13 666 - #define ICBID_SLAVE_MNOC_MPU_CFG 14 667 - #define ICBID_SLAVE_ONOC_MPU_CFG 15 668 - #define ICBID_SLAVE_MNOC_BIMC 16 669 - #define ICBID_SLAVE_SERVICE_MNOC 17 670 - #define ICBID_SLAVE_OCMEM 18 671 - #define ICBID_SLAVE_GMEM ICBID_SLAVE_OCMEM 672 - #define ICBID_SLAVE_SERVICE_ONOC 19 673 - #define ICBID_SLAVE_APPSS 20 674 - #define ICBID_SLAVE_LPASS 21 675 - #define ICBID_SLAVE_USB3 22 676 - #define ICBID_SLAVE_USB3_0 ICBID_SLAVE_USB3 677 - #define ICBID_SLAVE_WCSS 23 678 - #define ICBID_SLAVE_SNOC_BIMC 24 679 - #define ICBID_SLAVE_SNOC_BIMC_0 ICBID_SLAVE_SNOC_BIMC 680 - #define ICBID_SLAVE_SNOC_CNOC 25 681 - #define ICBID_SLAVE_IMEM 26 682 - #define ICBID_SLAVE_OCIMEM ICBID_SLAVE_IMEM 683 - #define ICBID_SLAVE_SNOC_OVIRT 27 684 - #define ICBID_SLAVE_SNOC_GVIRT ICBID_SLAVE_SNOC_OVIRT 685 - #define ICBID_SLAVE_SNOC_PNOC 28 686 - #define ICBID_SLAVE_SNOC_PCNOC ICBID_SLAVE_SNOC_PNOC 687 - #define ICBID_SLAVE_SERVICE_SNOC 29 688 - #define ICBID_SLAVE_QDSS_STM 30 689 - #define ICBID_SLAVE_SDCC_1 31 690 - #define ICBID_SLAVE_SDCC_3 32 691 - #define ICBID_SLAVE_SDCC_2 33 692 - #define ICBID_SLAVE_SDCC_4 34 693 - #define ICBID_SLAVE_TSIF 35 694 - #define ICBID_SLAVE_BAM_DMA 36 695 - #define ICBID_SLAVE_BLSP_2 37 696 - #define ICBID_SLAVE_USB_HSIC 38 697 - #define ICBID_SLAVE_BLSP_1 39 698 - #define ICBID_SLAVE_USB_HS 40 699 - #define ICBID_SLAVE_USB_HS1 ICBID_SLAVE_USB_HS 700 - #define ICBID_SLAVE_PDM 41 701 - #define ICBID_SLAVE_PERIPH_APU_CFG 42 702 - #define ICBID_SLAVE_PNOC_MPU_CFG 43 703 - #define ICBID_SLAVE_PRNG 44 704 - #define ICBID_SLAVE_PNOC_SNOC 45 705 - #define ICBID_SLAVE_PCNOC_SNOC ICBID_SLAVE_PNOC_SNOC 706 - #define ICBID_SLAVE_SERVICE_PNOC 46 707 - #define ICBID_SLAVE_CLK_CTL 47 708 - #define ICBID_SLAVE_CNOC_MSS 48 709 - #define ICBID_SLAVE_PCNOC_MSS ICBID_SLAVE_CNOC_MSS 710 - #define ICBID_SLAVE_SECURITY 49 711 - #define ICBID_SLAVE_TCSR 50 712 - #define ICBID_SLAVE_TLMM 51 713 - #define ICBID_SLAVE_CRYPTO_0_CFG 52 714 - #define ICBID_SLAVE_CRYPTO_1_CFG 53 715 - #define ICBID_SLAVE_IMEM_CFG 54 716 - #define ICBID_SLAVE_MESSAGE_RAM 55 717 - #define ICBID_SLAVE_BIMC_CFG 56 718 - #define ICBID_SLAVE_BOOT_ROM 57 719 - #define ICBID_SLAVE_CNOC_MNOC_MMSS_CFG 58 720 - #define ICBID_SLAVE_PMIC_ARB 59 721 - #define ICBID_SLAVE_SPDM_WRAPPER 60 722 - #define ICBID_SLAVE_DEHR_CFG 61 723 - #define ICBID_SLAVE_MPM 62 724 - #define ICBID_SLAVE_QDSS_CFG 63 725 - #define ICBID_SLAVE_RBCPR_CFG 64 726 - #define ICBID_SLAVE_RBCPR_CX_CFG ICBID_SLAVE_RBCPR_CFG 727 - #define ICBID_SLAVE_RBCPR_QDSS_APU_CFG 65 728 - #define ICBID_SLAVE_CNOC_MNOC_CFG 66 729 - #define ICBID_SLAVE_SNOC_MPU_CFG 67 730 - #define ICBID_SLAVE_CNOC_ONOC_CFG 68 731 - #define ICBID_SLAVE_PNOC_CFG 69 732 - #define ICBID_SLAVE_SNOC_CFG 70 733 - #define ICBID_SLAVE_EBI1_DLL_CFG 71 734 - #define ICBID_SLAVE_PHY_APU_CFG 72 735 - #define ICBID_SLAVE_EBI1_PHY_CFG 73 736 - #define ICBID_SLAVE_RPM 74 737 - #define ICBID_SLAVE_CNOC_SNOC 75 738 - #define ICBID_SLAVE_SERVICE_CNOC 76 739 - #define ICBID_SLAVE_OVIRT_SNOC 77 740 - #define ICBID_SLAVE_OVIRT_OCMEM 78 741 - #define ICBID_SLAVE_USB_HS2 79 742 - #define ICBID_SLAVE_QPIC 80 743 - #define ICBID_SLAVE_IPS_CFG 81 744 - #define ICBID_SLAVE_DSI_CFG 82 745 - #define ICBID_SLAVE_USB3_1 83 746 - #define ICBID_SLAVE_PCIE_0 84 747 - #define ICBID_SLAVE_PCIE_1 85 748 - #define ICBID_SLAVE_PSS_SMMU_CFG 86 749 - #define ICBID_SLAVE_CRYPTO_2_CFG 87 750 - #define ICBID_SLAVE_PCIE_0_CFG 88 751 - #define ICBID_SLAVE_PCIE_1_CFG 89 752 - #define ICBID_SLAVE_SATA_CFG 90 753 - #define ICBID_SLAVE_SPSS_GENI_IR 91 754 - #define ICBID_SLAVE_UFS_CFG 92 755 - #define ICBID_SLAVE_AVSYNC_CFG 93 756 - #define ICBID_SLAVE_VPU_CFG 94 757 - #define ICBID_SLAVE_USB_PHY_CFG 95 758 - #define ICBID_SLAVE_RBCPR_MX_CFG 96 759 - #define ICBID_SLAVE_PCIE_PARF 97 760 - #define ICBID_SLAVE_VCAP_CFG 98 761 - #define ICBID_SLAVE_EMAC_CFG 99 762 - #define ICBID_SLAVE_BCAST_CFG 100 763 - #define ICBID_SLAVE_KLM_CFG 101 764 - #define ICBID_SLAVE_DISPLAY_PWM 102 765 - #define ICBID_SLAVE_GENI 103 766 - #define ICBID_SLAVE_SNOC_BIMC_1 104 767 - #define ICBID_SLAVE_AUDIO 105 768 - #define ICBID_SLAVE_CATS_0 106 769 - #define ICBID_SLAVE_CATS_1 107 770 - #define ICBID_SLAVE_MM_INT_0 108 771 - #define ICBID_SLAVE_MM_INT_1 109 772 - #define ICBID_SLAVE_MM_INT_2 110 773 - #define ICBID_SLAVE_MM_INT_BIMC 111 774 - #define ICBID_SLAVE_MMU_MODEM_XPU_CFG 112 775 - #define ICBID_SLAVE_MSS_INT 113 776 - #define ICBID_SLAVE_PCNOC_INT_0 114 777 - #define ICBID_SLAVE_PCNOC_INT_1 115 778 - #define ICBID_SLAVE_PCNOC_M_0 116 779 - #define ICBID_SLAVE_PCNOC_M_1 117 780 - #define ICBID_SLAVE_PCNOC_S_0 118 781 - #define ICBID_SLAVE_PCNOC_S_1 119 782 - #define ICBID_SLAVE_PCNOC_S_2 120 783 - #define ICBID_SLAVE_PCNOC_S_3 121 784 - #define ICBID_SLAVE_PCNOC_S_4 122 785 - #define ICBID_SLAVE_PCNOC_S_6 123 786 - #define ICBID_SLAVE_PCNOC_S_7 124 787 - #define ICBID_SLAVE_PCNOC_S_8 125 788 - #define ICBID_SLAVE_PCNOC_S_9 126 789 - #define ICBID_SLAVE_PRNG_XPU_CFG 127 790 - #define ICBID_SLAVE_QDSS_INT 128 791 - #define ICBID_SLAVE_RPM_XPU_CFG 129 792 - #define ICBID_SLAVE_SNOC_INT_0 130 793 - #define ICBID_SLAVE_SNOC_INT_1 131 794 - #define ICBID_SLAVE_SNOC_INT_BIMC 132 795 - #define ICBID_SLAVE_TCU 133 796 - #define ICBID_SLAVE_BIMC_INT_0 134 797 - #define ICBID_SLAVE_BIMC_INT_1 135 798 - #define ICBID_SLAVE_RICA_CFG 136 799 - #define ICBID_SLAVE_SNOC_BIMC_2 137 800 - #define ICBID_SLAVE_BIMC_SNOC_1 138 801 - #define ICBID_SLAVE_PNOC_A1NOC 139 802 - #define ICBID_SLAVE_SNOC_VMEM 140 803 - #define ICBID_SLAVE_A0NOC_SNOC 141 804 - #define ICBID_SLAVE_A1NOC_SNOC 142 805 - #define ICBID_SLAVE_A2NOC_SNOC 143 806 - #define ICBID_SLAVE_A0NOC_CFG 144 807 - #define ICBID_SLAVE_A0NOC_MPU_CFG 145 808 - #define ICBID_SLAVE_A0NOC_SMMU_CFG 146 809 - #define ICBID_SLAVE_A1NOC_CFG 147 810 - #define ICBID_SLAVE_A1NOC_MPU_CFG 148 811 - #define ICBID_SLAVE_A1NOC_SMMU_CFG 149 812 - #define ICBID_SLAVE_A2NOC_CFG 150 813 - #define ICBID_SLAVE_A2NOC_MPU_CFG 151 814 - #define ICBID_SLAVE_A2NOC_SMMU_CFG 152 815 - #define ICBID_SLAVE_AHB2PHY 153 816 - #define ICBID_SLAVE_CAMERA_THROTTLE_CFG 154 817 - #define ICBID_SLAVE_DCC_CFG 155 818 - #define ICBID_SLAVE_DISPLAY_THROTTLE_CFG 156 819 - #define ICBID_SLAVE_DSA_CFG 157 820 - #define ICBID_SLAVE_DSA_MPU_CFG 158 821 - #define ICBID_SLAVE_SSC_MPU_CFG 159 822 - #define ICBID_SLAVE_HMSS_L3 160 823 - #define ICBID_SLAVE_LPASS_SMMU_CFG 161 824 - #define ICBID_SLAVE_MMAGIC_CFG 162 825 - #define ICBID_SLAVE_PCIE20_AHB2PHY 163 826 - #define ICBID_SLAVE_PCIE_2 164 827 - #define ICBID_SLAVE_PCIE_2_CFG 165 828 - #define ICBID_SLAVE_PIMEM 166 829 - #define ICBID_SLAVE_PIMEM_CFG 167 830 - #define ICBID_SLAVE_QDSS_RBCPR_APU_CFG 168 831 - #define ICBID_SLAVE_RBCPR_CX 169 832 - #define ICBID_SLAVE_RBCPR_MX 170 833 - #define ICBID_SLAVE_SMMU_CPP_CFG 171 834 - #define ICBID_SLAVE_SMMU_JPEG_CFG 172 835 - #define ICBID_SLAVE_SMMU_MDP_CFG 173 836 - #define ICBID_SLAVE_SMMU_ROTATOR_CFG 174 837 - #define ICBID_SLAVE_SMMU_VENUS_CFG 175 838 - #define ICBID_SLAVE_SMMU_VFE_CFG 176 839 - #define ICBID_SLAVE_SSC_CFG 177 840 - #define ICBID_SLAVE_VENUS_THROTTLE_CFG 178 841 - #define ICBID_SLAVE_VMEM 179 842 - #define ICBID_SLAVE_VMEM_CFG 180 843 - #define ICBID_SLAVE_QDSS_MPU_CFG 181 844 - #define ICBID_SLAVE_USB3_PHY_CFG 182 845 - #define ICBID_SLAVE_IPA_CFG 183 846 - #define ICBID_SLAVE_PCNOC_INT_2 184 847 - #define ICBID_SLAVE_PCNOC_INT_3 185 848 - #define ICBID_SLAVE_PCNOC_INT_4 186 849 - #define ICBID_SLAVE_PCNOC_INT_5 187 850 - #define ICBID_SLAVE_PCNOC_INT_6 188 851 - #define ICBID_SLAVE_PCNOC_S_5 189 852 - #define ICBID_SLAVE_QSPI 190 853 - #define ICBID_SLAVE_A1NOC_MS_MPU_CFG 191 854 - #define ICBID_SLAVE_A2NOC_MS_MPU_CFG 192 855 - #define ICBID_SLAVE_MODEM_Q6_SMMU_CFG 193 856 - #define ICBID_SLAVE_MSS_MPU_CFG 194 857 - #define ICBID_SLAVE_MSS_PROC_MS_MPU_CFG 195 858 - #define ICBID_SLAVE_SKL 196 859 - #define ICBID_SLAVE_SNOC_INT_2 197 860 - #define ICBID_SLAVE_SMMNOC_BIMC 198 861 - #define ICBID_SLAVE_CRVIRT_A1NOC 199 862 - #define ICBID_SLAVE_SGMII 200 863 - #define ICBID_SLAVE_QHS4_APPS 201 864 - #define ICBID_SLAVE_BIMC_PCNOC 202 865 - #define ICBID_SLAVE_PCNOC_BIMC_1 203 866 - #define ICBID_SLAVE_SPMI_FETCHER 204 867 - #define ICBID_SLAVE_MMSS_SMMU_CFG 205 868 - #define ICBID_SLAVE_WLAN 206 869 - #define ICBID_SLAVE_CRVIRT_A2NOC 207 870 - #define ICBID_SLAVE_CNOC_A2NOC 208 871 - #define ICBID_SLAVE_GLM 209 872 - #define ICBID_SLAVE_GNOC_BIMC 210 873 - #define ICBID_SLAVE_GNOC_SNOC 211 874 - #define ICBID_SLAVE_QM_CFG 212 875 - #define ICBID_SLAVE_TLMM_EAST 213 876 - #define ICBID_SLAVE_TLMM_NORTH 214 877 - #define ICBID_SLAVE_TLMM_WEST 215 878 - #define ICBID_SLAVE_LPASS_TCM 216 879 - #define ICBID_SLAVE_TLMM_SOUTH 217 880 - #define ICBID_SLAVE_TLMM_CENTER 218 881 - #define ICBID_SLAVE_MSS_NAV_CE_MPU_CFG 219 882 - #define ICBID_SLAVE_A2NOC_THROTTLE_CFG 220 883 - #define ICBID_SLAVE_CDSP 221 884 - #define ICBID_SLAVE_CDSP_SMMU_CFG 222 885 - #define ICBID_SLAVE_LPASS_MPU_CFG 223 886 - #define ICBID_SLAVE_CSI_PHY_CFG 224 887 - #endif