Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1fd11777 authored by Alex Deucher's avatar Alex Deucher
Browse files

drm/radeon: convert SI,CIK to use sumo_rlc functions



and remove duplicate si_rlc functions.

Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 10b7ca7e
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -57,9 +57,9 @@ extern void r600_ih_ring_fini(struct radeon_device *rdev);
extern void evergreen_mc_stop(struct radeon_device *rdev, struct evergreen_mc_save *save);
extern void evergreen_mc_resume(struct radeon_device *rdev, struct evergreen_mc_save *save);
extern bool evergreen_is_display_hung(struct radeon_device *rdev);
extern void sumo_rlc_fini(struct radeon_device *rdev);
extern int sumo_rlc_init(struct radeon_device *rdev);
extern void si_vram_gtt_location(struct radeon_device *rdev, struct radeon_mc *mc);
extern void si_rlc_fini(struct radeon_device *rdev);
extern int si_rlc_init(struct radeon_device *rdev);
extern void si_rlc_reset(struct radeon_device *rdev);
static void cik_rlc_stop(struct radeon_device *rdev);
static void cik_pcie_gen3_enable(struct radeon_device *rdev);
@@ -6019,7 +6019,7 @@ static int cik_startup(struct radeon_device *rdev)
	cik_gpu_init(rdev);

	/* allocate rlc buffers */
	r = si_rlc_init(rdev);
	r = sumo_rlc_init(rdev);
	if (r) {
		DRM_ERROR("Failed to init rlc BOs!\n");
		return r;
@@ -6343,7 +6343,7 @@ int cik_init(struct radeon_device *rdev)
		cik_cp_fini(rdev);
		cik_sdma_fini(rdev);
		cik_irq_fini(rdev);
		si_rlc_fini(rdev);
		sumo_rlc_fini(rdev);
		cik_mec_fini(rdev);
		radeon_wb_fini(rdev);
		radeon_ib_pool_fini(rdev);
@@ -6379,7 +6379,7 @@ void cik_fini(struct radeon_device *rdev)
	cik_cp_fini(rdev);
	cik_sdma_fini(rdev);
	cik_irq_fini(rdev);
	si_rlc_fini(rdev);
	sumo_rlc_fini(rdev);
	cik_mec_fini(rdev);
	radeon_wb_fini(rdev);
	radeon_vm_manager_fini(rdev);
+1 −1
Original line number Diff line number Diff line
@@ -1073,7 +1073,7 @@ static const struct cs_extent_def SECT_CTRLCONST_defs[] =
    {SECT_CTRLCONST_def_1, 0x0000f3fc, 2 },
    { 0, 0, 0 }
};
struct cs_section_def cayman_cs_data[] = {
static const struct cs_section_def cayman_cs_data[] = {
    { SECT_CONTEXT_defs, SECT_CONTEXT },
    { SECT_CLEAR_defs, SECT_CLEAR },
    { SECT_CTRLCONST_defs, SECT_CTRLCONST },
+1 −1
Original line number Diff line number Diff line
@@ -1072,7 +1072,7 @@ static const struct cs_extent_def SECT_CTRLCONST_defs[] =
    {SECT_CTRLCONST_def_1, 0x0000f3fc, 2 },
    { 0, 0, 0 }
};
struct cs_section_def evergreen_cs_data[] = {
static const struct cs_section_def evergreen_cs_data[] = {
    { SECT_CONTEXT_defs, SECT_CONTEXT },
    { SECT_CLEAR_defs, SECT_CLEAR },
    { SECT_CTRLCONST_defs, SECT_CTRLCONST },
+26 −20
Original line number Diff line number Diff line
@@ -47,7 +47,7 @@ static const u32 crtc_offsets[6] =

#include "clearstate_evergreen.h"

static u32 sumo_rlc_save_restore_register_list[] =
static const u32 sumo_rlc_save_restore_register_list[] =
{
	0x98fc,
	0x9830,
@@ -131,7 +131,6 @@ static u32 sumo_rlc_save_restore_register_list[] =
	0x9150,
	0x802c,
};
static u32 sumo_rlc_save_restore_register_list_size = ARRAY_SIZE(sumo_rlc_save_restore_register_list);

static void evergreen_gpu_init(struct radeon_device *rdev);
void evergreen_fini(struct radeon_device *rdev);
@@ -3898,12 +3897,12 @@ void sumo_rlc_fini(struct radeon_device *rdev)

int sumo_rlc_init(struct radeon_device *rdev)
{
	u32 *src_ptr;
	const u32 *src_ptr;
	volatile u32 *dst_ptr;
	u32 dws, data, i, j, k, reg_num;
	u32 reg_list_num, reg_list_hdr_blk_index, reg_list_blk_index;
	u64 reg_list_mc_addr;
	struct cs_section_def *cs_data;
	const struct cs_section_def *cs_data;
	int r;

	src_ptr = rdev->rlc.reg_list;
@@ -3943,6 +3942,12 @@ int sumo_rlc_init(struct radeon_device *rdev)
		}
		/* write the sr buffer */
		dst_ptr = rdev->rlc.sr_ptr;
		if (rdev->family >= CHIP_TAHITI) {
			/* SI */
			for (i = 0; i < dws; i++)
				dst_ptr[i] = src_ptr[i];
		} else {
			/* ON/LN/TN */
			/* format:
			 * dw0: (reg2 << 16) | reg1
			 * dw1: reg1 save space
@@ -3958,7 +3963,7 @@ int sumo_rlc_init(struct radeon_device *rdev)
			}
			j = ((i * 3) / 2);
			dst_ptr[j] = RLC_SAVE_RESTORE_LIST_END_MARKER;

		}
		radeon_bo_kunmap(rdev->rlc.save_restore_obj);
		radeon_bo_unreserve(rdev->rlc.save_restore_obj);
	}
@@ -5152,7 +5157,8 @@ static int evergreen_startup(struct radeon_device *rdev)
	/* allocate rlc buffers */
	if (rdev->flags & RADEON_IS_IGP) {
		rdev->rlc.reg_list = sumo_rlc_save_restore_register_list;
		rdev->rlc.reg_list_size = sumo_rlc_save_restore_register_list_size;
		rdev->rlc.reg_list_size =
			(u32)ARRAY_SIZE(sumo_rlc_save_restore_register_list);
		rdev->rlc.cs_data = evergreen_cs_data;
		r = sumo_rlc_init(rdev);
		if (r) {
+3 −3
Original line number Diff line number Diff line
@@ -35,7 +35,7 @@
#include "radeon_ucode.h"
#include "clearstate_cayman.h"

static u32 tn_rlc_save_restore_register_list[] =
static const u32 tn_rlc_save_restore_register_list[] =
{
	0x98fc,
	0x98f0,
@@ -160,7 +160,6 @@ static u32 tn_rlc_save_restore_register_list[] =
	0x9830,
	0x802c,
};
static u32 tn_rlc_save_restore_register_list_size = ARRAY_SIZE(tn_rlc_save_restore_register_list);

extern bool evergreen_is_display_hung(struct radeon_device *rdev);
extern void evergreen_print_gpu_status_regs(struct radeon_device *rdev);
@@ -2121,7 +2120,8 @@ static int cayman_startup(struct radeon_device *rdev)
	/* allocate rlc buffers */
	if (rdev->flags & RADEON_IS_IGP) {
		rdev->rlc.reg_list = tn_rlc_save_restore_register_list;
		rdev->rlc.reg_list_size = tn_rlc_save_restore_register_list_size;
		rdev->rlc.reg_list_size =
			(u32)ARRAY_SIZE(tn_rlc_save_restore_register_list);
		rdev->rlc.cs_data = cayman_cs_data;
		r = sumo_rlc_init(rdev);
		if (r) {
Loading