ivpu_mmu.c (30cf36bb0408a163eb3d58ea6b883c612c029286) ivpu_mmu.c (929acfb9c53986d5ba37cfb9e1172ad79735f8eb)
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Copyright (C) 2020-2023 Intel Corporation
4 */
5
6#include <linux/circ_buf.h>
7#include <linux/highmem.h>
8
9#include "ivpu_drv.h"
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Copyright (C) 2020-2023 Intel Corporation
4 */
5
6#include <linux/circ_buf.h>
7#include <linux/highmem.h>
8
9#include "ivpu_drv.h"
10#include "ivpu_hw.h"
10#include "ivpu_hw_reg_io.h"
11#include "ivpu_mmu.h"
12#include "ivpu_mmu_context.h"
13#include "ivpu_pm.h"
14
15#define IVPU_MMU_REG_IDR0 0x00200000u
16#define IVPU_MMU_REG_IDR1 0x00200004u
17#define IVPU_MMU_REG_IDR3 0x0020000cu

--- 495 unchanged lines hidden (view full) ---

513 if (ret) {
514 u32 err;
515
516 val = REGV_RD32(IVPU_MMU_REG_CMDQ_CONS);
517 err = REG_GET_FLD(IVPU_MMU_REG_CMDQ_CONS, ERR, val);
518
519 ivpu_err(vdev, "Timed out waiting for MMU consumer: %d, error: %s\n", ret,
520 ivpu_mmu_cmdq_err_to_str(err));
11#include "ivpu_hw_reg_io.h"
12#include "ivpu_mmu.h"
13#include "ivpu_mmu_context.h"
14#include "ivpu_pm.h"
15
16#define IVPU_MMU_REG_IDR0 0x00200000u
17#define IVPU_MMU_REG_IDR1 0x00200004u
18#define IVPU_MMU_REG_IDR3 0x0020000cu

--- 495 unchanged lines hidden (view full) ---

514 if (ret) {
515 u32 err;
516
517 val = REGV_RD32(IVPU_MMU_REG_CMDQ_CONS);
518 err = REG_GET_FLD(IVPU_MMU_REG_CMDQ_CONS, ERR, val);
519
520 ivpu_err(vdev, "Timed out waiting for MMU consumer: %d, error: %s\n", ret,
521 ivpu_mmu_cmdq_err_to_str(err));
522 ivpu_hw_diagnose_failure(vdev);
521 }
522
523 return ret;
524}
525
526static int ivpu_mmu_cmdq_write_cfgi_all(struct ivpu_device *vdev)
527{
528 u64 data0 = FIELD_PREP(IVPU_MMU_CMD_OPCODE, CMD_CFGI_ALL);

--- 433 unchanged lines hidden ---
523 }
524
525 return ret;
526}
527
528static int ivpu_mmu_cmdq_write_cfgi_all(struct ivpu_device *vdev)
529{
530 u64 data0 = FIELD_PREP(IVPU_MMU_CMD_OPCODE, CMD_CFGI_ALL);

--- 433 unchanged lines hidden ---