diff options
Diffstat (limited to 'drivers/char/agp/backend.c')
-rw-r--r-- | drivers/char/agp/backend.c | 22 |
1 files changed, 1 insertions, 21 deletions
diff --git a/drivers/char/agp/backend.c b/drivers/char/agp/backend.c index ee4f855611b6..f27d0d0816d3 100644 --- a/drivers/char/agp/backend.c +++ b/drivers/char/agp/backend.c | |||
@@ -151,17 +151,7 @@ static int agp_backend_initialize(struct agp_bridge_data *bridge) | |||
151 | } | 151 | } |
152 | 152 | ||
153 | bridge->scratch_page_page = page; | 153 | bridge->scratch_page_page = page; |
154 | if (bridge->driver->agp_map_page) { | 154 | bridge->scratch_page_dma = page_to_phys(page); |
155 | if (bridge->driver->agp_map_page(page, | ||
156 | &bridge->scratch_page_dma)) { | ||
157 | dev_err(&bridge->dev->dev, | ||
158 | "unable to dma-map scratch page\n"); | ||
159 | rc = -ENOMEM; | ||
160 | goto err_out_nounmap; | ||
161 | } | ||
162 | } else { | ||
163 | bridge->scratch_page_dma = page_to_phys(page); | ||
164 | } | ||
165 | 155 | ||
166 | bridge->scratch_page = bridge->driver->mask_memory(bridge, | 156 | bridge->scratch_page = bridge->driver->mask_memory(bridge, |
167 | bridge->scratch_page_dma, 0); | 157 | bridge->scratch_page_dma, 0); |
@@ -204,12 +194,6 @@ static int agp_backend_initialize(struct agp_bridge_data *bridge) | |||
204 | return 0; | 194 | return 0; |
205 | 195 | ||
206 | err_out: | 196 | err_out: |
207 | if (bridge->driver->needs_scratch_page && | ||
208 | bridge->driver->agp_unmap_page) { | ||
209 | bridge->driver->agp_unmap_page(bridge->scratch_page_page, | ||
210 | bridge->scratch_page_dma); | ||
211 | } | ||
212 | err_out_nounmap: | ||
213 | if (bridge->driver->needs_scratch_page) { | 197 | if (bridge->driver->needs_scratch_page) { |
214 | void *va = page_address(bridge->scratch_page_page); | 198 | void *va = page_address(bridge->scratch_page_page); |
215 | 199 | ||
@@ -240,10 +224,6 @@ static void agp_backend_cleanup(struct agp_bridge_data *bridge) | |||
240 | bridge->driver->needs_scratch_page) { | 224 | bridge->driver->needs_scratch_page) { |
241 | void *va = page_address(bridge->scratch_page_page); | 225 | void *va = page_address(bridge->scratch_page_page); |
242 | 226 | ||
243 | if (bridge->driver->agp_unmap_page) | ||
244 | bridge->driver->agp_unmap_page(bridge->scratch_page_page, | ||
245 | bridge->scratch_page_dma); | ||
246 | |||
247 | bridge->driver->agp_destroy_page(va, AGP_PAGE_DESTROY_UNMAP); | 227 | bridge->driver->agp_destroy_page(va, AGP_PAGE_DESTROY_UNMAP); |
248 | bridge->driver->agp_destroy_page(va, AGP_PAGE_DESTROY_FREE); | 228 | bridge->driver->agp_destroy_page(va, AGP_PAGE_DESTROY_FREE); |
249 | } | 229 | } |