| .. | .. |
|---|
| 564 | 564 | } |
|---|
| 565 | 565 | |
|---|
| 566 | 566 | for_each_sg(rctx->sg, tsg, rctx->nents, i) { |
|---|
| 567 | + sg[0] = *tsg; |
|---|
| 567 | 568 | len = sg->length; |
|---|
| 568 | 569 | |
|---|
| 569 | | - sg[0] = *tsg; |
|---|
| 570 | 570 | if (sg_is_last(sg)) { |
|---|
| 571 | 571 | if (hdev->dma_mode == 1) { |
|---|
| 572 | 572 | len = (ALIGN(sg->length, 16) - 16); |
|---|
| .. | .. |
|---|
| 1565 | 1565 | if (!hdev) |
|---|
| 1566 | 1566 | return -ENODEV; |
|---|
| 1567 | 1567 | |
|---|
| 1568 | | - ret = pm_runtime_resume_and_get(hdev->dev); |
|---|
| 1569 | | - if (ret < 0) |
|---|
| 1570 | | - return ret; |
|---|
| 1568 | + ret = pm_runtime_get_sync(hdev->dev); |
|---|
| 1571 | 1569 | |
|---|
| 1572 | 1570 | stm32_hash_unregister_algs(hdev); |
|---|
| 1573 | 1571 | |
|---|
| .. | .. |
|---|
| 1583 | 1581 | pm_runtime_disable(hdev->dev); |
|---|
| 1584 | 1582 | pm_runtime_put_noidle(hdev->dev); |
|---|
| 1585 | 1583 | |
|---|
| 1586 | | - clk_disable_unprepare(hdev->clk); |
|---|
| 1584 | + if (ret >= 0) |
|---|
| 1585 | + clk_disable_unprepare(hdev->clk); |
|---|
| 1587 | 1586 | |
|---|
| 1588 | 1587 | return 0; |
|---|
| 1589 | 1588 | } |
|---|