Comment # 9
on bug 102553
from mercuriete
my investigations ends in this macro: drivers/gpu/drm/amd/amdgpu/amdgpu.h #define amdgpu_set_pcie_lanes(adev, l) (adev)->asic_funcs->set_pcie_lanes((adev), (l)) then if you see this file: drivers/gpu/drm/amd/amdgpu/si.c static const struct amdgpu_asic_funcs si_asic_funcs = { .read_disabled_bios = &si_read_disabled_bios, .read_bios_from_rom = &si_read_bios_from_rom, .read_register = &si_read_register, .reset = &si_asic_reset, .set_vga_state = &si_vga_set_state, .get_xclk = &si_get_xclk, .set_uvd_clocks = &si_set_uvd_clocks, .set_vce_clocks = NULL, .get_config_memsize = &si_get_config_memsize, }; There are no set_pcie_lanes in that struct so in this file: drivers/gpu/drm/amd/amdgpu/si_dpm.c if (new_lane_width != current_lane_width) { amdgpu_set_pcie_lanes(adev, new_lane_width); lane_width = amdgpu_get_pcie_lanes(adev); si_write_smc_soft_register(adev, SI_SMC_SOFT_REGISTER_non_ulv_pcie_link_width, lane_width); } You are jumping to null. Please answer me soon to know if i am wrong or if i am right. PS: in radeon the implementation of that functions is in this file: drivers/gpu/drm/radeon/radeon_asic.c static struct radeon_asic si_asic = { ... ... .pm = { .misc = &evergreen_pm_misc, .prepare = &evergreen_pm_prepare, .finish = &evergreen_pm_finish, .init_profile = &sumo_pm_init_profile, .get_dynpm_state = &r600_pm_get_dynpm_state, .get_engine_clock = &radeon_atom_get_engine_clock, .set_engine_clock = &radeon_atom_set_engine_clock, .get_memory_clock = &radeon_atom_get_memory_clock, .set_memory_clock = &radeon_atom_set_memory_clock, .get_pcie_lanes = &r600_get_pcie_lanes, .set_pcie_lanes = &r600_set_pcie_lanes, .set_clock_gating = NULL, .set_uvd_clocks = &si_set_uvd_clocks, .set_vce_clocks = &si_set_vce_clocks, .get_temperature = &si_get_temp, }, r600_set_pcie_lanes is in this file: drivers/gpu/drm/radeon/r600.c void r600_set_pcie_lanes(struct radeon_device *rdev, int lanes) { PS2: So sumarizing the problem is in the macro (adev)->asic_funcs->set_pcie_lanes that doesn't exists. Thanks you very much
You are receiving this mail because:
- You are the assignee for the bug.
_______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel