mirror of
https://gitlab.freedesktop.org/mesa/drm.git
synced 2025-12-24 19:30:11 +01:00
more linux fixes
This commit is contained in:
parent
4d3d182d8a
commit
4d738200dd
4 changed files with 39 additions and 0 deletions
|
|
@ -732,7 +732,12 @@ int mga_dma_flush( DRM_OS_IOCTL )
|
|||
if ( lock.flags & _DRM_LOCK_QUIESCENT ) {
|
||||
#if MGA_DMA_DEBUG
|
||||
int ret = mga_do_wait_for_idle( dev_priv );
|
||||
#ifdef __linux
|
||||
if ( ret < 0 )
|
||||
#endif
|
||||
#ifdef __FreeBSD__
|
||||
if ( ret )
|
||||
#endif
|
||||
DRM_INFO( __FUNCTION__": -EBUSY\n" );
|
||||
return ret;
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -161,7 +161,12 @@ int r128_do_wait_for_idle( drm_r128_private_t *dev_priv )
|
|||
int i, ret;
|
||||
|
||||
ret = r128_do_wait_for_fifo( dev_priv, 64 );
|
||||
#ifdef __linux__
|
||||
if ( ret < 0 ) return ret;
|
||||
#endif
|
||||
#ifdef __FreeBSD__
|
||||
if ( ret ) return ret;
|
||||
#endif
|
||||
|
||||
for ( i = 0 ; i < dev_priv->usec_timeout ; i++ ) {
|
||||
if ( !(R128_READ( R128_GUI_STAT ) & R128_GUI_ACTIVE) ) {
|
||||
|
|
@ -746,7 +751,12 @@ int r128_cce_stop( DRM_OS_IOCTL )
|
|||
*/
|
||||
if ( stop.idle ) {
|
||||
ret = r128_do_cce_idle( dev_priv );
|
||||
#ifdef __linux__
|
||||
if ( ret < 0 ) return ret;
|
||||
#endif
|
||||
#ifdef __FreeBSD__
|
||||
if ( ret ) return ret;
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Finally, we can turn off the CCE. If the engine isn't idle,
|
||||
|
|
|
|||
|
|
@ -396,7 +396,12 @@ static int radeon_do_wait_for_idle( drm_radeon_private_t *dev_priv )
|
|||
int i, ret;
|
||||
|
||||
ret = radeon_do_wait_for_fifo( dev_priv, 64 );
|
||||
#ifdef __linux__
|
||||
if ( ret < 0 ) return ret;
|
||||
#endif
|
||||
#ifdef __FreeBSD__
|
||||
if ( ret ) return ret;
|
||||
#endif
|
||||
for ( i = 0 ; i < dev_priv->usec_timeout ; i++ ) {
|
||||
if ( !(RADEON_READ( RADEON_RBBM_STATUS )
|
||||
& RADEON_RBBM_ACTIVE) ) {
|
||||
|
|
@ -1113,7 +1118,12 @@ int radeon_cp_stop( DRM_OS_IOCTL )
|
|||
*/
|
||||
if ( stop.idle ) {
|
||||
ret = radeon_do_cp_idle( dev_priv );
|
||||
#ifdef __linux__
|
||||
if ( ret < 0 ) return ret;
|
||||
#endif
|
||||
#ifdef __FreeBSD__
|
||||
if ( ret ) return ret;
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Finally, we can turn off the CP. If the engine isn't idle,
|
||||
|
|
|
|||
|
|
@ -649,6 +649,19 @@ do { \
|
|||
__ring_space_done: \
|
||||
} while (0)
|
||||
|
||||
#ifdef __linux__
|
||||
#define VB_AGE_TEST_WITH_RETURN( dev_priv ) \
|
||||
do { \
|
||||
drm_radeon_sarea_t *sarea_priv = dev_priv->sarea_priv; \
|
||||
if ( sarea_priv->last_dispatch >= RADEON_MAX_VB_AGE ) { \
|
||||
int __ret = radeon_do_cp_idle( dev_priv ); \
|
||||
if ( __ret < 0 ) return __ret; \
|
||||
sarea_priv->last_dispatch = 0; \
|
||||
radeon_freelist_reset( dev ); \
|
||||
} \
|
||||
} while (0)
|
||||
#endif
|
||||
#ifdef __FreeBSD__
|
||||
#define VB_AGE_TEST_WITH_RETURN( dev_priv ) \
|
||||
do { \
|
||||
drm_radeon_sarea_t *sarea_priv = dev_priv->sarea_priv; \
|
||||
|
|
@ -659,6 +672,7 @@ do { \
|
|||
radeon_freelist_reset( dev ); \
|
||||
} \
|
||||
} while (0)
|
||||
#endif
|
||||
|
||||
#define RADEON_DISPATCH_AGE( age ) do { \
|
||||
OUT_RING( CP_PACKET0( RADEON_LAST_DISPATCH_REG, 0 ) ); \
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue