drm/radeon/kms: allow "invalid" DB formats as a means to disable DB
Signed-off-by: Marek Olšák <maraeo@gmail.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
0d7614f09c
commit
0f457e488c
@ -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;
|
||||||
|
@ -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
|
||||||
|
@ -764,8 +764,10 @@ 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_028800_Z_ENABLE(track->db_depth_control))) {
|
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))) {
|
||||||
r = r600_cs_track_validate_db(p);
|
r = r600_cs_track_validate_db(p);
|
||||||
if (r)
|
if (r)
|
||||||
return r;
|
return r;
|
||||||
|
@ -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);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user