Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

clk: qcom: drop CLK_SET_RATE_GATE from sdc clocks

the mmci driver (drivers/mmc/host/mmci.c) does the following sequence:
* clk_prepare_enable()
* clk_set_rate()

on SDCx_clk which is a children of SDCx_src. SDCx_src has
CLK_SET_RATE_GATE so this sequence should not be allowed but this was not
enforced. IOW, the flag is ignored. Dropping the flag won't change
anything to the current behaviour of the platform.

CLK_SET_RATE_GATE is being fixed and enforced now. If the flag was kept,
the mmci driver would receive -EBUSY when calling clk_set_rate()

Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Michael Turquette <mturquette@baylibre.com>
Link: lkml.kernel.org/r/20180619134051.16726-2-jbrunet@baylibre.com

authored by

Jerome Brunet and committed by
Michael Turquette
04cdd5af ce397d21

-15
-3
drivers/clk/qcom/gcc-ipq806x.c
··· 1220 1220 .parent_names = gcc_pxo_pll8, 1221 1221 .num_parents = 2, 1222 1222 .ops = &clk_rcg_ops, 1223 - .flags = CLK_SET_RATE_GATE, 1224 1223 }, 1225 1224 } 1226 1225 }; ··· 1268 1269 .parent_names = gcc_pxo_pll8, 1269 1270 .num_parents = 2, 1270 1271 .ops = &clk_rcg_ops, 1271 - .flags = CLK_SET_RATE_GATE, 1272 1272 }, 1273 1273 } 1274 1274 }; ··· 1351 1353 .parent_names = gcc_pxo_pll8, 1352 1354 .num_parents = 2, 1353 1355 .ops = &clk_rcg_ops, 1354 - .flags = CLK_SET_RATE_GATE, 1355 1356 }, 1356 1357 } 1357 1358 };
-2
drivers/clk/qcom/gcc-mdm9615.c
··· 947 947 .parent_names = gcc_cxo_pll8, 948 948 .num_parents = 2, 949 949 .ops = &clk_rcg_ops, 950 - .flags = CLK_SET_RATE_GATE, 951 950 }, 952 951 } 953 952 }; ··· 995 996 .parent_names = gcc_cxo_pll8, 996 997 .num_parents = 2, 997 998 .ops = &clk_rcg_ops, 998 - .flags = CLK_SET_RATE_GATE, 999 999 }, 1000 1000 } 1001 1001 };
-5
drivers/clk/qcom/gcc-msm8660.c
··· 1558 1558 .parent_names = gcc_pxo_pll8, 1559 1559 .num_parents = 2, 1560 1560 .ops = &clk_rcg_ops, 1561 - .flags = CLK_SET_RATE_GATE, 1562 1561 }, 1563 1562 } 1564 1563 }; ··· 1606 1607 .parent_names = gcc_pxo_pll8, 1607 1608 .num_parents = 2, 1608 1609 .ops = &clk_rcg_ops, 1609 - .flags = CLK_SET_RATE_GATE, 1610 1610 }, 1611 1611 } 1612 1612 }; ··· 1654 1656 .parent_names = gcc_pxo_pll8, 1655 1657 .num_parents = 2, 1656 1658 .ops = &clk_rcg_ops, 1657 - .flags = CLK_SET_RATE_GATE, 1658 1659 }, 1659 1660 } 1660 1661 }; ··· 1702 1705 .parent_names = gcc_pxo_pll8, 1703 1706 .num_parents = 2, 1704 1707 .ops = &clk_rcg_ops, 1705 - .flags = CLK_SET_RATE_GATE, 1706 1708 }, 1707 1709 } 1708 1710 }; ··· 1750 1754 .parent_names = gcc_pxo_pll8, 1751 1755 .num_parents = 2, 1752 1756 .ops = &clk_rcg_ops, 1753 - .flags = CLK_SET_RATE_GATE, 1754 1757 }, 1755 1758 } 1756 1759 };
-5
drivers/clk/qcom/gcc-msm8960.c
··· 1628 1628 .parent_names = gcc_pxo_pll8, 1629 1629 .num_parents = 2, 1630 1630 .ops = &clk_rcg_ops, 1631 - .flags = CLK_SET_RATE_GATE, 1632 1631 }, 1633 1632 } 1634 1633 }; ··· 1676 1677 .parent_names = gcc_pxo_pll8, 1677 1678 .num_parents = 2, 1678 1679 .ops = &clk_rcg_ops, 1679 - .flags = CLK_SET_RATE_GATE, 1680 1680 }, 1681 1681 } 1682 1682 }; ··· 1724 1726 .parent_names = gcc_pxo_pll8, 1725 1727 .num_parents = 2, 1726 1728 .ops = &clk_rcg_ops, 1727 - .flags = CLK_SET_RATE_GATE, 1728 1729 }, 1729 1730 } 1730 1731 }; ··· 1772 1775 .parent_names = gcc_pxo_pll8, 1773 1776 .num_parents = 2, 1774 1777 .ops = &clk_rcg_ops, 1775 - .flags = CLK_SET_RATE_GATE, 1776 1778 }, 1777 1779 } 1778 1780 }; ··· 1820 1824 .parent_names = gcc_pxo_pll8, 1821 1825 .num_parents = 2, 1822 1826 .ops = &clk_rcg_ops, 1823 - .flags = CLK_SET_RATE_GATE, 1824 1827 }, 1825 1828 } 1826 1829 };