.. | .. |
---|
| 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); |
---|