mirror of https://gitee.com/openkylin/linux.git
habanalabs: re-factor goya_parse_cb_no_ext_queue()
This patch re-factors goya_parse_cb_no_ext_queue() to make it more readable by inverting the check inside the first if statement so the bulk of the function won't be inside an if statement. The patch also fixes a spelling error in the name of the function. Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
This commit is contained in:
parent
e00dac3daa
commit
883c2459a5
|
@ -3858,36 +3858,35 @@ static int goya_parse_cb_no_mmu(struct hl_device *hdev,
|
|||
return rc;
|
||||
}
|
||||
|
||||
static int goya_parse_cb_no_ext_quque(struct hl_device *hdev,
|
||||
static int goya_parse_cb_no_ext_queue(struct hl_device *hdev,
|
||||
struct hl_cs_parser *parser)
|
||||
{
|
||||
struct asic_fixed_properties *asic_prop = &hdev->asic_prop;
|
||||
struct goya_device *goya = hdev->asic_specific;
|
||||
|
||||
if (!(goya->hw_cap_initialized & HW_CAP_MMU)) {
|
||||
/* For internal queue jobs, just check if cb address is valid */
|
||||
if (hl_mem_area_inside_range(
|
||||
(u64) (uintptr_t) parser->user_cb,
|
||||
parser->user_cb_size,
|
||||
asic_prop->sram_user_base_address,
|
||||
asic_prop->sram_end_address))
|
||||
return 0;
|
||||
if (goya->hw_cap_initialized & HW_CAP_MMU)
|
||||
return 0;
|
||||
|
||||
if (hl_mem_area_inside_range(
|
||||
(u64) (uintptr_t) parser->user_cb,
|
||||
parser->user_cb_size,
|
||||
asic_prop->dram_user_base_address,
|
||||
asic_prop->dram_end_address))
|
||||
return 0;
|
||||
/* For internal queue jobs, just check if CB address is valid */
|
||||
if (hl_mem_area_inside_range(
|
||||
(u64) (uintptr_t) parser->user_cb,
|
||||
parser->user_cb_size,
|
||||
asic_prop->sram_user_base_address,
|
||||
asic_prop->sram_end_address))
|
||||
return 0;
|
||||
|
||||
dev_err(hdev->dev,
|
||||
"Internal CB address %px + 0x%x is not in SRAM nor in DRAM\n",
|
||||
parser->user_cb, parser->user_cb_size);
|
||||
if (hl_mem_area_inside_range(
|
||||
(u64) (uintptr_t) parser->user_cb,
|
||||
parser->user_cb_size,
|
||||
asic_prop->dram_user_base_address,
|
||||
asic_prop->dram_end_address))
|
||||
return 0;
|
||||
|
||||
return -EFAULT;
|
||||
}
|
||||
dev_err(hdev->dev,
|
||||
"Internal CB address %px + 0x%x is not in SRAM nor in DRAM\n",
|
||||
parser->user_cb, parser->user_cb_size);
|
||||
|
||||
return 0;
|
||||
return -EFAULT;
|
||||
}
|
||||
|
||||
int goya_cs_parser(struct hl_device *hdev, struct hl_cs_parser *parser)
|
||||
|
@ -3895,7 +3894,7 @@ int goya_cs_parser(struct hl_device *hdev, struct hl_cs_parser *parser)
|
|||
struct goya_device *goya = hdev->asic_specific;
|
||||
|
||||
if (!parser->ext_queue)
|
||||
return goya_parse_cb_no_ext_quque(hdev, parser);
|
||||
return goya_parse_cb_no_ext_queue(hdev, parser);
|
||||
|
||||
if ((goya->hw_cap_initialized & HW_CAP_MMU) && parser->use_virt_addr)
|
||||
return goya_parse_cb_mmu(hdev, parser);
|
||||
|
|
Loading…
Reference in New Issue