.. | .. |
---|
592 | 592 | struct phy_configure_opts_dp *dp) |
---|
593 | 593 | { |
---|
594 | 594 | u8 lane; |
---|
| 595 | + u32 status; |
---|
| 596 | + int ret; |
---|
595 | 597 | |
---|
596 | 598 | for (lane = 0; lane < dp->lanes; lane++) |
---|
597 | 599 | rockchip_hdptx_phy_set_voltage(hdptx, dp, lane); |
---|
| 600 | + |
---|
| 601 | + reset_deassert(&hdptx->lane_reset); |
---|
| 602 | + |
---|
| 603 | + ret = regmap_read_poll_timeout(hdptx->grf, HDPTXPHY_GRF_STATUS0, |
---|
| 604 | + status, FIELD_GET(PHY_RDY, status), |
---|
| 605 | + 50, 5000); |
---|
| 606 | + if (ret) { |
---|
| 607 | + dev_err(hdptx->dev, "timeout waiting for phy_rdy\n"); |
---|
| 608 | + return ret; |
---|
| 609 | + } |
---|
598 | 610 | |
---|
599 | 611 | return 0; |
---|
600 | 612 | } |
---|
.. | .. |
---|
676 | 688 | |
---|
677 | 689 | regmap_update_bits(hdptx->regmap, 0x081c, LANE_EN, |
---|
678 | 690 | FIELD_PREP(LANE_EN, GENMASK(dp->lanes - 1, 0))); |
---|
679 | | - |
---|
680 | | - reset_deassert(&hdptx->lane_reset); |
---|
681 | | - udelay(10); |
---|
682 | | - |
---|
683 | | - ret = regmap_read_poll_timeout(hdptx->grf, HDPTXPHY_GRF_STATUS0, |
---|
684 | | - status, FIELD_GET(PHY_RDY, status), |
---|
685 | | - 50, 1000); |
---|
686 | | - if (ret) { |
---|
687 | | - dev_err(hdptx->dev, "timeout waiting for phy_rdy\n"); |
---|
688 | | - return ret; |
---|
689 | | - } |
---|
690 | 691 | |
---|
691 | 692 | return 0; |
---|
692 | 693 | } |
---|