| .. | .. |
|---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-only |
|---|
| 1 | 2 | /* sun3x_esp.c: ESP front-end for Sun3x systems. |
|---|
| 2 | 3 | * |
|---|
| 3 | 4 | * Copyright (C) 2007,2008 Thomas Bogendoerfer (tsbogend@alpha.franken.de) |
|---|
| .. | .. |
|---|
| 58 | 59 | static u8 sun3x_esp_read8(struct esp *esp, unsigned long reg) |
|---|
| 59 | 60 | { |
|---|
| 60 | 61 | return readb(esp->regs + (reg * 4UL)); |
|---|
| 61 | | -} |
|---|
| 62 | | - |
|---|
| 63 | | -static dma_addr_t sun3x_esp_map_single(struct esp *esp, void *buf, |
|---|
| 64 | | - size_t sz, int dir) |
|---|
| 65 | | -{ |
|---|
| 66 | | - return dma_map_single(esp->dev, buf, sz, dir); |
|---|
| 67 | | -} |
|---|
| 68 | | - |
|---|
| 69 | | -static int sun3x_esp_map_sg(struct esp *esp, struct scatterlist *sg, |
|---|
| 70 | | - int num_sg, int dir) |
|---|
| 71 | | -{ |
|---|
| 72 | | - return dma_map_sg(esp->dev, sg, num_sg, dir); |
|---|
| 73 | | -} |
|---|
| 74 | | - |
|---|
| 75 | | -static void sun3x_esp_unmap_single(struct esp *esp, dma_addr_t addr, |
|---|
| 76 | | - size_t sz, int dir) |
|---|
| 77 | | -{ |
|---|
| 78 | | - dma_unmap_single(esp->dev, addr, sz, dir); |
|---|
| 79 | | -} |
|---|
| 80 | | - |
|---|
| 81 | | -static void sun3x_esp_unmap_sg(struct esp *esp, struct scatterlist *sg, |
|---|
| 82 | | - int num_sg, int dir) |
|---|
| 83 | | -{ |
|---|
| 84 | | - dma_unmap_sg(esp->dev, sg, num_sg, dir); |
|---|
| 85 | 62 | } |
|---|
| 86 | 63 | |
|---|
| 87 | 64 | static int sun3x_esp_irq_pending(struct esp *esp) |
|---|
| .. | .. |
|---|
| 182 | 159 | static const struct esp_driver_ops sun3x_esp_ops = { |
|---|
| 183 | 160 | .esp_write8 = sun3x_esp_write8, |
|---|
| 184 | 161 | .esp_read8 = sun3x_esp_read8, |
|---|
| 185 | | - .map_single = sun3x_esp_map_single, |
|---|
| 186 | | - .map_sg = sun3x_esp_map_sg, |
|---|
| 187 | | - .unmap_single = sun3x_esp_unmap_single, |
|---|
| 188 | | - .unmap_sg = sun3x_esp_unmap_sg, |
|---|
| 189 | 162 | .irq_pending = sun3x_esp_irq_pending, |
|---|
| 190 | 163 | .reset_dma = sun3x_esp_reset_dma, |
|---|
| 191 | 164 | .dma_drain = sun3x_esp_dma_drain, |
|---|
| .. | .. |
|---|
| 217 | 190 | if (!res || !res->start) |
|---|
| 218 | 191 | goto fail_unlink; |
|---|
| 219 | 192 | |
|---|
| 220 | | - esp->regs = ioremap_nocache(res->start, 0x20); |
|---|
| 193 | + esp->regs = ioremap(res->start, 0x20); |
|---|
| 221 | 194 | if (!esp->regs) |
|---|
| 222 | 195 | goto fail_unmap_regs; |
|---|
| 223 | 196 | |
|---|
| .. | .. |
|---|
| 225 | 198 | if (!res || !res->start) |
|---|
| 226 | 199 | goto fail_unmap_regs; |
|---|
| 227 | 200 | |
|---|
| 228 | | - esp->dma_regs = ioremap_nocache(res->start, 0x10); |
|---|
| 201 | + esp->dma_regs = ioremap(res->start, 0x10); |
|---|
| 229 | 202 | |
|---|
| 230 | 203 | esp->command_block = dma_alloc_coherent(esp->dev, 16, |
|---|
| 231 | 204 | &esp->command_block_dma, |
|---|
| .. | .. |
|---|
| 248 | 221 | |
|---|
| 249 | 222 | dev_set_drvdata(&dev->dev, esp); |
|---|
| 250 | 223 | |
|---|
| 251 | | - err = scsi_esp_register(esp, &dev->dev); |
|---|
| 224 | + err = scsi_esp_register(esp); |
|---|
| 252 | 225 | if (err) |
|---|
| 253 | 226 | goto fail_free_irq; |
|---|
| 254 | 227 | |
|---|
| .. | .. |
|---|
| 299 | 272 | .name = "sun3x_esp", |
|---|
| 300 | 273 | }, |
|---|
| 301 | 274 | }; |
|---|
| 302 | | - |
|---|
| 303 | | -static int __init sun3x_esp_init(void) |
|---|
| 304 | | -{ |
|---|
| 305 | | - return platform_driver_register(&esp_sun3x_driver); |
|---|
| 306 | | -} |
|---|
| 307 | | - |
|---|
| 308 | | -static void __exit sun3x_esp_exit(void) |
|---|
| 309 | | -{ |
|---|
| 310 | | - platform_driver_unregister(&esp_sun3x_driver); |
|---|
| 311 | | -} |
|---|
| 275 | +module_platform_driver(esp_sun3x_driver); |
|---|
| 312 | 276 | |
|---|
| 313 | 277 | MODULE_DESCRIPTION("Sun3x ESP SCSI driver"); |
|---|
| 314 | 278 | MODULE_AUTHOR("Thomas Bogendoerfer (tsbogend@alpha.franken.de)"); |
|---|
| 315 | 279 | MODULE_LICENSE("GPL"); |
|---|
| 316 | 280 | MODULE_VERSION(DRV_VERSION); |
|---|
| 317 | | - |
|---|
| 318 | | -module_init(sun3x_esp_init); |
|---|
| 319 | | -module_exit(sun3x_esp_exit); |
|---|
| 320 | 281 | MODULE_ALIAS("platform:sun3x_esp"); |
|---|