diff options
author | Thomas Hellstrom <unichrome@shipmail.org> | 2005-11-15 11:20:47 +0000 |
---|---|---|
committer | Thomas Hellstrom <unichrome@shipmail.org> | 2005-11-15 11:20:47 +0000 |
commit | c8261e3d2486050dcd76fb769f6806982260df96 (patch) | |
tree | 5975cfa7e2c23ecf8ca96d15144df02e7bb57fc0 | |
parent | c575b7e19ec83e663af91b431ac8c0a9e16a3a5d (diff) |
Loosen via dmablit alignment checks somewhat. Adapt stride check to maximum
sceen size for EXA.
-rw-r--r-- | linux-core/via_dmablit.c | 8 | ||||
-rw-r--r-- | shared-core/via_drv.h | 4 |
2 files changed, 7 insertions, 5 deletions
diff --git a/linux-core/via_dmablit.c b/linux-core/via_dmablit.c index 6e04cb57..2b025a21 100644 --- a/linux-core/via_dmablit.c +++ b/linux-core/via_dmablit.c @@ -596,8 +596,9 @@ via_build_sg_info(drm_device_t *dev, drm_via_sg_info_t *vsg, drm_via_dmablit_t * */ if (((xfer->mem_stride - xfer->line_length) >= PAGE_SIZE) || - (xfer->mem_stride > 2048)) { - DRM_ERROR("Too large system memory stride.\n"); + (xfer->mem_stride > 2048*4)) { + DRM_ERROR("Too large system memory stride. Stride: %d, " + "Length: %d\n", xfer->mem_stride, xfer->line_length); return DRM_ERR(EINVAL); } @@ -630,7 +631,8 @@ via_build_sg_info(drm_device_t *dev, drm_via_sg_info_t *vsg, drm_via_dmablit_t * return DRM_ERR(EINVAL); } #else - if ((((unsigned long)xfer->mem_addr & 15) || ((unsigned long)xfer->fb_addr & 15))) { + if ((((unsigned long)xfer->mem_addr & 15) || ((unsigned long)xfer->fb_addr & 3)) || + (xfer->mem_stride & 15) || (xfer->fb_stride & 3)) { DRM_ERROR("Invalid DRM bitblt alignment.\n"); return DRM_ERR(EINVAL); } diff --git a/shared-core/via_drv.h b/shared-core/via_drv.h index dcfaa63c..ce5e8e22 100644 --- a/shared-core/via_drv.h +++ b/shared-core/via_drv.h @@ -28,11 +28,11 @@ #define DRIVER_NAME "via" #define DRIVER_DESC "VIA Unichrome / Pro" -#define DRIVER_DATE "20051022" +#define DRIVER_DATE "20051115" #define DRIVER_MAJOR 2 #define DRIVER_MINOR 7 -#define DRIVER_PATCHLEVEL 2 +#define DRIVER_PATCHLEVEL 3 #include "via_verifier.h" |