Re: [PATCH v2 8/8] clk: qcom: rpm: drop the platform from clock definitions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 1 Dec 2022 at 21:21, Alex Elder <elder@xxxxxxxxxx> wrote:
>
> On 11/30/22 7:10 AM, Dmitry Baryshkov wrote:
> > A single clock definition can be used on different platforms. Thus the
> > platform part of the clock name is not correct (and can be misleading).
> >
> > Remove the platform-specific part of the defined clock.
>
> I didn't realize this was "clk_rpm" and not "clk_rpmh"...
>
> Why didn't you also manufacture the "active only" (or just
> "active"?) clocks here too?  I didn't look closely but it
> seems like the definitions in "clk-rpm.c" could be transformed
> further, as you have done in "clk-rpmh.c".

Yes, but it would require more work, as it's not a clear _ao suffix.
I'd have to add '_clk' vs '_a_clk' suffixes (so, doable, but requires
more work).

> And if you do that, maybe it's a second series?

Maybe.

>
> Anyway, this generally looks good to me but I'll wait until
> you re-send to sign off on it.
>
> Thanks.
>
>                                         -Alex
>
> >
> > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx>
> > ---
> >   drivers/clk/qcom/clk-rpm.c | 194 +++++++++++++++++--------------------
> >   1 file changed, 89 insertions(+), 105 deletions(-)
> >
> > diff --git a/drivers/clk/qcom/clk-rpm.c b/drivers/clk/qcom/clk-rpm.c
> > index 747c473b0b5e..bcab76776571 100644
> > --- a/drivers/clk/qcom/clk-rpm.c
> > +++ b/drivers/clk/qcom/clk-rpm.c
> > @@ -31,11 +31,11 @@ static const struct clk_parent_data gcc_cxo[] = {
> >       { .fw_name = "cxo", .name = "cxo_board" },
> >   };
> >
> > -#define DEFINE_CLK_RPM(_platform, _name, _active, r_id)                            \
> > -     static struct clk_rpm _platform##_##_active;                          \
> > -     static struct clk_rpm _platform##_##_name = {                         \
> > +#define DEFINE_CLK_RPM(_name, _active, r_id)                               \
> > +     static struct clk_rpm clk_rpm_##_active;                              \
> > +     static struct clk_rpm clk_rpm_##_name = {                             \
> >               .rpm_clk_id = (r_id),                                         \
> > -             .peer = &_platform##_##_active,                               \
> > +             .peer = &clk_rpm_##_active,                                   \
> >               .rate = INT_MAX,                                              \
> >               .hw.init = &(struct clk_init_data){                           \
> >                       .ops = &clk_rpm_ops,                                  \
> > @@ -44,9 +44,9 @@ static const struct clk_parent_data gcc_cxo[] = {
> >                       .num_parents = ARRAY_SIZE(gcc_pxo),                   \
> >               },                                                            \
> >       };                                                                    \
> > -     static struct clk_rpm _platform##_##_active = {                       \
> > +     static struct clk_rpm clk_rpm_##_active = {                           \
> >               .rpm_clk_id = (r_id),                                         \
> > -             .peer = &_platform##_##_name,                                 \
> > +             .peer = &clk_rpm_##_name,                                     \
> >               .active_only = true,                                          \
> >               .rate = INT_MAX,                                              \
> >               .hw.init = &(struct clk_init_data){                           \
> > @@ -57,20 +57,20 @@ static const struct clk_parent_data gcc_cxo[] = {
> >               },                                                            \
> >       }
> >
> > -#define DEFINE_CLK_RPM_XO_BUFFER(_platform, _name, _active, offset)        \
> > -     static struct clk_rpm _platform##_##_name = {                         \
> > +#define DEFINE_CLK_RPM_XO_BUFFER(_name, _active, offset)                   \
> > +     static struct clk_rpm clk_rpm_##_name = {                             \
> >               .rpm_clk_id = QCOM_RPM_CXO_BUFFERS,                           \
> >               .xo_offset = (offset),                                        \
> >               .hw.init = &(struct clk_init_data){                           \
> > -                     .ops = &clk_rpm_xo_ops,                       \
> > +                     .ops = &clk_rpm_xo_ops,                               \
> >                       .name = #_name,                                       \
> >                       .parent_data = gcc_cxo,                               \
> >                       .num_parents = ARRAY_SIZE(gcc_cxo),                   \
> >               },                                                            \
> >       }
> >
> > -#define DEFINE_CLK_RPM_FIXED(_platform, _name, _active, r_id, r)           \
> > -     static struct clk_rpm _platform##_##_name = {                         \
> > +#define DEFINE_CLK_RPM_FIXED(_name, _active, r_id, r)                              \
> > +     static struct clk_rpm clk_rpm_##_name = {                             \
> >               .rpm_clk_id = (r_id),                                         \
> >               .rate = (r),                                                  \
> >               .hw.init = &(struct clk_init_data){                           \
> > @@ -403,37 +403,47 @@ static const struct clk_ops clk_rpm_ops = {
> >   };
> >
> >   /* MSM8660/APQ8060 */
> > -DEFINE_CLK_RPM(msm8660, afab_clk, afab_a_clk, QCOM_RPM_APPS_FABRIC_CLK);
> > -DEFINE_CLK_RPM(msm8660, sfab_clk, sfab_a_clk, QCOM_RPM_SYS_FABRIC_CLK);
> > -DEFINE_CLK_RPM(msm8660, mmfab_clk, mmfab_a_clk, QCOM_RPM_MM_FABRIC_CLK);
> > -DEFINE_CLK_RPM(msm8660, daytona_clk, daytona_a_clk, QCOM_RPM_DAYTONA_FABRIC_CLK);
> > -DEFINE_CLK_RPM(msm8660, sfpb_clk, sfpb_a_clk, QCOM_RPM_SFPB_CLK);
> > -DEFINE_CLK_RPM(msm8660, cfpb_clk, cfpb_a_clk, QCOM_RPM_CFPB_CLK);
> > -DEFINE_CLK_RPM(msm8660, mmfpb_clk, mmfpb_a_clk, QCOM_RPM_MMFPB_CLK);
> > -DEFINE_CLK_RPM(msm8660, smi_clk, smi_a_clk, QCOM_RPM_SMI_CLK);
> > -DEFINE_CLK_RPM(msm8660, ebi1_clk, ebi1_a_clk, QCOM_RPM_EBI1_CLK);
> > -DEFINE_CLK_RPM_FIXED(msm8660, pll4_clk, pll4_a_clk, QCOM_RPM_PLL_4, 540672000);
> > +DEFINE_CLK_RPM(afab_clk, afab_a_clk, QCOM_RPM_APPS_FABRIC_CLK);
> > +DEFINE_CLK_RPM(sfab_clk, sfab_a_clk, QCOM_RPM_SYS_FABRIC_CLK);
> > +DEFINE_CLK_RPM(mmfab_clk, mmfab_a_clk, QCOM_RPM_MM_FABRIC_CLK);
> > +DEFINE_CLK_RPM(daytona_clk, daytona_a_clk, QCOM_RPM_DAYTONA_FABRIC_CLK);
> > +DEFINE_CLK_RPM(sfpb_clk, sfpb_a_clk, QCOM_RPM_SFPB_CLK);
> > +DEFINE_CLK_RPM(cfpb_clk, cfpb_a_clk, QCOM_RPM_CFPB_CLK);
> > +DEFINE_CLK_RPM(mmfpb_clk, mmfpb_a_clk, QCOM_RPM_MMFPB_CLK);
> > +DEFINE_CLK_RPM(smi_clk, smi_a_clk, QCOM_RPM_SMI_CLK);
> > +DEFINE_CLK_RPM(ebi1_clk, ebi1_a_clk, QCOM_RPM_EBI1_CLK);
> > +DEFINE_CLK_RPM(qdss_clk, qdss_a_clk, QCOM_RPM_QDSS_CLK);
> > +DEFINE_CLK_RPM(nss_fabric_0_clk, nss_fabric_0_a_clk, QCOM_RPM_NSS_FABRIC_0_CLK);
> > +DEFINE_CLK_RPM(nss_fabric_1_clk, nss_fabric_1_a_clk, QCOM_RPM_NSS_FABRIC_1_CLK);
> > +
> > +DEFINE_CLK_RPM_FIXED(pll4_clk, pll4_a_clk, QCOM_RPM_PLL_4, 540672000);
> > +
> > +DEFINE_CLK_RPM_XO_BUFFER(xo_d0_clk, xo_d0_a_clk, 0);
> > +DEFINE_CLK_RPM_XO_BUFFER(xo_d1_clk, xo_d1_a_clk, 8);
> > +DEFINE_CLK_RPM_XO_BUFFER(xo_a0_clk, xo_a0_a_clk, 16);
> > +DEFINE_CLK_RPM_XO_BUFFER(xo_a1_clk, xo_a1_a_clk, 24);
> > +DEFINE_CLK_RPM_XO_BUFFER(xo_a2_clk, xo_a2_a_clk, 28);
> >
> >   static struct clk_rpm *msm8660_clks[] = {
> > -     [RPM_APPS_FABRIC_CLK] = &msm8660_afab_clk,
> > -     [RPM_APPS_FABRIC_A_CLK] = &msm8660_afab_a_clk,
> > -     [RPM_SYS_FABRIC_CLK] = &msm8660_sfab_clk,
> > -     [RPM_SYS_FABRIC_A_CLK] = &msm8660_sfab_a_clk,
> > -     [RPM_MM_FABRIC_CLK] = &msm8660_mmfab_clk,
> > -     [RPM_MM_FABRIC_A_CLK] = &msm8660_mmfab_a_clk,
> > -     [RPM_DAYTONA_FABRIC_CLK] = &msm8660_daytona_clk,
> > -     [RPM_DAYTONA_FABRIC_A_CLK] = &msm8660_daytona_a_clk,
> > -     [RPM_SFPB_CLK] = &msm8660_sfpb_clk,
> > -     [RPM_SFPB_A_CLK] = &msm8660_sfpb_a_clk,
> > -     [RPM_CFPB_CLK] = &msm8660_cfpb_clk,
> > -     [RPM_CFPB_A_CLK] = &msm8660_cfpb_a_clk,
> > -     [RPM_MMFPB_CLK] = &msm8660_mmfpb_clk,
> > -     [RPM_MMFPB_A_CLK] = &msm8660_mmfpb_a_clk,
> > -     [RPM_SMI_CLK] = &msm8660_smi_clk,
> > -     [RPM_SMI_A_CLK] = &msm8660_smi_a_clk,
> > -     [RPM_EBI1_CLK] = &msm8660_ebi1_clk,
> > -     [RPM_EBI1_A_CLK] = &msm8660_ebi1_a_clk,
> > -     [RPM_PLL4_CLK] = &msm8660_pll4_clk,
> > +     [RPM_APPS_FABRIC_CLK] = &clk_rpm_afab_clk,
> > +     [RPM_APPS_FABRIC_A_CLK] = &clk_rpm_afab_a_clk,
> > +     [RPM_SYS_FABRIC_CLK] = &clk_rpm_sfab_clk,
> > +     [RPM_SYS_FABRIC_A_CLK] = &clk_rpm_sfab_a_clk,
> > +     [RPM_MM_FABRIC_CLK] = &clk_rpm_mmfab_clk,
> > +     [RPM_MM_FABRIC_A_CLK] = &clk_rpm_mmfab_a_clk,
> > +     [RPM_DAYTONA_FABRIC_CLK] = &clk_rpm_daytona_clk,
> > +     [RPM_DAYTONA_FABRIC_A_CLK] = &clk_rpm_daytona_a_clk,
> > +     [RPM_SFPB_CLK] = &clk_rpm_sfpb_clk,
> > +     [RPM_SFPB_A_CLK] = &clk_rpm_sfpb_a_clk,
> > +     [RPM_CFPB_CLK] = &clk_rpm_cfpb_clk,
> > +     [RPM_CFPB_A_CLK] = &clk_rpm_cfpb_a_clk,
> > +     [RPM_MMFPB_CLK] = &clk_rpm_mmfpb_clk,
> > +     [RPM_MMFPB_A_CLK] = &clk_rpm_mmfpb_a_clk,
> > +     [RPM_SMI_CLK] = &clk_rpm_smi_clk,
> > +     [RPM_SMI_A_CLK] = &clk_rpm_smi_a_clk,
> > +     [RPM_EBI1_CLK] = &clk_rpm_ebi1_clk,
> > +     [RPM_EBI1_A_CLK] = &clk_rpm_ebi1_a_clk,
> > +     [RPM_PLL4_CLK] = &clk_rpm_pll4_clk,
> >   };
> >
> >   static const struct rpm_clk_desc rpm_clk_msm8660 = {
> > @@ -441,46 +451,30 @@ static const struct rpm_clk_desc rpm_clk_msm8660 = {
> >       .num_clks = ARRAY_SIZE(msm8660_clks),
> >   };
> >
> > -/* apq8064 */
> > -DEFINE_CLK_RPM(apq8064, afab_clk, afab_a_clk, QCOM_RPM_APPS_FABRIC_CLK);
> > -DEFINE_CLK_RPM(apq8064, cfpb_clk, cfpb_a_clk, QCOM_RPM_CFPB_CLK);
> > -DEFINE_CLK_RPM(apq8064, daytona_clk, daytona_a_clk, QCOM_RPM_DAYTONA_FABRIC_CLK);
> > -DEFINE_CLK_RPM(apq8064, ebi1_clk, ebi1_a_clk, QCOM_RPM_EBI1_CLK);
> > -DEFINE_CLK_RPM(apq8064, mmfab_clk, mmfab_a_clk, QCOM_RPM_MM_FABRIC_CLK);
> > -DEFINE_CLK_RPM(apq8064, mmfpb_clk, mmfpb_a_clk, QCOM_RPM_MMFPB_CLK);
> > -DEFINE_CLK_RPM(apq8064, sfab_clk, sfab_a_clk, QCOM_RPM_SYS_FABRIC_CLK);
> > -DEFINE_CLK_RPM(apq8064, sfpb_clk, sfpb_a_clk, QCOM_RPM_SFPB_CLK);
> > -DEFINE_CLK_RPM(apq8064, qdss_clk, qdss_a_clk, QCOM_RPM_QDSS_CLK);
> > -DEFINE_CLK_RPM_XO_BUFFER(apq8064, xo_d0_clk, xo_d0_a_clk, 0);
> > -DEFINE_CLK_RPM_XO_BUFFER(apq8064, xo_d1_clk, xo_d1_a_clk, 8);
> > -DEFINE_CLK_RPM_XO_BUFFER(apq8064, xo_a0_clk, xo_a0_a_clk, 16);
> > -DEFINE_CLK_RPM_XO_BUFFER(apq8064, xo_a1_clk, xo_a1_a_clk, 24);
> > -DEFINE_CLK_RPM_XO_BUFFER(apq8064, xo_a2_clk, xo_a2_a_clk, 28);
> > -
> >   static struct clk_rpm *apq8064_clks[] = {
> > -     [RPM_APPS_FABRIC_CLK] = &apq8064_afab_clk,
> > -     [RPM_APPS_FABRIC_A_CLK] = &apq8064_afab_a_clk,
> > -     [RPM_CFPB_CLK] = &apq8064_cfpb_clk,
> > -     [RPM_CFPB_A_CLK] = &apq8064_cfpb_a_clk,
> > -     [RPM_DAYTONA_FABRIC_CLK] = &apq8064_daytona_clk,
> > -     [RPM_DAYTONA_FABRIC_A_CLK] = &apq8064_daytona_a_clk,
> > -     [RPM_EBI1_CLK] = &apq8064_ebi1_clk,
> > -     [RPM_EBI1_A_CLK] = &apq8064_ebi1_a_clk,
> > -     [RPM_MM_FABRIC_CLK] = &apq8064_mmfab_clk,
> > -     [RPM_MM_FABRIC_A_CLK] = &apq8064_mmfab_a_clk,
> > -     [RPM_MMFPB_CLK] = &apq8064_mmfpb_clk,
> > -     [RPM_MMFPB_A_CLK] = &apq8064_mmfpb_a_clk,
> > -     [RPM_SYS_FABRIC_CLK] = &apq8064_sfab_clk,
> > -     [RPM_SYS_FABRIC_A_CLK] = &apq8064_sfab_a_clk,
> > -     [RPM_SFPB_CLK] = &apq8064_sfpb_clk,
> > -     [RPM_SFPB_A_CLK] = &apq8064_sfpb_a_clk,
> > -     [RPM_QDSS_CLK] = &apq8064_qdss_clk,
> > -     [RPM_QDSS_A_CLK] = &apq8064_qdss_a_clk,
> > -     [RPM_XO_D0] = &apq8064_xo_d0_clk,
> > -     [RPM_XO_D1] = &apq8064_xo_d1_clk,
> > -     [RPM_XO_A0] = &apq8064_xo_a0_clk,
> > -     [RPM_XO_A1] = &apq8064_xo_a1_clk,
> > -     [RPM_XO_A2] = &apq8064_xo_a2_clk,
> > +     [RPM_APPS_FABRIC_CLK] = &clk_rpm_afab_clk,
> > +     [RPM_APPS_FABRIC_A_CLK] = &clk_rpm_afab_a_clk,
> > +     [RPM_CFPB_CLK] = &clk_rpm_cfpb_clk,
> > +     [RPM_CFPB_A_CLK] = &clk_rpm_cfpb_a_clk,
> > +     [RPM_DAYTONA_FABRIC_CLK] = &clk_rpm_daytona_clk,
> > +     [RPM_DAYTONA_FABRIC_A_CLK] = &clk_rpm_daytona_a_clk,
> > +     [RPM_EBI1_CLK] = &clk_rpm_ebi1_clk,
> > +     [RPM_EBI1_A_CLK] = &clk_rpm_ebi1_a_clk,
> > +     [RPM_MM_FABRIC_CLK] = &clk_rpm_mmfab_clk,
> > +     [RPM_MM_FABRIC_A_CLK] = &clk_rpm_mmfab_a_clk,
> > +     [RPM_MMFPB_CLK] = &clk_rpm_mmfpb_clk,
> > +     [RPM_MMFPB_A_CLK] = &clk_rpm_mmfpb_a_clk,
> > +     [RPM_SYS_FABRIC_CLK] = &clk_rpm_sfab_clk,
> > +     [RPM_SYS_FABRIC_A_CLK] = &clk_rpm_sfab_a_clk,
> > +     [RPM_SFPB_CLK] = &clk_rpm_sfpb_clk,
> > +     [RPM_SFPB_A_CLK] = &clk_rpm_sfpb_a_clk,
> > +     [RPM_QDSS_CLK] = &clk_rpm_qdss_clk,
> > +     [RPM_QDSS_A_CLK] = &clk_rpm_qdss_a_clk,
> > +     [RPM_XO_D0] = &clk_rpm_xo_d0_clk,
> > +     [RPM_XO_D1] = &clk_rpm_xo_d1_clk,
> > +     [RPM_XO_A0] = &clk_rpm_xo_a0_clk,
> > +     [RPM_XO_A1] = &clk_rpm_xo_a1_clk,
> > +     [RPM_XO_A2] = &clk_rpm_xo_a2_clk,
> >   };
> >
> >   static const struct rpm_clk_desc rpm_clk_apq8064 = {
> > @@ -488,33 +482,23 @@ static const struct rpm_clk_desc rpm_clk_apq8064 = {
> >       .num_clks = ARRAY_SIZE(apq8064_clks),
> >   };
> >
> > -/* ipq806x */
> > -DEFINE_CLK_RPM(ipq806x, afab_clk, afab_a_clk, QCOM_RPM_APPS_FABRIC_CLK);
> > -DEFINE_CLK_RPM(ipq806x, cfpb_clk, cfpb_a_clk, QCOM_RPM_CFPB_CLK);
> > -DEFINE_CLK_RPM(ipq806x, daytona_clk, daytona_a_clk, QCOM_RPM_DAYTONA_FABRIC_CLK);
> > -DEFINE_CLK_RPM(ipq806x, ebi1_clk, ebi1_a_clk, QCOM_RPM_EBI1_CLK);
> > -DEFINE_CLK_RPM(ipq806x, sfab_clk, sfab_a_clk, QCOM_RPM_SYS_FABRIC_CLK);
> > -DEFINE_CLK_RPM(ipq806x, sfpb_clk, sfpb_a_clk, QCOM_RPM_SFPB_CLK);
> > -DEFINE_CLK_RPM(ipq806x, nss_fabric_0_clk, nss_fabric_0_a_clk, QCOM_RPM_NSS_FABRIC_0_CLK);
> > -DEFINE_CLK_RPM(ipq806x, nss_fabric_1_clk, nss_fabric_1_a_clk, QCOM_RPM_NSS_FABRIC_1_CLK);
> > -
> >   static struct clk_rpm *ipq806x_clks[] = {
> > -     [RPM_APPS_FABRIC_CLK] = &ipq806x_afab_clk,
> > -     [RPM_APPS_FABRIC_A_CLK] = &ipq806x_afab_a_clk,
> > -     [RPM_CFPB_CLK] = &ipq806x_cfpb_clk,
> > -     [RPM_CFPB_A_CLK] = &ipq806x_cfpb_a_clk,
> > -     [RPM_DAYTONA_FABRIC_CLK] = &ipq806x_daytona_clk,
> > -     [RPM_DAYTONA_FABRIC_A_CLK] = &ipq806x_daytona_a_clk,
> > -     [RPM_EBI1_CLK] = &ipq806x_ebi1_clk,
> > -     [RPM_EBI1_A_CLK] = &ipq806x_ebi1_a_clk,
> > -     [RPM_SYS_FABRIC_CLK] = &ipq806x_sfab_clk,
> > -     [RPM_SYS_FABRIC_A_CLK] = &ipq806x_sfab_a_clk,
> > -     [RPM_SFPB_CLK] = &ipq806x_sfpb_clk,
> > -     [RPM_SFPB_A_CLK] = &ipq806x_sfpb_a_clk,
> > -     [RPM_NSS_FABRIC_0_CLK] = &ipq806x_nss_fabric_0_clk,
> > -     [RPM_NSS_FABRIC_0_A_CLK] = &ipq806x_nss_fabric_0_a_clk,
> > -     [RPM_NSS_FABRIC_1_CLK] = &ipq806x_nss_fabric_1_clk,
> > -     [RPM_NSS_FABRIC_1_A_CLK] = &ipq806x_nss_fabric_1_a_clk,
> > +     [RPM_APPS_FABRIC_CLK] = &clk_rpm_afab_clk,
> > +     [RPM_APPS_FABRIC_A_CLK] = &clk_rpm_afab_a_clk,
> > +     [RPM_CFPB_CLK] = &clk_rpm_cfpb_clk,
> > +     [RPM_CFPB_A_CLK] = &clk_rpm_cfpb_a_clk,
> > +     [RPM_DAYTONA_FABRIC_CLK] = &clk_rpm_daytona_clk,
> > +     [RPM_DAYTONA_FABRIC_A_CLK] = &clk_rpm_daytona_a_clk,
> > +     [RPM_EBI1_CLK] = &clk_rpm_ebi1_clk,
> > +     [RPM_EBI1_A_CLK] = &clk_rpm_ebi1_a_clk,
> > +     [RPM_SYS_FABRIC_CLK] = &clk_rpm_sfab_clk,
> > +     [RPM_SYS_FABRIC_A_CLK] = &clk_rpm_sfab_a_clk,
> > +     [RPM_SFPB_CLK] = &clk_rpm_sfpb_clk,
> > +     [RPM_SFPB_A_CLK] = &clk_rpm_sfpb_a_clk,
> > +     [RPM_NSS_FABRIC_0_CLK] = &clk_rpm_nss_fabric_0_clk,
> > +     [RPM_NSS_FABRIC_0_A_CLK] = &clk_rpm_nss_fabric_0_a_clk,
> > +     [RPM_NSS_FABRIC_1_CLK] = &clk_rpm_nss_fabric_1_clk,
> > +     [RPM_NSS_FABRIC_1_A_CLK] = &clk_rpm_nss_fabric_1_a_clk,
> >   };
> >
> >   static const struct rpm_clk_desc rpm_clk_ipq806x = {
>


-- 
With best wishes
Dmitry



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [Linux for Sparc]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux