.. | .. |
---|
2 | 2 | /* |
---|
3 | 3 | * Texas Instruments' Message Manager Driver |
---|
4 | 4 | * |
---|
5 | | - * Copyright (C) 2015-2017 Texas Instruments Incorporated - http://www.ti.com/ |
---|
| 5 | + * Copyright (C) 2015-2017 Texas Instruments Incorporated - https://www.ti.com/ |
---|
6 | 6 | * Nishanth Menon |
---|
7 | 7 | */ |
---|
8 | 8 | |
---|
.. | .. |
---|
385 | 385 | /* Ensure all unused data is 0 */ |
---|
386 | 386 | data_trail &= 0xFFFFFFFF >> (8 * (sizeof(u32) - trail_bytes)); |
---|
387 | 387 | writel(data_trail, data_reg); |
---|
388 | | - data_reg++; |
---|
| 388 | + data_reg += sizeof(u32); |
---|
389 | 389 | } |
---|
| 390 | + |
---|
390 | 391 | /* |
---|
391 | 392 | * 'data_reg' indicates next register to write. If we did not already |
---|
392 | 393 | * write on tx complete reg(last reg), we must do so for transmit |
---|
| 394 | + * In addition, we also need to make sure all intermediate data |
---|
| 395 | + * registers(if any required), are reset to 0 for TISCI backward |
---|
| 396 | + * compatibility to be maintained. |
---|
393 | 397 | */ |
---|
394 | | - if (data_reg <= qinst->queue_buff_end) |
---|
395 | | - writel(0, qinst->queue_buff_end); |
---|
| 398 | + while (data_reg <= qinst->queue_buff_end) { |
---|
| 399 | + writel(0, data_reg); |
---|
| 400 | + data_reg += sizeof(u32); |
---|
| 401 | + } |
---|
396 | 402 | |
---|
397 | 403 | return 0; |
---|
398 | 404 | } |
---|
.. | .. |
---|
560 | 566 | } |
---|
561 | 567 | |
---|
562 | 568 | err: |
---|
563 | | - dev_err(inst->dev, "Queue ID %d, Proxy ID %d is wrong on %s\n", |
---|
564 | | - req_qid, req_pid, p->np->name); |
---|
| 569 | + dev_err(inst->dev, "Queue ID %d, Proxy ID %d is wrong on %pOFn\n", |
---|
| 570 | + req_qid, req_pid, p->np); |
---|
565 | 571 | return ERR_PTR(-ENOENT); |
---|
566 | 572 | } |
---|
567 | 573 | |
---|
.. | .. |
---|
817 | 823 | mbox->of_xlate = ti_msgmgr_of_xlate; |
---|
818 | 824 | |
---|
819 | 825 | platform_set_drvdata(pdev, inst); |
---|
820 | | - ret = mbox_controller_register(mbox); |
---|
| 826 | + ret = devm_mbox_controller_register(dev, mbox); |
---|
821 | 827 | if (ret) |
---|
822 | 828 | dev_err(dev, "Failed to register mbox_controller(%d)\n", ret); |
---|
823 | 829 | |
---|
824 | 830 | return ret; |
---|
825 | 831 | } |
---|
826 | 832 | |
---|
827 | | -static int ti_msgmgr_remove(struct platform_device *pdev) |
---|
828 | | -{ |
---|
829 | | - struct ti_msgmgr_inst *inst; |
---|
830 | | - |
---|
831 | | - inst = platform_get_drvdata(pdev); |
---|
832 | | - mbox_controller_unregister(&inst->mbox); |
---|
833 | | - |
---|
834 | | - return 0; |
---|
835 | | -} |
---|
836 | | - |
---|
837 | 833 | static struct platform_driver ti_msgmgr_driver = { |
---|
838 | 834 | .probe = ti_msgmgr_probe, |
---|
839 | | - .remove = ti_msgmgr_remove, |
---|
840 | 835 | .driver = { |
---|
841 | 836 | .name = "ti-msgmgr", |
---|
842 | 837 | .of_match_table = of_match_ptr(ti_msgmgr_of_match), |
---|