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

Commit 948bee3f authored by Alex Deucher's avatar Alex Deucher
Browse files

drm/radeon: track which asics have UVD

parent 86a45cac
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1694,6 +1694,7 @@ struct radeon_device {
	int num_crtc; /* number of crtcs */
	struct mutex dc_hw_i2c_mutex; /* display controller hw i2c mutex */
	bool audio_enabled;
	bool has_uvd;
	struct r600_audio audio_status; /* audio stuff */
	struct notifier_block acpi_nb;
	/* only one userspace can use Hyperz features or CMASK at a time */
+17 −0
Original line number Diff line number Diff line
@@ -1935,6 +1935,8 @@ int radeon_asic_init(struct radeon_device *rdev)
	else
		rdev->num_crtc = 2;

	rdev->has_uvd = false;

	switch (rdev->family) {
	case CHIP_R100:
	case CHIP_RV100:
@@ -1999,16 +2001,22 @@ int radeon_asic_init(struct radeon_device *rdev)
	case CHIP_RV635:
	case CHIP_RV670:
		rdev->asic = &r600_asic;
		if (rdev->family == CHIP_R600)
			rdev->has_uvd = false;
		else
			rdev->has_uvd = true;
		break;
	case CHIP_RS780:
	case CHIP_RS880:
		rdev->asic = &rs780_asic;
		rdev->has_uvd = true;
		break;
	case CHIP_RV770:
	case CHIP_RV730:
	case CHIP_RV710:
	case CHIP_RV740:
		rdev->asic = &rv770_asic;
		rdev->has_uvd = true;
		break;
	case CHIP_CEDAR:
	case CHIP_REDWOOD:
@@ -2021,11 +2029,13 @@ int radeon_asic_init(struct radeon_device *rdev)
		else
			rdev->num_crtc = 6;
		rdev->asic = &evergreen_asic;
		rdev->has_uvd = true;
		break;
	case CHIP_PALM:
	case CHIP_SUMO:
	case CHIP_SUMO2:
		rdev->asic = &sumo_asic;
		rdev->has_uvd = true;
		break;
	case CHIP_BARTS:
	case CHIP_TURKS:
@@ -2036,16 +2046,19 @@ int radeon_asic_init(struct radeon_device *rdev)
		else
			rdev->num_crtc = 6;
		rdev->asic = &btc_asic;
		rdev->has_uvd = true;
		break;
	case CHIP_CAYMAN:
		rdev->asic = &cayman_asic;
		/* set num crtcs */
		rdev->num_crtc = 6;
		rdev->has_uvd = true;
		break;
	case CHIP_ARUBA:
		rdev->asic = &trinity_asic;
		/* set num crtcs */
		rdev->num_crtc = 4;
		rdev->has_uvd = true;
		break;
	case CHIP_TAHITI:
	case CHIP_PITCAIRN:
@@ -2060,6 +2073,10 @@ int radeon_asic_init(struct radeon_device *rdev)
			rdev->num_crtc = 2;
		else
			rdev->num_crtc = 6;
		if (rdev->family == CHIP_HAINAN)
			rdev->has_uvd = false;
		else
			rdev->has_uvd = true;
		break;
	default:
		/* FIXME: not supported yet */