Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/mlx4/mlx4_core/mlx4_fw.c
Show First 20 Lines • Show All 1,701 Lines • ▼ Show 20 Lines | #define QUERY_FW_CLOCK_BAR 0x58 | ||||
fw->clock_bar = (fw->clock_bar >> 6) * 2; | fw->clock_bar = (fw->clock_bar >> 6) * 2; | ||||
mlx4_dbg(dev, "Internal clock bar:%d offset:0x%llx\n", | mlx4_dbg(dev, "Internal clock bar:%d offset:0x%llx\n", | ||||
fw->clock_bar, (unsigned long long)fw->clock_offset); | fw->clock_bar, (unsigned long long)fw->clock_offset); | ||||
/* | /* | ||||
* Round up number of system pages needed in case | * Round up number of system pages needed in case | ||||
* MLX4_ICM_PAGE_SIZE < PAGE_SIZE. | * MLX4_ICM_PAGE_SIZE < PAGE_SIZE. | ||||
*/ | */ | ||||
#if MLX4_ICM_PAGE_SIZE < PAGE_SIZE | |||||
fw->fw_pages = | fw->fw_pages = | ||||
ALIGN(fw->fw_pages, PAGE_SIZE / MLX4_ICM_PAGE_SIZE) >> | ALIGN(fw->fw_pages, PAGE_SIZE / MLX4_ICM_PAGE_SIZE) >> | ||||
(PAGE_SHIFT - MLX4_ICM_PAGE_SHIFT); | (PAGE_SHIFT - MLX4_ICM_PAGE_SHIFT); | ||||
#endif | |||||
mlx4_dbg(dev, "Clear int @ %llx, BAR %d\n", | mlx4_dbg(dev, "Clear int @ %llx, BAR %d\n", | ||||
(unsigned long long) fw->clr_int_base, fw->clr_int_bar); | (unsigned long long) fw->clr_int_base, fw->clr_int_bar); | ||||
out: | out: | ||||
mlx4_free_cmd_mailbox(dev, mailbox); | mlx4_free_cmd_mailbox(dev, mailbox); | ||||
return err; | return err; | ||||
} | } | ||||
▲ Show 20 Lines • Show All 820 Lines • ▼ Show 20 Lines | int ret = mlx4_cmd_imm(dev, icm_size, aux_pages, 0, 0, | ||||
MLX4_CMD_TIME_CLASS_A, MLX4_CMD_NATIVE); | MLX4_CMD_TIME_CLASS_A, MLX4_CMD_NATIVE); | ||||
if (ret) | if (ret) | ||||
return ret; | return ret; | ||||
/* | /* | ||||
* Round up number of system pages needed in case | * Round up number of system pages needed in case | ||||
* MLX4_ICM_PAGE_SIZE < PAGE_SIZE. | * MLX4_ICM_PAGE_SIZE < PAGE_SIZE. | ||||
*/ | */ | ||||
#if MLX4_ICM_PAGE_SIZE < PAGE_SIZE | |||||
*aux_pages = ALIGN(*aux_pages, PAGE_SIZE / MLX4_ICM_PAGE_SIZE) >> | *aux_pages = ALIGN(*aux_pages, PAGE_SIZE / MLX4_ICM_PAGE_SIZE) >> | ||||
(PAGE_SHIFT - MLX4_ICM_PAGE_SHIFT); | (PAGE_SHIFT - MLX4_ICM_PAGE_SHIFT); | ||||
#endif | |||||
return 0; | return 0; | ||||
} | } | ||||
int mlx4_NOP(struct mlx4_dev *dev) | int mlx4_NOP(struct mlx4_dev *dev) | ||||
{ | { | ||||
/* Input modifier of 0x1f means "finish as soon as possible." */ | /* Input modifier of 0x1f means "finish as soon as possible." */ | ||||
return mlx4_cmd(dev, 0, 0x1f, 0, MLX4_CMD_NOP, MLX4_CMD_TIME_CLASS_A, | return mlx4_cmd(dev, 0, 0x1f, 0, MLX4_CMD_NOP, MLX4_CMD_TIME_CLASS_A, | ||||
▲ Show 20 Lines • Show All 495 Lines • Show Last 20 Lines |