Lines Matching +full:read +full:- +full:out

1 // SPDX-License-Identifier: GPL-2.0
10 * igc_acquire_nvm_i225 - Acquire exclusive access to EEPROM
16 * EEPROM access and return -IGC_ERR_NVM (-1).
24 * igc_release_nvm_i225 - Release exclusive access to EEPROM
36 * igc_get_hw_semaphore_i225 - Acquire hardware semaphore
43 s32 timeout = hw->nvm.word_size + 1; in igc_get_hw_semaphore_i225()
61 if (hw->dev_spec._base.clear_semaphore_once) { in igc_get_hw_semaphore_i225()
62 hw->dev_spec._base.clear_semaphore_once = false; in igc_get_hw_semaphore_i225()
75 hw_dbg("Driver can't access device - SMBI bit is set.\n"); in igc_get_hw_semaphore_i225()
76 return -IGC_ERR_NVM; in igc_get_hw_semaphore_i225()
96 return -IGC_ERR_NVM; in igc_get_hw_semaphore_i225()
103 * igc_acquire_swfw_sync_i225 - Acquire SW/FW semaphore
120 ret_val = -IGC_ERR_SWFW_SYNC; in igc_acquire_swfw_sync_i225()
121 goto out; in igc_acquire_swfw_sync_i225()
136 ret_val = -IGC_ERR_SWFW_SYNC; in igc_acquire_swfw_sync_i225()
137 goto out; in igc_acquire_swfw_sync_i225()
144 out: in igc_acquire_swfw_sync_i225()
149 * igc_release_swfw_sync_i225 - Release SW/FW semaphore
178 * igc_read_nvm_srrd_i225 - Reads Shadow Ram using EERD register
180 * @offset: offset of word in the Shadow Ram to read
181 * @words: number of words to read
182 * @data: word read from the Shadow Ram
195 * to read in bursts than synchronizing access for each word. in igc_read_nvm_srrd_i225()
198 count = (words - i) / IGC_EERD_EEWR_MAX_COUNT > 0 ? in igc_read_nvm_srrd_i225()
199 IGC_EERD_EEWR_MAX_COUNT : (words - i); in igc_read_nvm_srrd_i225()
201 status = hw->nvm.ops.acquire(hw); in igc_read_nvm_srrd_i225()
206 hw->nvm.ops.release(hw); in igc_read_nvm_srrd_i225()
215 * igc_write_nvm_srwr - Write to Shadow Ram using EEWR
229 struct igc_nvm_info *nvm = &hw->nvm; in igc_write_nvm_srwr()
230 s32 ret_val = -IGC_ERR_NVM; in igc_write_nvm_srwr()
237 if (offset >= nvm->word_size || (words > (nvm->word_size - offset)) || in igc_write_nvm_srwr()
239 hw_dbg("nvm parameter(s) out of bounds\n"); in igc_write_nvm_srwr()
244 ret_val = -IGC_ERR_NVM; in igc_write_nvm_srwr()
261 hw_dbg("Shadow RAM write EEWR timed out\n"); in igc_write_nvm_srwr()
270 * igc_write_nvm_srwr_i225 - Write to Shadow RAM using EEWR
282 * If error code is returned, data and Shadow RAM may be inconsistent - buffer
296 count = (words - i) / IGC_EERD_EEWR_MAX_COUNT > 0 ? in igc_write_nvm_srwr_i225()
297 IGC_EERD_EEWR_MAX_COUNT : (words - i); in igc_write_nvm_srwr_i225()
299 status = hw->nvm.ops.acquire(hw); in igc_write_nvm_srwr_i225()
304 hw->nvm.ops.release(hw); in igc_write_nvm_srwr_i225()
313 * igc_validate_nvm_checksum_i225 - Validate EEPROM checksum
325 status = hw->nvm.ops.acquire(hw); in igc_validate_nvm_checksum_i225()
327 goto out; in igc_validate_nvm_checksum_i225()
329 /* Replace the read function with semaphore grabbing with in igc_validate_nvm_checksum_i225()
333 read_op_ptr = hw->nvm.ops.read; in igc_validate_nvm_checksum_i225()
334 hw->nvm.ops.read = igc_read_nvm_eerd; in igc_validate_nvm_checksum_i225()
338 /* Revert original read operation. */ in igc_validate_nvm_checksum_i225()
339 hw->nvm.ops.read = read_op_ptr; in igc_validate_nvm_checksum_i225()
341 hw->nvm.ops.release(hw); in igc_validate_nvm_checksum_i225()
343 out: in igc_validate_nvm_checksum_i225()
348 * igc_pool_flash_update_done_i225 - Pool FLUDONE status
353 s32 ret_val = -IGC_ERR_NVM; in igc_pool_flash_update_done_i225()
369 * igc_update_flash_i225 - Commit EEPROM to the flash
378 if (ret_val == -IGC_ERR_NVM) { in igc_update_flash_i225()
379 hw_dbg("Flash update time out\n"); in igc_update_flash_i225()
380 goto out; in igc_update_flash_i225()
388 hw_dbg("Flash update time out\n"); in igc_update_flash_i225()
392 out: in igc_update_flash_i225()
397 * igc_update_nvm_checksum_i225 - Update EEPROM checksum
410 /* Read the first word from the EEPROM. If this times out or fails, do in igc_update_nvm_checksum_i225()
412 * EEPROM read fails in igc_update_nvm_checksum_i225()
416 hw_dbg("EEPROM read failed\n"); in igc_update_nvm_checksum_i225()
417 goto out; in igc_update_nvm_checksum_i225()
420 ret_val = hw->nvm.ops.acquire(hw); in igc_update_nvm_checksum_i225()
422 goto out; in igc_update_nvm_checksum_i225()
424 /* Do not use hw->nvm.ops.write, hw->nvm.ops.read in igc_update_nvm_checksum_i225()
432 hw->nvm.ops.release(hw); in igc_update_nvm_checksum_i225()
433 hw_dbg("NVM Read Error while updating checksum.\n"); in igc_update_nvm_checksum_i225()
434 goto out; in igc_update_nvm_checksum_i225()
438 checksum = (u16)NVM_SUM - checksum; in igc_update_nvm_checksum_i225()
442 hw->nvm.ops.release(hw); in igc_update_nvm_checksum_i225()
444 goto out; in igc_update_nvm_checksum_i225()
447 hw->nvm.ops.release(hw); in igc_update_nvm_checksum_i225()
451 out: in igc_update_nvm_checksum_i225()
456 * igc_get_flash_presence_i225 - Check if flash device is detected
472 * igc_init_nvm_params_i225 - Init NVM func ptrs.
477 struct igc_nvm_info *nvm = &hw->nvm; in igc_init_nvm_params_i225()
479 nvm->ops.acquire = igc_acquire_nvm_i225; in igc_init_nvm_params_i225()
480 nvm->ops.release = igc_release_nvm_i225; in igc_init_nvm_params_i225()
484 nvm->ops.read = igc_read_nvm_srrd_i225; in igc_init_nvm_params_i225()
485 nvm->ops.write = igc_write_nvm_srwr_i225; in igc_init_nvm_params_i225()
486 nvm->ops.validate = igc_validate_nvm_checksum_i225; in igc_init_nvm_params_i225()
487 nvm->ops.update = igc_update_nvm_checksum_i225; in igc_init_nvm_params_i225()
489 nvm->ops.read = igc_read_nvm_eerd; in igc_init_nvm_params_i225()
490 nvm->ops.write = NULL; in igc_init_nvm_params_i225()
491 nvm->ops.validate = NULL; in igc_init_nvm_params_i225()
492 nvm->ops.update = NULL; in igc_init_nvm_params_i225()
498 * igc_set_eee_i225 - Enable/disable EEE support
515 if (hw->dev_spec._base.eee_enable) { in igc_set_eee_i225()
553 /* igc_set_ltr_i225 - Set Latency Tolerance Reporting thresholds
568 hw->mac.ops.get_speed_and_duplex(hw, &speed, &duplex); in igc_set_ltr_i225()
573 if (hw->dev_spec._base.eee_enable && in igc_set_ltr_i225()
605 return -IGC_ERR_CONFIG; in igc_set_ltr_i225()
620 ltr_min -= 1; in igc_set_ltr_i225()
622 ltr_max -= 1; in igc_set_ltr_i225()