Rev 5271 | Rev 6104 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 5271 | Rev 5346 | ||
---|---|---|---|
Line 1280... | Line 1280... | ||
1280 | mutex_init(&rdev->gem.mutex); |
1280 | mutex_init(&rdev->gem.mutex); |
1281 | mutex_init(&rdev->pm.mutex); |
1281 | mutex_init(&rdev->pm.mutex); |
1282 | mutex_init(&rdev->gpu_clock_mutex); |
1282 | mutex_init(&rdev->gpu_clock_mutex); |
1283 | mutex_init(&rdev->srbm_mutex); |
1283 | mutex_init(&rdev->srbm_mutex); |
1284 | mutex_init(&rdev->grbm_idx_mutex); |
1284 | mutex_init(&rdev->grbm_idx_mutex); |
1285 | - | ||
1286 | // init_rwsem(&rdev->pm.mclk_lock); |
1285 | init_rwsem(&rdev->pm.mclk_lock); |
1287 | // init_rwsem(&rdev->exclusive_lock); |
1286 | init_rwsem(&rdev->exclusive_lock); |
1288 | init_waitqueue_head(&rdev->irq.vblank_queue); |
1287 | init_waitqueue_head(&rdev->irq.vblank_queue); |
1289 | mutex_init(&rdev->mn_lock); |
1288 | mutex_init(&rdev->mn_lock); |
1290 | // hash_init(rdev->mn_hash); |
1289 | // hash_init(rdev->mn_hash); |
1291 | r = radeon_gem_init(rdev); |
1290 | r = radeon_gem_init(rdev); |
1292 | if (r) |
1291 | if (r) |
Line 1454... | Line 1453... | ||
1454 | bool saved = false; |
1453 | bool saved = false; |
Line 1455... | Line 1454... | ||
1455 | 1454 | ||
1456 | int i, r; |
1455 | int i, r; |
Line 1457... | Line 1456... | ||
1457 | int resched; |
1456 | int resched; |
- | 1457 | ||
1458 | 1458 | down_write(&rdev->exclusive_lock); |
|
- | 1459 | ||
- | 1460 | if (!rdev->needs_reset) { |
|
- | 1461 | up_write(&rdev->exclusive_lock); |
|
Line 1459... | Line 1462... | ||
1459 | // down_write(&rdev->exclusive_lock); |
1462 | return 0; |
1460 | rdev->needs_reset = false; |
1463 | } |
1461 | 1464 | ||
1462 | radeon_save_bios_scratch_regs(rdev); |
1465 | radeon_save_bios_scratch_regs(rdev); |
Line 1496... | Line 1499... | ||
1496 | if (r) { |
1499 | if (r) { |
1497 | /* bad news, how to tell it to userspace ? */ |
1500 | /* bad news, how to tell it to userspace ? */ |
1498 | dev_info(rdev->dev, "GPU reset failed\n"); |
1501 | dev_info(rdev->dev, "GPU reset failed\n"); |
1499 | } |
1502 | } |
Line -... | Line 1503... | ||
- | 1503 | ||
- | 1504 | rdev->needs_reset = r == -EAGAIN; |
|
- | 1505 | rdev->in_reset = false; |
|
1500 | 1506 | ||
1501 | // up_write(&rdev->exclusive_lock); |
1507 | up_read(&rdev->exclusive_lock); |
1502 | return r; |
1508 | return r; |
Line 1503... | Line 1509... | ||
1503 | } |
1509 | } |