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

Commit 0f457e48 authored by Marek Olšák's avatar Marek Olšák Committed by Dave Airlie
Browse files

drm/radeon/kms: allow "invalid" DB formats as a means to disable DB



Signed-off-by: default avatarMarek Olšák <maraeo@gmail.com>
Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
parent 0d7614f0
Loading
Loading
Loading
Loading
+4 −2
Original line number Original line Diff line number Diff line
@@ -961,13 +961,15 @@ static int evergreen_cs_track_check(struct radeon_cs_parser *p)


	if (track->db_dirty) {
	if (track->db_dirty) {
		/* Check stencil buffer */
		/* Check stencil buffer */
		if (G_028800_STENCIL_ENABLE(track->db_depth_control)) {
		if (G_028044_FORMAT(track->db_s_info) != V_028044_STENCIL_INVALID &&
		    G_028800_STENCIL_ENABLE(track->db_depth_control)) {
			r = evergreen_cs_track_validate_stencil(p);
			r = evergreen_cs_track_validate_stencil(p);
			if (r)
			if (r)
				return r;
				return r;
		}
		}
		/* Check depth buffer */
		/* Check depth buffer */
		if (G_028800_Z_ENABLE(track->db_depth_control)) {
		if (G_028040_FORMAT(track->db_z_info) != V_028040_Z_INVALID &&
		    G_028800_Z_ENABLE(track->db_depth_control)) {
			r = evergreen_cs_track_validate_depth(p);
			r = evergreen_cs_track_validate_depth(p);
			if (r)
			if (r)
				return r;
				return r;
+2 −0
Original line number Original line Diff line number Diff line
@@ -1277,6 +1277,8 @@
#define   S_028044_FORMAT(x)                           (((x) & 0x1) << 0)
#define   S_028044_FORMAT(x)                           (((x) & 0x1) << 0)
#define   G_028044_FORMAT(x)                           (((x) >> 0) & 0x1)
#define   G_028044_FORMAT(x)                           (((x) >> 0) & 0x1)
#define   C_028044_FORMAT                              0xFFFFFFFE
#define   C_028044_FORMAT                              0xFFFFFFFE
#define	    V_028044_STENCIL_INVALID			0
#define	    V_028044_STENCIL_8				1
#define   G_028044_TILE_SPLIT(x)                       (((x) >> 8) & 0x7)
#define   G_028044_TILE_SPLIT(x)                       (((x) >> 8) & 0x7)
#define DB_Z_READ_BASE					0x28048
#define DB_Z_READ_BASE					0x28048
#define DB_STENCIL_READ_BASE				0x2804c
#define DB_STENCIL_READ_BASE				0x2804c
+4 −2
Original line number Original line Diff line number Diff line
@@ -764,7 +764,9 @@ static int r600_cs_track_check(struct radeon_cs_parser *p)
	}
	}


	/* Check depth buffer */
	/* Check depth buffer */
	if (track->db_dirty && (G_028800_STENCIL_ENABLE(track->db_depth_control) ||
	if (track->db_dirty &&
	    G_028010_FORMAT(track->db_depth_info) != V_028010_DEPTH_INVALID &&
	    (G_028800_STENCIL_ENABLE(track->db_depth_control) ||
	     G_028800_Z_ENABLE(track->db_depth_control))) {
	     G_028800_Z_ENABLE(track->db_depth_control))) {
		r = r600_cs_track_validate_db(p);
		r = r600_cs_track_validate_db(p);
		if (r)
		if (r)
+2 −1
Original line number Original line Diff line number Diff line
@@ -59,9 +59,10 @@
 *   2.15.0 - add max_pipes query
 *   2.15.0 - add max_pipes query
 *   2.16.0 - fix evergreen 2D tiled surface calculation
 *   2.16.0 - fix evergreen 2D tiled surface calculation
 *   2.17.0 - add STRMOUT_BASE_UPDATE for r7xx
 *   2.17.0 - add STRMOUT_BASE_UPDATE for r7xx
 *   2.18.0 - r600-eg: allow "invalid" DB formats
 */
 */
#define KMS_DRIVER_MAJOR	2
#define KMS_DRIVER_MAJOR	2
#define KMS_DRIVER_MINOR	17
#define KMS_DRIVER_MINOR	18
#define KMS_DRIVER_PATCHLEVEL	0
#define KMS_DRIVER_PATCHLEVEL	0
int radeon_driver_load_kms(struct drm_device *dev, unsigned long flags);
int radeon_driver_load_kms(struct drm_device *dev, unsigned long flags);
int radeon_driver_unload_kms(struct drm_device *dev);
int radeon_driver_unload_kms(struct drm_device *dev);