.. | .. |
---|
1278 | 1278 | hdptx_write(hdptx, CMN_REG0043, 0x00); |
---|
1279 | 1279 | hdptx_write(hdptx, CMN_REG0044, 0x46); |
---|
1280 | 1280 | hdptx_write(hdptx, CMN_REG0045, 0x24); |
---|
1281 | | - hdptx_write(hdptx, CMN_REG0046, 0xff); |
---|
| 1281 | + hdptx_write(hdptx, CMN_REG0046, 0xdd); |
---|
1282 | 1282 | hdptx_write(hdptx, CMN_REG0047, 0x00); |
---|
1283 | | - hdptx_write(hdptx, CMN_REG0048, 0x44); |
---|
| 1283 | + hdptx_write(hdptx, CMN_REG0048, 0x11); |
---|
1284 | 1284 | hdptx_write(hdptx, CMN_REG0049, 0xfa); |
---|
1285 | 1285 | hdptx_write(hdptx, CMN_REG004A, 0x08); |
---|
1286 | 1286 | hdptx_write(hdptx, CMN_REG004B, 0x00); |
---|
.. | .. |
---|
1457 | 1457 | hdptx_write(hdptx, LANE_REG0616, 0x02); |
---|
1458 | 1458 | hdptx_write(hdptx, LANE_REG061B, 0x01); |
---|
1459 | 1459 | hdptx_write(hdptx, LANE_REG061E, 0x08); |
---|
| 1460 | + |
---|
| 1461 | + /* fix Inter-Pair Skew exceed the limits */ |
---|
| 1462 | + hdptx_write(hdptx, LANE_REG031E, 0x02); |
---|
| 1463 | + hdptx_write(hdptx, LANE_REG041E, 0x02); |
---|
| 1464 | + hdptx_write(hdptx, LANE_REG051E, 0x02); |
---|
| 1465 | + hdptx_write(hdptx, LANE_REG061E, 0x0a); |
---|
| 1466 | + |
---|
1460 | 1467 | hdptx_write(hdptx, LANE_REG061F, 0x15); |
---|
1461 | 1468 | hdptx_write(hdptx, LANE_REG0620, 0xa0); |
---|
1462 | 1469 | |
---|
.. | .. |
---|
1705 | 1712 | hdptx_write(hdptx, LANE_REG061F, 0x15); |
---|
1706 | 1713 | hdptx_write(hdptx, LANE_REG0620, 0xa0); |
---|
1707 | 1714 | |
---|
| 1715 | + hdptx_write(hdptx, LANE_REG031E, 0x02); |
---|
| 1716 | + hdptx_write(hdptx, LANE_REG041E, 0x02); |
---|
| 1717 | + hdptx_write(hdptx, LANE_REG051E, 0x02); |
---|
| 1718 | + hdptx_write(hdptx, LANE_REG061E, 0x02); |
---|
| 1719 | + |
---|
| 1720 | + hdptx_write(hdptx, LANE_REG0303, 0x2f); |
---|
| 1721 | + hdptx_write(hdptx, LANE_REG0403, 0x2f); |
---|
| 1722 | + hdptx_write(hdptx, LANE_REG0503, 0x2f); |
---|
| 1723 | + hdptx_write(hdptx, LANE_REG0603, 0x2f); |
---|
| 1724 | + hdptx_write(hdptx, LANE_REG0305, 0x03); |
---|
| 1725 | + hdptx_write(hdptx, LANE_REG0405, 0x03); |
---|
| 1726 | + hdptx_write(hdptx, LANE_REG0505, 0x03); |
---|
| 1727 | + hdptx_write(hdptx, LANE_REG0605, 0x03); |
---|
| 1728 | + hdptx_write(hdptx, LANE_REG0306, 0xfc); |
---|
| 1729 | + hdptx_write(hdptx, LANE_REG0406, 0xfc); |
---|
| 1730 | + hdptx_write(hdptx, LANE_REG0506, 0xfc); |
---|
| 1731 | + hdptx_write(hdptx, LANE_REG0606, 0xfc); |
---|
| 1732 | + |
---|
| 1733 | + hdptx_write(hdptx, LANE_REG0305, 0x4f); |
---|
| 1734 | + hdptx_write(hdptx, LANE_REG0405, 0x4f); |
---|
| 1735 | + hdptx_write(hdptx, LANE_REG0505, 0x4f); |
---|
| 1736 | + hdptx_write(hdptx, LANE_REG0605, 0x4f); |
---|
| 1737 | + hdptx_write(hdptx, LANE_REG0304, 0x14); |
---|
| 1738 | + hdptx_write(hdptx, LANE_REG0404, 0x14); |
---|
| 1739 | + hdptx_write(hdptx, LANE_REG0504, 0x14); |
---|
| 1740 | + hdptx_write(hdptx, LANE_REG0604, 0x14); |
---|
| 1741 | + |
---|
1708 | 1742 | return hdptx_post_enable_lane(hdptx); |
---|
1709 | 1743 | } |
---|
1710 | 1744 | |
---|
.. | .. |
---|
1774 | 1808 | hdptx_write(hdptx, LANE_REG061B, 0x01); |
---|
1775 | 1809 | hdptx_write(hdptx, LANE_REG061F, 0x15); |
---|
1776 | 1810 | hdptx_write(hdptx, LANE_REG0620, 0xa0); |
---|
| 1811 | + |
---|
| 1812 | + hdptx_write(hdptx, LANE_REG031E, 0x02); |
---|
| 1813 | + hdptx_write(hdptx, LANE_REG041E, 0x02); |
---|
| 1814 | + hdptx_write(hdptx, LANE_REG051E, 0x02); |
---|
| 1815 | + hdptx_write(hdptx, LANE_REG061E, 0x02); |
---|
| 1816 | + |
---|
| 1817 | + hdptx_write(hdptx, LANE_REG0303, 0x2f); |
---|
| 1818 | + hdptx_write(hdptx, LANE_REG0403, 0x2f); |
---|
| 1819 | + hdptx_write(hdptx, LANE_REG0503, 0x2f); |
---|
| 1820 | + hdptx_write(hdptx, LANE_REG0603, 0x2f); |
---|
| 1821 | + hdptx_write(hdptx, LANE_REG0305, 0x03); |
---|
| 1822 | + hdptx_write(hdptx, LANE_REG0405, 0x03); |
---|
| 1823 | + hdptx_write(hdptx, LANE_REG0505, 0x03); |
---|
| 1824 | + hdptx_write(hdptx, LANE_REG0605, 0x03); |
---|
| 1825 | + hdptx_write(hdptx, LANE_REG0306, 0xfc); |
---|
| 1826 | + hdptx_write(hdptx, LANE_REG0406, 0xfc); |
---|
| 1827 | + hdptx_write(hdptx, LANE_REG0506, 0xfc); |
---|
| 1828 | + hdptx_write(hdptx, LANE_REG0606, 0xfc); |
---|
| 1829 | + |
---|
| 1830 | + hdptx_write(hdptx, LANE_REG0305, 0x4f); |
---|
| 1831 | + hdptx_write(hdptx, LANE_REG0405, 0x4f); |
---|
| 1832 | + hdptx_write(hdptx, LANE_REG0505, 0x4f); |
---|
| 1833 | + hdptx_write(hdptx, LANE_REG0605, 0x4f); |
---|
| 1834 | + hdptx_write(hdptx, LANE_REG0304, 0x14); |
---|
| 1835 | + hdptx_write(hdptx, LANE_REG0404, 0x14); |
---|
| 1836 | + hdptx_write(hdptx, LANE_REG0504, 0x14); |
---|
| 1837 | + hdptx_write(hdptx, LANE_REG0604, 0x14); |
---|
1777 | 1838 | |
---|
1778 | 1839 | return hdptx_post_enable_lane(hdptx); |
---|
1779 | 1840 | } |
---|
.. | .. |
---|
1951 | 2012 | |
---|
1952 | 2013 | subnode = ofnode_find_subnode(parent->node, "clk-port"); |
---|
1953 | 2014 | if (!ofnode_valid(subnode)) { |
---|
1954 | | - printf("%s: no subnode for %s", __func__, parent->name); |
---|
| 2015 | + free(str); |
---|
| 2016 | + printf("%s: no subnode for %s\n", __func__, parent->name); |
---|
1955 | 2017 | return -ENXIO; |
---|
1956 | 2018 | } |
---|
1957 | 2019 | |
---|
1958 | 2020 | ret = device_bind_driver_to_node(parent, "clk_hdptx", str, subnode, &child); |
---|
1959 | 2021 | if (ret) { |
---|
| 2022 | + free(str); |
---|
1960 | 2023 | printf("%s: clk-port cannot bind its driver\n", __func__); |
---|
1961 | 2024 | return ret; |
---|
1962 | 2025 | } |
---|
.. | .. |
---|
2019 | 2082 | new_rate = rate; |
---|
2020 | 2083 | priv->rate = rate; |
---|
2021 | 2084 | } |
---|
2022 | | - } |
---|
2023 | | - } else { |
---|
2024 | | - if (!hdptx_ropll_cmn_config(hdptx, rate)) { |
---|
2025 | | - new_rate = rate; |
---|
2026 | | - priv->rate = rate; |
---|
2027 | | - } |
---|
2028 | | - } |
---|
2029 | | - |
---|
2030 | | - if (rate > (HDMI20_MAX_RATE / 100)) { |
---|
2031 | | - if (!hdptx_lcpll_cmn_config(hdptx, rate)) { |
---|
2032 | | - new_rate = rate; |
---|
2033 | | - priv->rate = rate; |
---|
2034 | 2085 | } |
---|
2035 | 2086 | } else { |
---|
2036 | 2087 | if (!hdptx_ropll_cmn_config(hdptx, rate)) { |
---|