| .. | .. |
|---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-only |
|---|
| 1 | 2 | /* qlogicpti.c: Performance Technologies QlogicISP sbus card driver. |
|---|
| 2 | 3 | * |
|---|
| 3 | 4 | * Copyright (C) 1996, 2006, 2008 David S. Miller (davem@davemloft.net) |
|---|
| .. | .. |
|---|
| 29 | 30 | #include <linux/of.h> |
|---|
| 30 | 31 | #include <linux/of_device.h> |
|---|
| 31 | 32 | #include <linux/firmware.h> |
|---|
| 33 | +#include <linux/pgtable.h> |
|---|
| 32 | 34 | |
|---|
| 33 | 35 | #include <asm/byteorder.h> |
|---|
| 34 | 36 | |
|---|
| .. | .. |
|---|
| 36 | 38 | |
|---|
| 37 | 39 | #include <asm/dma.h> |
|---|
| 38 | 40 | #include <asm/ptrace.h> |
|---|
| 39 | | -#include <asm/pgtable.h> |
|---|
| 40 | 41 | #include <asm/oplib.h> |
|---|
| 41 | 42 | #include <asm/io.h> |
|---|
| 42 | 43 | #include <asm/irq.h> |
|---|
| .. | .. |
|---|
| 199 | 200 | /* Write mailbox command registers. */ |
|---|
| 200 | 201 | switch (mbox_param[param[0]] >> 4) { |
|---|
| 201 | 202 | case 6: sbus_writew(param[5], qpti->qregs + MBOX5); |
|---|
| 203 | + fallthrough; |
|---|
| 202 | 204 | case 5: sbus_writew(param[4], qpti->qregs + MBOX4); |
|---|
| 205 | + fallthrough; |
|---|
| 203 | 206 | case 4: sbus_writew(param[3], qpti->qregs + MBOX3); |
|---|
| 207 | + fallthrough; |
|---|
| 204 | 208 | case 3: sbus_writew(param[2], qpti->qregs + MBOX2); |
|---|
| 209 | + fallthrough; |
|---|
| 205 | 210 | case 2: sbus_writew(param[1], qpti->qregs + MBOX1); |
|---|
| 211 | + fallthrough; |
|---|
| 206 | 212 | case 1: sbus_writew(param[0], qpti->qregs + MBOX0); |
|---|
| 207 | 213 | } |
|---|
| 208 | 214 | |
|---|
| .. | .. |
|---|
| 253 | 259 | /* Read back output parameters. */ |
|---|
| 254 | 260 | switch (mbox_param[param[0]] & 0xf) { |
|---|
| 255 | 261 | case 6: param[5] = sbus_readw(qpti->qregs + MBOX5); |
|---|
| 262 | + fallthrough; |
|---|
| 256 | 263 | case 5: param[4] = sbus_readw(qpti->qregs + MBOX4); |
|---|
| 264 | + fallthrough; |
|---|
| 257 | 265 | case 4: param[3] = sbus_readw(qpti->qregs + MBOX3); |
|---|
| 266 | + fallthrough; |
|---|
| 258 | 267 | case 3: param[2] = sbus_readw(qpti->qregs + MBOX2); |
|---|
| 268 | + fallthrough; |
|---|
| 259 | 269 | case 2: param[1] = sbus_readw(qpti->qregs + MBOX1); |
|---|
| 270 | + fallthrough; |
|---|
| 260 | 271 | case 1: param[0] = sbus_readw(qpti->qregs + MBOX0); |
|---|
| 261 | 272 | } |
|---|
| 262 | 273 | |
|---|
| .. | .. |
|---|
| 1287 | 1298 | .can_queue = QLOGICPTI_REQ_QUEUE_LEN, |
|---|
| 1288 | 1299 | .this_id = 7, |
|---|
| 1289 | 1300 | .sg_tablesize = QLOGICPTI_MAX_SG(QLOGICPTI_REQ_QUEUE_LEN), |
|---|
| 1290 | | - .use_clustering = ENABLE_CLUSTERING, |
|---|
| 1291 | 1301 | }; |
|---|
| 1292 | 1302 | |
|---|
| 1293 | 1303 | static const struct of_device_id qpti_match[]; |
|---|
| .. | .. |
|---|
| 1315 | 1325 | qpti->qhost = host; |
|---|
| 1316 | 1326 | qpti->op = op; |
|---|
| 1317 | 1327 | qpti->qpti_id = nqptis; |
|---|
| 1318 | | - strcpy(qpti->prom_name, op->dev.of_node->name); |
|---|
| 1319 | | - qpti->is_pti = strcmp(qpti->prom_name, "QLGC,isp"); |
|---|
| 1328 | + qpti->is_pti = !of_node_name_eq(op->dev.of_node, "QLGC,isp"); |
|---|
| 1320 | 1329 | |
|---|
| 1321 | 1330 | if (qpti_map_regs(qpti) < 0) |
|---|
| 1322 | 1331 | goto fail_unlink; |
|---|
| .. | .. |
|---|
| 1459 | 1468 | .probe = qpti_sbus_probe, |
|---|
| 1460 | 1469 | .remove = qpti_sbus_remove, |
|---|
| 1461 | 1470 | }; |
|---|
| 1462 | | - |
|---|
| 1463 | | -static int __init qpti_init(void) |
|---|
| 1464 | | -{ |
|---|
| 1465 | | - return platform_driver_register(&qpti_sbus_driver); |
|---|
| 1466 | | -} |
|---|
| 1467 | | - |
|---|
| 1468 | | -static void __exit qpti_exit(void) |
|---|
| 1469 | | -{ |
|---|
| 1470 | | - platform_driver_unregister(&qpti_sbus_driver); |
|---|
| 1471 | | -} |
|---|
| 1471 | +module_platform_driver(qpti_sbus_driver); |
|---|
| 1472 | 1472 | |
|---|
| 1473 | 1473 | MODULE_DESCRIPTION("QlogicISP SBUS driver"); |
|---|
| 1474 | 1474 | MODULE_AUTHOR("David S. Miller (davem@davemloft.net)"); |
|---|
| 1475 | 1475 | MODULE_LICENSE("GPL"); |
|---|
| 1476 | 1476 | MODULE_VERSION("2.1"); |
|---|
| 1477 | 1477 | MODULE_FIRMWARE("qlogic/isp1000.bin"); |
|---|
| 1478 | | - |
|---|
| 1479 | | -module_init(qpti_init); |
|---|
| 1480 | | -module_exit(qpti_exit); |
|---|