clk: qcom: gcc-sm8550: Don't use parking clk_ops for QUPs

The QUPs aren't shared in a way that requires parking the RCG at an
always on parent in case some other entity turns on the clk. The
hardware is capable of setting a new frequency itself with the DFS mode,
so parking is unnecessary. Furthermore, there aren't any GDSCs for these
devices, so there isn't a possibility of the GDSC turning on the clks
for housekeeping purposes.

This wasn't a problem to mark these clks shared until we started parking
shared RCGs at clk registration time in commit 01a0a6cc8cfd ("clk: qcom:
Park shared RCGs upon registration"). Parking at init is actually
harmful to the UART when earlycon is used. If the device is pumping out
data while the frequency changes you'll see garbage on the serial
console until the driver can probe and actually set a proper frequency.

Revert the QUP part of commit 929c75d57566 ("clk: qcom: gcc-sm8550: Mark
RCGs shared where applicable") so that the QUPs don't get parked during
clk registration and break UART operations.

Fixes: 01a0a6cc8cfd ("clk: qcom: Park shared RCGs upon registration")
Fixes: 929c75d57566 ("clk: qcom: gcc-sm8550: Mark RCGs shared where applicable")
Cc: Konrad Dybcio <konradybcio@kernel.org>
Cc: Bjorn Andersson <andersson@kernel.org>
Cc: Taniya Das <quic_tdas@quicinc.com>
Reported-by: Amit Pundir <amit.pundir@linaro.org>
Closes: https://lore.kernel.org/CAMi1Hd1KQBE4kKUdAn8E5FV+BiKzuv+8FoyWQrrTHPDoYTuhgA@mail.gmail.com
Signed-off-by: Stephen Boyd <swboyd@chromium.org>
Link: https://lore.kernel.org/r/20240819233628.2074654-2-swboyd@chromium.org
Tested-by: Amit Pundir <amit.pundir@linaro.org>
Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8550-QRD
Signed-off-by: Stephen Boyd <sboyd@kernel.org>

authored by Stephen Boyd and committed by Stephen Boyd d10eeb75 ca082333

+26 -26
+26 -26
drivers/clk/qcom/gcc-sm8550.c
··· 536 .parent_data = gcc_parent_data_0, 537 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 538 .flags = CLK_SET_RATE_PARENT, 539 - .ops = &clk_rcg2_shared_ops, 540 }, 541 }; 542 ··· 551 .parent_data = gcc_parent_data_0, 552 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 553 .flags = CLK_SET_RATE_PARENT, 554 - .ops = &clk_rcg2_shared_ops, 555 }, 556 }; 557 ··· 566 .parent_data = gcc_parent_data_0, 567 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 568 .flags = CLK_SET_RATE_PARENT, 569 - .ops = &clk_rcg2_shared_ops, 570 }, 571 }; 572 ··· 581 .parent_data = gcc_parent_data_0, 582 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 583 .flags = CLK_SET_RATE_PARENT, 584 - .ops = &clk_rcg2_shared_ops, 585 }, 586 }; 587 ··· 596 .parent_data = gcc_parent_data_0, 597 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 598 .flags = CLK_SET_RATE_PARENT, 599 - .ops = &clk_rcg2_shared_ops, 600 }, 601 }; 602 ··· 611 .parent_data = gcc_parent_data_0, 612 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 613 .flags = CLK_SET_RATE_PARENT, 614 - .ops = &clk_rcg2_shared_ops, 615 }, 616 }; 617 ··· 626 .parent_data = gcc_parent_data_0, 627 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 628 .flags = CLK_SET_RATE_PARENT, 629 - .ops = &clk_rcg2_shared_ops, 630 }, 631 }; 632 ··· 641 .parent_data = gcc_parent_data_0, 642 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 643 .flags = CLK_SET_RATE_PARENT, 644 - .ops = &clk_rcg2_shared_ops, 645 }, 646 }; 647 ··· 656 .parent_data = gcc_parent_data_0, 657 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 658 .flags = CLK_SET_RATE_PARENT, 659 - .ops = &clk_rcg2_shared_ops, 660 }, 661 }; 662 ··· 671 .parent_data = gcc_parent_data_0, 672 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 673 .flags = CLK_SET_RATE_PARENT, 674 - .ops = &clk_rcg2_shared_ops, 675 }, 676 }; 677 ··· 700 .parent_data = gcc_parent_data_0, 701 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 702 .flags = CLK_SET_RATE_PARENT, 703 - .ops = &clk_rcg2_shared_ops, 704 }; 705 706 static struct clk_rcg2 gcc_qupv3_wrap1_s0_clk_src = { ··· 717 .parent_data = gcc_parent_data_0, 718 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 719 .flags = CLK_SET_RATE_PARENT, 720 - .ops = &clk_rcg2_shared_ops, 721 }; 722 723 static struct clk_rcg2 gcc_qupv3_wrap1_s1_clk_src = { ··· 750 .parent_data = gcc_parent_data_0, 751 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 752 .flags = CLK_SET_RATE_PARENT, 753 - .ops = &clk_rcg2_shared_ops, 754 }; 755 756 static struct clk_rcg2 gcc_qupv3_wrap1_s2_clk_src = { ··· 767 .parent_data = gcc_parent_data_0, 768 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 769 .flags = CLK_SET_RATE_PARENT, 770 - .ops = &clk_rcg2_shared_ops, 771 }; 772 773 static struct clk_rcg2 gcc_qupv3_wrap1_s3_clk_src = { ··· 784 .parent_data = gcc_parent_data_0, 785 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 786 .flags = CLK_SET_RATE_PARENT, 787 - .ops = &clk_rcg2_shared_ops, 788 }; 789 790 static struct clk_rcg2 gcc_qupv3_wrap1_s4_clk_src = { ··· 801 .parent_data = gcc_parent_data_0, 802 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 803 .flags = CLK_SET_RATE_PARENT, 804 - .ops = &clk_rcg2_shared_ops, 805 }; 806 807 static struct clk_rcg2 gcc_qupv3_wrap1_s5_clk_src = { ··· 818 .parent_data = gcc_parent_data_0, 819 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 820 .flags = CLK_SET_RATE_PARENT, 821 - .ops = &clk_rcg2_shared_ops, 822 }; 823 824 static struct clk_rcg2 gcc_qupv3_wrap1_s6_clk_src = { ··· 835 .parent_data = gcc_parent_data_0, 836 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 837 .flags = CLK_SET_RATE_PARENT, 838 - .ops = &clk_rcg2_shared_ops, 839 }; 840 841 static struct clk_rcg2 gcc_qupv3_wrap1_s7_clk_src = { ··· 852 .parent_data = gcc_parent_data_0, 853 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 854 .flags = CLK_SET_RATE_PARENT, 855 - .ops = &clk_rcg2_shared_ops, 856 }; 857 858 static struct clk_rcg2 gcc_qupv3_wrap2_s0_clk_src = { ··· 869 .parent_data = gcc_parent_data_0, 870 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 871 .flags = CLK_SET_RATE_PARENT, 872 - .ops = &clk_rcg2_shared_ops, 873 }; 874 875 static struct clk_rcg2 gcc_qupv3_wrap2_s1_clk_src = { ··· 886 .parent_data = gcc_parent_data_0, 887 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 888 .flags = CLK_SET_RATE_PARENT, 889 - .ops = &clk_rcg2_shared_ops, 890 }; 891 892 static struct clk_rcg2 gcc_qupv3_wrap2_s2_clk_src = { ··· 903 .parent_data = gcc_parent_data_0, 904 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 905 .flags = CLK_SET_RATE_PARENT, 906 - .ops = &clk_rcg2_shared_ops, 907 }; 908 909 static struct clk_rcg2 gcc_qupv3_wrap2_s3_clk_src = { ··· 920 .parent_data = gcc_parent_data_0, 921 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 922 .flags = CLK_SET_RATE_PARENT, 923 - .ops = &clk_rcg2_shared_ops, 924 }; 925 926 static struct clk_rcg2 gcc_qupv3_wrap2_s4_clk_src = { ··· 937 .parent_data = gcc_parent_data_0, 938 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 939 .flags = CLK_SET_RATE_PARENT, 940 - .ops = &clk_rcg2_shared_ops, 941 }; 942 943 static struct clk_rcg2 gcc_qupv3_wrap2_s5_clk_src = { ··· 975 .parent_data = gcc_parent_data_8, 976 .num_parents = ARRAY_SIZE(gcc_parent_data_8), 977 .flags = CLK_SET_RATE_PARENT, 978 - .ops = &clk_rcg2_shared_ops, 979 }; 980 981 static struct clk_rcg2 gcc_qupv3_wrap2_s6_clk_src = { ··· 992 .parent_data = gcc_parent_data_0, 993 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 994 .flags = CLK_SET_RATE_PARENT, 995 - .ops = &clk_rcg2_shared_ops, 996 }; 997 998 static struct clk_rcg2 gcc_qupv3_wrap2_s7_clk_src = {
··· 536 .parent_data = gcc_parent_data_0, 537 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 538 .flags = CLK_SET_RATE_PARENT, 539 + .ops = &clk_rcg2_ops, 540 }, 541 }; 542 ··· 551 .parent_data = gcc_parent_data_0, 552 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 553 .flags = CLK_SET_RATE_PARENT, 554 + .ops = &clk_rcg2_ops, 555 }, 556 }; 557 ··· 566 .parent_data = gcc_parent_data_0, 567 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 568 .flags = CLK_SET_RATE_PARENT, 569 + .ops = &clk_rcg2_ops, 570 }, 571 }; 572 ··· 581 .parent_data = gcc_parent_data_0, 582 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 583 .flags = CLK_SET_RATE_PARENT, 584 + .ops = &clk_rcg2_ops, 585 }, 586 }; 587 ··· 596 .parent_data = gcc_parent_data_0, 597 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 598 .flags = CLK_SET_RATE_PARENT, 599 + .ops = &clk_rcg2_ops, 600 }, 601 }; 602 ··· 611 .parent_data = gcc_parent_data_0, 612 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 613 .flags = CLK_SET_RATE_PARENT, 614 + .ops = &clk_rcg2_ops, 615 }, 616 }; 617 ··· 626 .parent_data = gcc_parent_data_0, 627 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 628 .flags = CLK_SET_RATE_PARENT, 629 + .ops = &clk_rcg2_ops, 630 }, 631 }; 632 ··· 641 .parent_data = gcc_parent_data_0, 642 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 643 .flags = CLK_SET_RATE_PARENT, 644 + .ops = &clk_rcg2_ops, 645 }, 646 }; 647 ··· 656 .parent_data = gcc_parent_data_0, 657 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 658 .flags = CLK_SET_RATE_PARENT, 659 + .ops = &clk_rcg2_ops, 660 }, 661 }; 662 ··· 671 .parent_data = gcc_parent_data_0, 672 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 673 .flags = CLK_SET_RATE_PARENT, 674 + .ops = &clk_rcg2_ops, 675 }, 676 }; 677 ··· 700 .parent_data = gcc_parent_data_0, 701 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 702 .flags = CLK_SET_RATE_PARENT, 703 + .ops = &clk_rcg2_ops, 704 }; 705 706 static struct clk_rcg2 gcc_qupv3_wrap1_s0_clk_src = { ··· 717 .parent_data = gcc_parent_data_0, 718 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 719 .flags = CLK_SET_RATE_PARENT, 720 + .ops = &clk_rcg2_ops, 721 }; 722 723 static struct clk_rcg2 gcc_qupv3_wrap1_s1_clk_src = { ··· 750 .parent_data = gcc_parent_data_0, 751 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 752 .flags = CLK_SET_RATE_PARENT, 753 + .ops = &clk_rcg2_ops, 754 }; 755 756 static struct clk_rcg2 gcc_qupv3_wrap1_s2_clk_src = { ··· 767 .parent_data = gcc_parent_data_0, 768 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 769 .flags = CLK_SET_RATE_PARENT, 770 + .ops = &clk_rcg2_ops, 771 }; 772 773 static struct clk_rcg2 gcc_qupv3_wrap1_s3_clk_src = { ··· 784 .parent_data = gcc_parent_data_0, 785 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 786 .flags = CLK_SET_RATE_PARENT, 787 + .ops = &clk_rcg2_ops, 788 }; 789 790 static struct clk_rcg2 gcc_qupv3_wrap1_s4_clk_src = { ··· 801 .parent_data = gcc_parent_data_0, 802 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 803 .flags = CLK_SET_RATE_PARENT, 804 + .ops = &clk_rcg2_ops, 805 }; 806 807 static struct clk_rcg2 gcc_qupv3_wrap1_s5_clk_src = { ··· 818 .parent_data = gcc_parent_data_0, 819 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 820 .flags = CLK_SET_RATE_PARENT, 821 + .ops = &clk_rcg2_ops, 822 }; 823 824 static struct clk_rcg2 gcc_qupv3_wrap1_s6_clk_src = { ··· 835 .parent_data = gcc_parent_data_0, 836 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 837 .flags = CLK_SET_RATE_PARENT, 838 + .ops = &clk_rcg2_ops, 839 }; 840 841 static struct clk_rcg2 gcc_qupv3_wrap1_s7_clk_src = { ··· 852 .parent_data = gcc_parent_data_0, 853 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 854 .flags = CLK_SET_RATE_PARENT, 855 + .ops = &clk_rcg2_ops, 856 }; 857 858 static struct clk_rcg2 gcc_qupv3_wrap2_s0_clk_src = { ··· 869 .parent_data = gcc_parent_data_0, 870 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 871 .flags = CLK_SET_RATE_PARENT, 872 + .ops = &clk_rcg2_ops, 873 }; 874 875 static struct clk_rcg2 gcc_qupv3_wrap2_s1_clk_src = { ··· 886 .parent_data = gcc_parent_data_0, 887 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 888 .flags = CLK_SET_RATE_PARENT, 889 + .ops = &clk_rcg2_ops, 890 }; 891 892 static struct clk_rcg2 gcc_qupv3_wrap2_s2_clk_src = { ··· 903 .parent_data = gcc_parent_data_0, 904 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 905 .flags = CLK_SET_RATE_PARENT, 906 + .ops = &clk_rcg2_ops, 907 }; 908 909 static struct clk_rcg2 gcc_qupv3_wrap2_s3_clk_src = { ··· 920 .parent_data = gcc_parent_data_0, 921 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 922 .flags = CLK_SET_RATE_PARENT, 923 + .ops = &clk_rcg2_ops, 924 }; 925 926 static struct clk_rcg2 gcc_qupv3_wrap2_s4_clk_src = { ··· 937 .parent_data = gcc_parent_data_0, 938 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 939 .flags = CLK_SET_RATE_PARENT, 940 + .ops = &clk_rcg2_ops, 941 }; 942 943 static struct clk_rcg2 gcc_qupv3_wrap2_s5_clk_src = { ··· 975 .parent_data = gcc_parent_data_8, 976 .num_parents = ARRAY_SIZE(gcc_parent_data_8), 977 .flags = CLK_SET_RATE_PARENT, 978 + .ops = &clk_rcg2_ops, 979 }; 980 981 static struct clk_rcg2 gcc_qupv3_wrap2_s6_clk_src = { ··· 992 .parent_data = gcc_parent_data_0, 993 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 994 .flags = CLK_SET_RATE_PARENT, 995 + .ops = &clk_rcg2_ops, 996 }; 997 998 static struct clk_rcg2 gcc_qupv3_wrap2_s7_clk_src = {