diff mbox series

[1/2] clk: qcom: drop CLK_SET_RATE_GATE from sdc clocks

Message ID 20180619134051.16726-2-jbrunet@baylibre.com
State Accepted
Commit 04cdd5af51c610ddc7ff4881790a830a6a97d3fd
Headers show
Series clk: enforce CLK_SET_RATE_GATE along the tree | expand

Commit Message

Jerome Brunet June 19, 2018, 1:40 p.m. UTC
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>

---
 drivers/clk/qcom/gcc-ipq806x.c | 3 ---
 drivers/clk/qcom/gcc-mdm9615.c | 2 --
 drivers/clk/qcom/gcc-msm8660.c | 5 -----
 drivers/clk/qcom/gcc-msm8960.c | 5 -----
 4 files changed, 15 deletions(-)

-- 
2.14.3

Comments

Michael Turquette June 19, 2018, 5:03 p.m. UTC | #1
Quoting Jerome Brunet (2018-06-19 06:40:50)
> 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>


Applied to clk-qcom-set-rate-gate.

Thanks,
Mike

> ---

>  drivers/clk/qcom/gcc-ipq806x.c | 3 ---

>  drivers/clk/qcom/gcc-mdm9615.c | 2 --

>  drivers/clk/qcom/gcc-msm8660.c | 5 -----

>  drivers/clk/qcom/gcc-msm8960.c | 5 -----

>  4 files changed, 15 deletions(-)

> 

> diff --git a/drivers/clk/qcom/gcc-ipq806x.c b/drivers/clk/qcom/gcc-ipq806x.c

> index 28eb200d0f1e..5f61225657ab 100644

> --- a/drivers/clk/qcom/gcc-ipq806x.c

> +++ b/drivers/clk/qcom/gcc-ipq806x.c

> @@ -1220,7 +1220,6 @@ static struct clk_rcg sdc1_src = {

>                         .parent_names = gcc_pxo_pll8,

>                         .num_parents = 2,

>                         .ops = &clk_rcg_ops,

> -                       .flags = CLK_SET_RATE_GATE,

>                 },

>         }

>  };

> @@ -1269,7 +1268,6 @@ static struct clk_rcg sdc3_src = {

>                         .parent_names = gcc_pxo_pll8,

>                         .num_parents = 2,

>                         .ops = &clk_rcg_ops,

> -                       .flags = CLK_SET_RATE_GATE,

>                 },

>         }

>  };

> @@ -1353,7 +1351,6 @@ static struct clk_rcg tsif_ref_src = {

>                         .parent_names = gcc_pxo_pll8,

>                         .num_parents = 2,

>                         .ops = &clk_rcg_ops,

> -                       .flags = CLK_SET_RATE_GATE,

>                 },

>         }

>  };

> diff --git a/drivers/clk/qcom/gcc-mdm9615.c b/drivers/clk/qcom/gcc-mdm9615.c

> index b99dd406e907..849046fbed6d 100644

> --- a/drivers/clk/qcom/gcc-mdm9615.c

> +++ b/drivers/clk/qcom/gcc-mdm9615.c

> @@ -947,7 +947,6 @@ static struct clk_rcg sdc1_src = {

>                         .parent_names = gcc_cxo_pll8,

>                         .num_parents = 2,

>                         .ops = &clk_rcg_ops,

> -                       .flags = CLK_SET_RATE_GATE,

>                 },

>         }

>  };

> @@ -996,7 +995,6 @@ static struct clk_rcg sdc2_src = {

>                         .parent_names = gcc_cxo_pll8,

>                         .num_parents = 2,

>                         .ops = &clk_rcg_ops,

> -                       .flags = CLK_SET_RATE_GATE,

>                 },

>         }

>  };

> diff --git a/drivers/clk/qcom/gcc-msm8660.c b/drivers/clk/qcom/gcc-msm8660.c

> index c347a0d44bc8..7e930e25c79f 100644

> --- a/drivers/clk/qcom/gcc-msm8660.c

> +++ b/drivers/clk/qcom/gcc-msm8660.c

> @@ -1558,7 +1558,6 @@ static struct clk_rcg sdc1_src = {

>                         .parent_names = gcc_pxo_pll8,

>                         .num_parents = 2,

>                         .ops = &clk_rcg_ops,

> -                       .flags = CLK_SET_RATE_GATE,

>                 },

>         }

>  };

> @@ -1607,7 +1606,6 @@ static struct clk_rcg sdc2_src = {

>                         .parent_names = gcc_pxo_pll8,

>                         .num_parents = 2,

>                         .ops = &clk_rcg_ops,

> -                       .flags = CLK_SET_RATE_GATE,

>                 },

>         }

>  };

> @@ -1656,7 +1654,6 @@ static struct clk_rcg sdc3_src = {

>                         .parent_names = gcc_pxo_pll8,

>                         .num_parents = 2,

>                         .ops = &clk_rcg_ops,

> -                       .flags = CLK_SET_RATE_GATE,

>                 },

>         }

>  };

> @@ -1705,7 +1702,6 @@ static struct clk_rcg sdc4_src = {

>                         .parent_names = gcc_pxo_pll8,

>                         .num_parents = 2,

>                         .ops = &clk_rcg_ops,

> -                       .flags = CLK_SET_RATE_GATE,

>                 },

>         }

>  };

> @@ -1754,7 +1750,6 @@ static struct clk_rcg sdc5_src = {

>                         .parent_names = gcc_pxo_pll8,

>                         .num_parents = 2,

>                         .ops = &clk_rcg_ops,

> -                       .flags = CLK_SET_RATE_GATE,

>                 },

>         }

>  };

> diff --git a/drivers/clk/qcom/gcc-msm8960.c b/drivers/clk/qcom/gcc-msm8960.c

> index eb551c75fba6..fd495e0471bb 100644

> --- a/drivers/clk/qcom/gcc-msm8960.c

> +++ b/drivers/clk/qcom/gcc-msm8960.c

> @@ -1628,7 +1628,6 @@ static struct clk_rcg sdc1_src = {

>                         .parent_names = gcc_pxo_pll8,

>                         .num_parents = 2,

>                         .ops = &clk_rcg_ops,

> -                       .flags = CLK_SET_RATE_GATE,

>                 },

>         }

>  };

> @@ -1677,7 +1676,6 @@ static struct clk_rcg sdc2_src = {

>                         .parent_names = gcc_pxo_pll8,

>                         .num_parents = 2,

>                         .ops = &clk_rcg_ops,

> -                       .flags = CLK_SET_RATE_GATE,

>                 },

>         }

>  };

> @@ -1726,7 +1724,6 @@ static struct clk_rcg sdc3_src = {

>                         .parent_names = gcc_pxo_pll8,

>                         .num_parents = 2,

>                         .ops = &clk_rcg_ops,

> -                       .flags = CLK_SET_RATE_GATE,

>                 },

>         }

>  };

> @@ -1775,7 +1772,6 @@ static struct clk_rcg sdc4_src = {

>                         .parent_names = gcc_pxo_pll8,

>                         .num_parents = 2,

>                         .ops = &clk_rcg_ops,

> -                       .flags = CLK_SET_RATE_GATE,

>                 },

>         }

>  };

> @@ -1824,7 +1820,6 @@ static struct clk_rcg sdc5_src = {

>                         .parent_names = gcc_pxo_pll8,

>                         .num_parents = 2,

>                         .ops = &clk_rcg_ops,

> -                       .flags = CLK_SET_RATE_GATE,

>                 },

>         }

>  };

> -- 

> 2.14.3

>
diff mbox series

Patch

diff --git a/drivers/clk/qcom/gcc-ipq806x.c b/drivers/clk/qcom/gcc-ipq806x.c
index 28eb200d0f1e..5f61225657ab 100644
--- a/drivers/clk/qcom/gcc-ipq806x.c
+++ b/drivers/clk/qcom/gcc-ipq806x.c
@@ -1220,7 +1220,6 @@  static struct clk_rcg sdc1_src = {
 			.parent_names = gcc_pxo_pll8,
 			.num_parents = 2,
 			.ops = &clk_rcg_ops,
-			.flags = CLK_SET_RATE_GATE,
 		},
 	}
 };
@@ -1269,7 +1268,6 @@  static struct clk_rcg sdc3_src = {
 			.parent_names = gcc_pxo_pll8,
 			.num_parents = 2,
 			.ops = &clk_rcg_ops,
-			.flags = CLK_SET_RATE_GATE,
 		},
 	}
 };
@@ -1353,7 +1351,6 @@  static struct clk_rcg tsif_ref_src = {
 			.parent_names = gcc_pxo_pll8,
 			.num_parents = 2,
 			.ops = &clk_rcg_ops,
-			.flags = CLK_SET_RATE_GATE,
 		},
 	}
 };
