Rev 1313 | Rev 1430 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1313 | Rev 1403 | ||
---|---|---|---|
Line 142... | Line 142... | ||
142 | } |
142 | } |
143 | } |
143 | } |
Line 144... | Line 144... | ||
144 | 144 | ||
145 | ret = drm_agp_info(rdev->ddev, &info); |
145 | ret = drm_agp_info(rdev->ddev, &info); |
- | 146 | if (ret) { |
|
146 | if (ret) { |
147 | drm_agp_release(rdev->ddev); |
147 | DRM_ERROR("Unable to get AGP info: %d\n", ret); |
148 | DRM_ERROR("Unable to get AGP info: %d\n", ret); |
148 | return ret; |
149 | return ret; |
- | 150 | } |
|
- | 151 | ||
- | 152 | if (rdev->ddev->agp->agp_info.aper_size < 32) { |
|
- | 153 | drm_agp_release(rdev->ddev); |
|
- | 154 | dev_warn(rdev->dev, "AGP aperture too small (%zuM) " |
|
- | 155 | "need at least 32M, disabling AGP\n", |
|
- | 156 | rdev->ddev->agp->agp_info.aper_size); |
|
- | 157 | return -EINVAL; |
|
- | 158 | } |
|
149 | } |
159 | |
150 | mode.mode = info.mode; |
160 | mode.mode = info.mode; |
151 | agp_status = (RREG32(RADEON_AGP_STATUS) | RADEON_AGPv3_MODE) & mode.mode; |
161 | agp_status = (RREG32(RADEON_AGP_STATUS) | RADEON_AGPv3_MODE) & mode.mode; |
Line 152... | Line 162... | ||
152 | is_v3 = !!(agp_status & RADEON_AGPv3_MODE); |
162 | is_v3 = !!(agp_status & RADEON_AGPv3_MODE); |
Line 219... | Line 229... | ||
219 | 229 | ||
220 | mode.mode &= ~RADEON_AGP_FW_MODE; /* disable fw */ |
230 | mode.mode &= ~RADEON_AGP_FW_MODE; /* disable fw */ |
221 | ret = drm_agp_enable(rdev->ddev, mode); |
231 | ret = drm_agp_enable(rdev->ddev, mode); |
222 | if (ret) { |
232 | if (ret) { |
- | 233 | DRM_ERROR("Unable to enable AGP (mode = 0x%lx)\n", mode.mode); |
|
223 | DRM_ERROR("Unable to enable AGP (mode = 0x%lx)\n", mode.mode); |
234 | drm_agp_release(rdev->ddev); |
224 | return ret; |
235 | return ret; |
Line 225... | Line 236... | ||
225 | } |
236 | } |
226 | 237 | ||
Line 250... | Line 261... | ||
250 | } |
261 | } |
Line 251... | Line 262... | ||
251 | 262 | ||
252 | void radeon_agp_fini(struct radeon_device *rdev) |
263 | void radeon_agp_fini(struct radeon_device *rdev) |
253 | { |
264 | { |
254 | #if __OS_HAS_AGP |
- | |
255 | if (rdev->flags & RADEON_IS_AGP) { |
265 | #if __OS_HAS_AGP |
256 | if (rdev->ddev->agp && rdev->ddev->agp->acquired) { |
266 | if (rdev->ddev->agp && rdev->ddev->agp->acquired) { |
257 | drm_agp_release(rdev->ddev); |
267 | drm_agp_release(rdev->ddev); |
258 | } |
- | |
259 | } |
268 | } |
260 | #endif |
269 | #endif |