• Home
  • Raw
  • Download

Lines Matching refs:smumgr

42 static int iceland_start_smc(struct pp_smumgr *smumgr)  in iceland_start_smc()  argument
44 SMUM_WRITE_INDIRECT_FIELD(smumgr->device, CGS_IND_REG__SMC, in iceland_start_smc()
50 static void iceland_reset_smc(struct pp_smumgr *smumgr) in iceland_reset_smc() argument
52 SMUM_WRITE_INDIRECT_FIELD(smumgr->device, CGS_IND_REG__SMC, in iceland_reset_smc()
58 static void iceland_stop_smc_clock(struct pp_smumgr *smumgr) in iceland_stop_smc_clock() argument
60 SMUM_WRITE_INDIRECT_FIELD(smumgr->device, CGS_IND_REG__SMC, in iceland_stop_smc_clock()
65 static void iceland_start_smc_clock(struct pp_smumgr *smumgr) in iceland_start_smc_clock() argument
67 SMUM_WRITE_INDIRECT_FIELD(smumgr->device, CGS_IND_REG__SMC, in iceland_start_smc_clock()
72 static int iceland_smu_start_smc(struct pp_smumgr *smumgr) in iceland_smu_start_smc() argument
75 smu7_program_jump_on_start(smumgr); in iceland_smu_start_smc()
78 iceland_start_smc_clock(smumgr); in iceland_smu_start_smc()
81 iceland_start_smc(smumgr); in iceland_smu_start_smc()
83 SMUM_WAIT_INDIRECT_FIELD(smumgr, SMC_IND, FIRMWARE_FLAGS, in iceland_smu_start_smc()
90 static int iceland_upload_smc_firmware_data(struct pp_smumgr *smumgr, in iceland_upload_smc_firmware_data() argument
99 cgs_write_register(smumgr->device, mmSMC_IND_INDEX_0, start_addr); in iceland_upload_smc_firmware_data()
100 SMUM_WRITE_FIELD(smumgr->device, SMC_IND_ACCESS_CNTL, AUTO_INCREMENT_IND_0, 1); in iceland_upload_smc_firmware_data()
104 cgs_write_register(smumgr->device, mmSMC_IND_DATA_0, data); in iceland_upload_smc_firmware_data()
109 SMUM_WRITE_FIELD(smumgr->device, SMC_IND_ACCESS_CNTL, AUTO_INCREMENT_IND_0, 0); in iceland_upload_smc_firmware_data()
117 static int iceland_smu_upload_firmware_image(struct pp_smumgr *smumgr) in iceland_smu_upload_firmware_image() argument
122 if (smumgr == NULL || smumgr->device == NULL) in iceland_smu_upload_firmware_image()
126 cgs_get_firmware_info(smumgr->device, in iceland_smu_upload_firmware_image()
140 SMUM_WAIT_INDIRECT_FIELD_UNEQUAL(smumgr, SMC_IND, in iceland_smu_upload_firmware_image()
144 val = cgs_read_ind_register(smumgr->device, CGS_IND_REG__SMC, in iceland_smu_upload_firmware_image()
146 cgs_write_ind_register(smumgr->device, CGS_IND_REG__SMC, in iceland_smu_upload_firmware_image()
150 iceland_stop_smc_clock(smumgr); in iceland_smu_upload_firmware_image()
153 iceland_reset_smc(smumgr); in iceland_smu_upload_firmware_image()
154 iceland_upload_smc_firmware_data(smumgr, info.image_size, in iceland_smu_upload_firmware_image()
161 static int iceland_request_smu_load_specific_fw(struct pp_smumgr *smumgr, in iceland_request_smu_load_specific_fw() argument
167 static int iceland_start_smu(struct pp_smumgr *smumgr) in iceland_start_smu() argument
171 result = iceland_smu_upload_firmware_image(smumgr); in iceland_start_smu()
174 result = iceland_smu_start_smc(smumgr); in iceland_start_smu()
178 if (!smu7_is_smc_ram_running(smumgr)) { in iceland_start_smu()
180 result = iceland_smu_upload_firmware_image(smumgr); in iceland_start_smu()
184 result = iceland_smu_start_smc(smumgr); in iceland_start_smu()
189 result = smu7_request_smu_load_fw(smumgr); in iceland_start_smu()
201 static int iceland_smu_init(struct pp_smumgr *smumgr) in iceland_smu_init() argument
204 struct iceland_smumgr *smu_data = (struct iceland_smumgr *)(smumgr->backend); in iceland_smu_init()
205 if (smu7_init(smumgr)) in iceland_smu_init()
237 int iceland_smum_init(struct pp_smumgr *smumgr) in iceland_smum_init() argument
246 smumgr->backend = iceland_smu; in iceland_smum_init()
247 smumgr->smumgr_funcs = &iceland_smu_funcs; in iceland_smum_init()