diff --git a/drivers/clk/qcom/gcc-mdm9615.c b/drivers/clk/qcom/gcc-mdm9615.c
index b99dd406e907..849046fbed6d 100644
--- a/drivers/clk/qcom/gcc-mdm9615.c
+++ b/drivers/clk/qcom/gcc-mdm9615.c
@@ -947,7 +947,6 @@  static struct clk_rcg sdc1_src = {
 			.parent_names = gcc_cxo_pll8,
 			.num_parents = 2,
 			.ops = &clk_rcg_ops,
-			.flags = CLK_SET_RATE_GATE,
 		},
 	}
 };
@@ -996,7 +995,6 @@  static struct clk_rcg sdc2_src = {
 			.parent_names = gcc_cxo_pll8,
 			.num_parents = 2,
 			.ops = &clk_rcg_ops,
-			.flags = CLK_SET_RATE_GATE,
 		},
 	}
 };
diff --git a/drivers/clk/qcom/gcc-msm8660.c b/drivers/clk/qcom/gcc-msm8660.c
index c347a0d44bc8..7e930e25c79f 100644
--- a/drivers/clk/qcom/gcc-msm8660.c
+++ b/drivers/clk/qcom/gcc-msm8660.c
@@ -1558,7 +1558,6 @@  static struct clk_rcg sdc1_src = {
 			.parent_names = gcc_pxo_pll8,
 			.num_parents = 2,
 			.ops = &clk_rcg_ops,
-			.flags = CLK_SET_RATE_GATE,
 		},
 	}
 };
@@ -1607,7 +1606,6 @@  static struct clk_rcg sdc2_src = {
 			.parent_names = gcc_pxo_pll8,
 			.num_parents = 2,
 			.ops = &clk_rcg_ops,
-			.flags = CLK_SET_RATE_GATE,
 		},
 	}
 };
@@ -1656,7 +1654,6 @@  static struct clk_rcg sdc3_src = {
 			.parent_names = gcc_pxo_pll8,
 			.num_parents = 2,
 			.ops = &clk_rcg_ops,
-			.flags = CLK_SET_RATE_GATE,
 		},
 	}
 };
@@ -1705,7 +1702,6 @@  static struct clk_rcg sdc4_src = {
 			.parent_names = gcc_pxo_pll8,
 			.num_parents = 2,
 			.ops = &clk_rcg_ops,
-			.flags = CLK_SET_RATE_GATE,
 		},
 	}
 };
@@ -1754,7 +1750,6 @@  static struct clk_rcg sdc5_src = {
 			.parent_names = gcc_pxo_pll8,
 			.num_parents = 2,
 			.ops = &clk_rcg_ops,
-			.flags = CLK_SET_RATE_GATE,
 		},
 	}
 };
diff --git a/drivers/clk/qcom/gcc-msm8960.c b/drivers/clk/qcom/gcc-msm8960.c
index eb551c75fba6..fd495e0471bb 100644
--- a/drivers/clk/qcom/gcc-msm8960.c
+++ b/drivers/clk/qcom/gcc-msm8960.c
@@ -1628,7 +1628,6 @@  static struct clk_rcg sdc1_src = {
 			.parent_names = gcc_pxo_pll8,
 			.num_parents = 2,
 			.ops = &clk_rcg_ops,
-			.flags = CLK_SET_RATE_GATE,
 		},
 	}
 };
@@ -1677,7 +1676,6 @@  static struct clk_rcg sdc2_src = {
 			.parent_names = gcc_pxo_pll8,
 			.num_parents = 2,
 			.ops = &clk_rcg_ops,
-			.flags = CLK_SET_RATE_GATE,
 		},
 	}
 };
@@ -1726,7 +1724,6 @@  static struct clk_rcg sdc3_src = {
 			.parent_names = gcc_pxo_pll8,
 			.num_parents = 2,
 			.ops = &clk_rcg_ops,
-			.flags = CLK_SET_RATE_GATE,
 		},
 	}
 };
@@ -1775,7 +1772,6 @@  static struct clk_rcg sdc4_src = {
 			.parent_names = gcc_pxo_pll8,
 			.num_parents = 2,
 			.ops = &clk_rcg_ops,
-			.flags = CLK_SET_RATE_GATE,
 		},
 	}
 };
@@ -1824,7 +1820,6 @@  static struct clk_rcg sdc5_src = {
 			.parent_names = gcc_pxo_pll8,
 			.num_parents = 2,
 			.ops = &clk_rcg_ops,
-			.flags = CLK_SET_RATE_GATE,
 		},
 	}
 };