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