| .. | .. |
|---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-only |
|---|
| 1 | 2 | /* jazz_esp.c: ESP front-end for MIPS JAZZ systems. |
|---|
| 2 | 3 | * |
|---|
| 3 | 4 | * Copyright (C) 2007 Thomas Bogendörfer (tsbogend@alpha.frankende) |
|---|
| .. | .. |
|---|
| 36 | 37 | static u8 jazz_esp_read8(struct esp *esp, unsigned long reg) |
|---|
| 37 | 38 | { |
|---|
| 38 | 39 | return *(volatile u8 *)(esp->regs + reg); |
|---|
| 39 | | -} |
|---|
| 40 | | - |
|---|
| 41 | | -static dma_addr_t jazz_esp_map_single(struct esp *esp, void *buf, |
|---|
| 42 | | - size_t sz, int dir) |
|---|
| 43 | | -{ |
|---|
| 44 | | - return dma_map_single(esp->dev, buf, sz, dir); |
|---|
| 45 | | -} |
|---|
| 46 | | - |
|---|
| 47 | | -static int jazz_esp_map_sg(struct esp *esp, struct scatterlist *sg, |
|---|
| 48 | | - int num_sg, int dir) |
|---|
| 49 | | -{ |
|---|
| 50 | | - return dma_map_sg(esp->dev, sg, num_sg, dir); |
|---|
| 51 | | -} |
|---|
| 52 | | - |
|---|
| 53 | | -static void jazz_esp_unmap_single(struct esp *esp, dma_addr_t addr, |
|---|
| 54 | | - size_t sz, int dir) |
|---|
| 55 | | -{ |
|---|
| 56 | | - dma_unmap_single(esp->dev, addr, sz, dir); |
|---|
| 57 | | -} |
|---|
| 58 | | - |
|---|
| 59 | | -static void jazz_esp_unmap_sg(struct esp *esp, struct scatterlist *sg, |
|---|
| 60 | | - int num_sg, int dir) |
|---|
| 61 | | -{ |
|---|
| 62 | | - dma_unmap_sg(esp->dev, sg, num_sg, dir); |
|---|
| 63 | 40 | } |
|---|
| 64 | 41 | |
|---|
| 65 | 42 | static int jazz_esp_irq_pending(struct esp *esp) |
|---|
| .. | .. |
|---|
| 117 | 94 | static const struct esp_driver_ops jazz_esp_ops = { |
|---|
| 118 | 95 | .esp_write8 = jazz_esp_write8, |
|---|
| 119 | 96 | .esp_read8 = jazz_esp_read8, |
|---|
| 120 | | - .map_single = jazz_esp_map_single, |
|---|
| 121 | | - .map_sg = jazz_esp_map_sg, |
|---|
| 122 | | - .unmap_single = jazz_esp_unmap_single, |
|---|
| 123 | | - .unmap_sg = jazz_esp_unmap_sg, |
|---|
| 124 | 97 | .irq_pending = jazz_esp_irq_pending, |
|---|
| 125 | 98 | .reset_dma = jazz_esp_reset_dma, |
|---|
| 126 | 99 | .dma_drain = jazz_esp_dma_drain, |
|---|
| .. | .. |
|---|
| 184 | 157 | |
|---|
| 185 | 158 | dev_set_drvdata(&dev->dev, esp); |
|---|
| 186 | 159 | |
|---|
| 187 | | - err = scsi_esp_register(esp, &dev->dev); |
|---|
| 160 | + err = scsi_esp_register(esp); |
|---|
| 188 | 161 | if (err) |
|---|
| 189 | 162 | goto fail_free_irq; |
|---|
| 190 | 163 | |
|---|
| .. | .. |
|---|
| 230 | 203 | .name = "jazz_esp", |
|---|
| 231 | 204 | }, |
|---|
| 232 | 205 | }; |
|---|
| 233 | | - |
|---|
| 234 | | -static int __init jazz_esp_init(void) |
|---|
| 235 | | -{ |
|---|
| 236 | | - return platform_driver_register(&esp_jazz_driver); |
|---|
| 237 | | -} |
|---|
| 238 | | - |
|---|
| 239 | | -static void __exit jazz_esp_exit(void) |
|---|
| 240 | | -{ |
|---|
| 241 | | - platform_driver_unregister(&esp_jazz_driver); |
|---|
| 242 | | -} |
|---|
| 206 | +module_platform_driver(esp_jazz_driver); |
|---|
| 243 | 207 | |
|---|
| 244 | 208 | MODULE_DESCRIPTION("JAZZ ESP SCSI driver"); |
|---|
| 245 | 209 | MODULE_AUTHOR("Thomas Bogendoerfer (tsbogend@alpha.franken.de)"); |
|---|
| 246 | 210 | MODULE_LICENSE("GPL"); |
|---|
| 247 | 211 | MODULE_VERSION(DRV_VERSION); |
|---|
| 248 | | - |
|---|
| 249 | | -module_init(jazz_esp_init); |
|---|
| 250 | | -module_exit(jazz_esp_exit); |
|---|