Lines Matching full:rate
3 * Kunit test for clk rate management
21 unsigned long rate; member
30 return ctx->rate; in clk_dummy_recalc_rate()
36 /* Just return the same rate without modifying it */ in clk_dummy_determine_rate()
48 req->rate = req->max_rate; in clk_dummy_maximize_rate()
61 req->rate = req->min_rate; in clk_dummy_minimize_rate()
67 unsigned long rate, in clk_dummy_set_rate() argument
73 ctx->rate = rate; in clk_dummy_set_rate()
112 * clk_round_rate() or clk_set_rate() with a rate lower than
116 * behaviour to always pick up the closest rate higher than the
117 * requested rate. If we get something lower, it thus considers
121 * between rates above the parent rate which would be rounded to
178 ctx->rate = DUMMY_CLOCK_INIT_RATE; in clk_test_init_with_ops()
215 * Test that the actual rate matches what is returned by clk_get_rate()
222 unsigned long rate; in clk_test_get_rate() local
224 rate = clk_get_rate(clk); in clk_test_get_rate()
225 KUNIT_ASSERT_GT(test, rate, 0); in clk_test_get_rate()
226 KUNIT_EXPECT_EQ(test, rate, ctx->rate); in clk_test_get_rate()
232 * Test that, after a call to clk_set_rate(), the rate returned by
236 * modify the requested rate, which is our case in clk_dummy_rate_ops.
243 unsigned long rate; in clk_test_set_get_rate() local
249 rate = clk_get_rate(clk); in clk_test_set_get_rate()
250 KUNIT_ASSERT_GT(test, rate, 0); in clk_test_set_get_rate()
251 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_1); in clk_test_set_get_rate()
257 * Test that, after several calls to clk_set_rate(), the rate returned
261 * modify the requested rate, which is our case in clk_dummy_rate_ops.
268 unsigned long rate; in clk_test_set_set_get_rate() local
278 rate = clk_get_rate(clk); in clk_test_set_set_get_rate()
279 KUNIT_ASSERT_GT(test, rate, 0); in clk_test_set_set_get_rate()
280 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_2); in clk_test_set_set_get_rate()
321 * Test suite for a basic rate clock, without any parent.
323 * These tests exercise the rate API with simple scenarios
342 ctx->rate = DUMMY_CLOCK_INIT_RATE; in clk_uncached_test_init()
356 * the rate and clk_get_rate() will return the underlying clock rate
364 unsigned long rate; in clk_test_uncached_get_rate() local
366 rate = clk_get_rate(clk); in clk_test_uncached_get_rate()
367 KUNIT_ASSERT_GT(test, rate, 0); in clk_test_uncached_get_rate()
368 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_INIT_RATE); in clk_test_uncached_get_rate()
370 /* We change the rate behind the clock framework's back */ in clk_test_uncached_get_rate()
371 ctx->rate = DUMMY_CLOCK_RATE_1; in clk_test_uncached_get_rate()
372 rate = clk_get_rate(clk); in clk_test_uncached_get_rate()
373 KUNIT_ASSERT_GT(test, rate, 0); in clk_test_uncached_get_rate()
374 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_1); in clk_test_uncached_get_rate()
381 * properly if the rate hasn't changed.
388 unsigned long rate; in clk_test_uncached_set_range() local
396 rate = clk_get_rate(clk); in clk_test_uncached_set_range()
397 KUNIT_ASSERT_GT(test, rate, 0); in clk_test_uncached_set_range()
398 KUNIT_EXPECT_GE(test, rate, DUMMY_CLOCK_RATE_1); in clk_test_uncached_set_range()
399 KUNIT_EXPECT_LE(test, rate, DUMMY_CLOCK_RATE_2); in clk_test_uncached_set_range()
406 * properly if the rate has changed in hardware.
408 * In this case, it means that if the rate wasn't initially in the range
410 * without the kernel knowing about it, its rate shouldn't be affected.
417 unsigned long rate; in clk_test_uncached_updated_rate_set_range() local
419 /* We change the rate behind the clock framework's back */ in clk_test_uncached_updated_rate_set_range()
420 ctx->rate = DUMMY_CLOCK_RATE_1 + 1000; in clk_test_uncached_updated_rate_set_range()
427 rate = clk_get_rate(clk); in clk_test_uncached_updated_rate_set_range()
428 KUNIT_ASSERT_GT(test, rate, 0); in clk_test_uncached_updated_rate_set_range()
429 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_1 + 1000); in clk_test_uncached_updated_rate_set_range()
442 * Test suite for a basic, uncached, rate clock, without any parent.
444 * These tests exercise the rate API with simple scenarios
468 ctx->parents_ctx[0].rate = DUMMY_CLOCK_RATE_1; in clk_multiple_parents_mux_test_init()
476 ctx->parents_ctx[1].rate = DUMMY_CLOCK_RATE_2; in clk_multiple_parents_mux_test_init()
545 * that clock and the parent is changed, its rate after the reparenting
549 * reevaluate whether the new clock rate is within its boundaries or
559 unsigned long rate; in clk_test_multiple_parents_mux_set_range_set_parent_get_rate() local
585 rate = clk_get_rate(clk); in clk_test_multiple_parents_mux_set_range_set_parent_get_rate()
586 KUNIT_ASSERT_GT(test, rate, 0); in clk_test_multiple_parents_mux_set_range_set_parent_get_rate()
587 KUNIT_EXPECT_GE(test, rate, DUMMY_CLOCK_RATE_1 - 1000); in clk_test_multiple_parents_mux_set_range_set_parent_get_rate()
588 KUNIT_EXPECT_LE(test, rate, DUMMY_CLOCK_RATE_1 + 1000); in clk_test_multiple_parents_mux_set_range_set_parent_get_rate()
632 ctx->parents_ctx[1].rate = DUMMY_CLOCK_INIT_RATE; in clk_orphan_transparent_multiple_parent_mux_test_init()
703 * rate.
737 * parent, the rate of the mux and its new parent are consistent.
746 unsigned long parent_rate, rate; in clk_test_orphan_transparent_multiple_parent_mux_set_parent_get_rate() local
758 rate = clk_get_rate(clk); in clk_test_orphan_transparent_multiple_parent_mux_set_parent_get_rate()
759 KUNIT_ASSERT_GT(test, rate, 0); in clk_test_orphan_transparent_multiple_parent_mux_set_parent_get_rate()
760 KUNIT_EXPECT_EQ(test, parent_rate, rate); in clk_test_orphan_transparent_multiple_parent_mux_set_parent_get_rate()
768 * parent, calling clk_put() on the mux won't affect the parent rate.
802 * its rate is out of range.
811 unsigned long rate; in clk_test_orphan_transparent_multiple_parent_mux_set_parent_set_range_modified() local
823 rate = clk_get_rate(clk); in clk_test_orphan_transparent_multiple_parent_mux_set_parent_set_range_modified()
824 KUNIT_ASSERT_GT(test, rate, 0); in clk_test_orphan_transparent_multiple_parent_mux_set_parent_set_range_modified()
825 KUNIT_EXPECT_GE(test, rate, DUMMY_CLOCK_RATE_1); in clk_test_orphan_transparent_multiple_parent_mux_set_parent_set_range_modified()
826 KUNIT_EXPECT_LE(test, rate, DUMMY_CLOCK_RATE_2); in clk_test_orphan_transparent_multiple_parent_mux_set_parent_set_range_modified()
835 * its rate is within range.
872 * account when rounding a rate.
880 long rate; in clk_test_orphan_transparent_multiple_parent_mux_set_range_round_rate() local
886 rate = clk_round_rate(clk, DUMMY_CLOCK_RATE_1 - 1000); in clk_test_orphan_transparent_multiple_parent_mux_set_range_round_rate()
887 KUNIT_ASSERT_GT(test, rate, 0); in clk_test_orphan_transparent_multiple_parent_mux_set_range_round_rate()
888 KUNIT_EXPECT_GE(test, rate, DUMMY_CLOCK_RATE_1); in clk_test_orphan_transparent_multiple_parent_mux_set_range_round_rate()
889 KUNIT_EXPECT_LE(test, rate, DUMMY_CLOCK_RATE_2); in clk_test_orphan_transparent_multiple_parent_mux_set_range_round_rate()
895 * Test that, for a mux that started orphan, was assigned and rate and
896 * then got switched to a valid parent, its rate is eventually within
899 * FIXME: Even though we update the rate as part of clk_set_parent(), we
900 * don't evaluate whether that new rate is within range and needs to be
910 unsigned long rate; in clk_test_orphan_transparent_multiple_parent_mux_set_range_set_parent_get_rate() local
923 rate = clk_get_rate(clk); in clk_test_orphan_transparent_multiple_parent_mux_set_range_set_parent_get_rate()
924 KUNIT_ASSERT_GT(test, rate, 0); in clk_test_orphan_transparent_multiple_parent_mux_set_range_set_parent_get_rate()
925 KUNIT_EXPECT_GE(test, rate, DUMMY_CLOCK_RATE_1); in clk_test_orphan_transparent_multiple_parent_mux_set_range_set_parent_get_rate()
926 KUNIT_EXPECT_LE(test, rate, DUMMY_CLOCK_RATE_2); in clk_test_orphan_transparent_multiple_parent_mux_set_range_set_parent_get_rate()
976 ctx->parent_ctx.rate = DUMMY_CLOCK_INIT_RATE; in clk_single_parent_mux_test_init()
1043 * Test that for a clock that can't modify its rate and with a single
1075 * Test that for a clock that can't modify its rate and with a single
1107 * Test that for a clock that can't modify its rate and with a single
1119 long rate; in clk_test_single_parent_mux_set_range_round_rate_parent_only() local
1128 rate = clk_round_rate(clk, DUMMY_CLOCK_RATE_1 - 1000); in clk_test_single_parent_mux_set_range_round_rate_parent_only()
1129 KUNIT_ASSERT_GT(test, rate, 0); in clk_test_single_parent_mux_set_range_round_rate_parent_only()
1130 KUNIT_EXPECT_GE(test, rate, DUMMY_CLOCK_RATE_1); in clk_test_single_parent_mux_set_range_round_rate_parent_only()
1131 KUNIT_EXPECT_LE(test, rate, DUMMY_CLOCK_RATE_2); in clk_test_single_parent_mux_set_range_round_rate_parent_only()
1137 * Test that for a clock that can't modify its rate and with a single
1149 long rate; in clk_test_single_parent_mux_set_range_round_rate_child_smaller() local
1161 rate = clk_round_rate(clk, DUMMY_CLOCK_RATE_1 - 1000); in clk_test_single_parent_mux_set_range_round_rate_child_smaller()
1162 KUNIT_ASSERT_GT(test, rate, 0); in clk_test_single_parent_mux_set_range_round_rate_child_smaller()
1163 KUNIT_EXPECT_GE(test, rate, DUMMY_CLOCK_RATE_1 + 1000); in clk_test_single_parent_mux_set_range_round_rate_child_smaller()
1164 KUNIT_EXPECT_LE(test, rate, DUMMY_CLOCK_RATE_2 - 1000); in clk_test_single_parent_mux_set_range_round_rate_child_smaller()
1166 rate = clk_round_rate(clk, DUMMY_CLOCK_RATE_2 + 1000); in clk_test_single_parent_mux_set_range_round_rate_child_smaller()
1167 KUNIT_ASSERT_GT(test, rate, 0); in clk_test_single_parent_mux_set_range_round_rate_child_smaller()
1168 KUNIT_EXPECT_GE(test, rate, DUMMY_CLOCK_RATE_1 + 1000); in clk_test_single_parent_mux_set_range_round_rate_child_smaller()
1169 KUNIT_EXPECT_LE(test, rate, DUMMY_CLOCK_RATE_2 - 1000); in clk_test_single_parent_mux_set_range_round_rate_child_smaller()
1175 * Test that for a clock that can't modify its rate and with a single
1187 long rate; in clk_test_single_parent_mux_set_range_round_rate_parent_smaller() local
1199 rate = clk_round_rate(clk, DUMMY_CLOCK_RATE_1 - 1000); in clk_test_single_parent_mux_set_range_round_rate_parent_smaller()
1200 KUNIT_ASSERT_GT(test, rate, 0); in clk_test_single_parent_mux_set_range_round_rate_parent_smaller()
1201 KUNIT_EXPECT_GE(test, rate, DUMMY_CLOCK_RATE_1 + 1000); in clk_test_single_parent_mux_set_range_round_rate_parent_smaller()
1202 KUNIT_EXPECT_LE(test, rate, DUMMY_CLOCK_RATE_2 - 1000); in clk_test_single_parent_mux_set_range_round_rate_parent_smaller()
1204 rate = clk_round_rate(clk, DUMMY_CLOCK_RATE_2 + 1000); in clk_test_single_parent_mux_set_range_round_rate_parent_smaller()
1205 KUNIT_ASSERT_GT(test, rate, 0); in clk_test_single_parent_mux_set_range_round_rate_parent_smaller()
1206 KUNIT_EXPECT_GE(test, rate, DUMMY_CLOCK_RATE_1 + 1000); in clk_test_single_parent_mux_set_range_round_rate_parent_smaller()
1207 KUNIT_EXPECT_LE(test, rate, DUMMY_CLOCK_RATE_2 - 1000); in clk_test_single_parent_mux_set_range_round_rate_parent_smaller()
1265 ctx->parent_ctx.rate = DUMMY_CLOCK_INIT_RATE; in clk_orphan_transparent_single_parent_mux_test_init()
1275 * Test that a mux-only clock, with an initial rate within a range,
1276 * will still have the same rate after the range has been enforced.
1286 unsigned long rate, new_rate; in clk_test_orphan_transparent_parent_mux_set_range() local
1288 rate = clk_get_rate(clk); in clk_test_orphan_transparent_parent_mux_set_range()
1289 KUNIT_ASSERT_GT(test, rate, 0); in clk_test_orphan_transparent_parent_mux_set_range()
1293 ctx->parent_ctx.rate - 1000, in clk_test_orphan_transparent_parent_mux_set_range()
1294 ctx->parent_ctx.rate + 1000), in clk_test_orphan_transparent_parent_mux_set_range()
1299 KUNIT_EXPECT_EQ(test, rate, new_rate); in clk_test_orphan_transparent_parent_mux_set_range()
1358 ctx->parent_parent_ctx.rate = DUMMY_CLOCK_INIT_RATE; in clk_orphan_two_level_root_last_test_init()
1382 * will return the proper rate.
1390 unsigned long rate; in clk_orphan_two_level_root_last_test_get_rate() local
1392 rate = clk_get_rate(clk); in clk_orphan_two_level_root_last_test_get_rate()
1393 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_INIT_RATE); in clk_orphan_two_level_root_last_test_get_rate()
1400 * clk_set_rate_range() won't affect its rate if it is already within
1412 unsigned long rate; in clk_orphan_two_level_root_last_test_set_range() local
1420 rate = clk_get_rate(clk); in clk_orphan_two_level_root_last_test_set_range()
1421 KUNIT_ASSERT_GT(test, rate, 0); in clk_orphan_two_level_root_last_test_set_range()
1422 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_INIT_RATE); in clk_orphan_two_level_root_last_test_set_range()
1456 * and that it will make sure the rate of the clock is within the
1464 unsigned long rate; in clk_range_test_set_range() local
1472 rate = clk_get_rate(clk); in clk_range_test_set_range()
1473 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_set_range()
1474 KUNIT_EXPECT_GE(test, rate, DUMMY_CLOCK_RATE_1); in clk_range_test_set_range()
1475 KUNIT_EXPECT_LE(test, rate, DUMMY_CLOCK_RATE_2); in clk_range_test_set_range()
1481 * Test that calling clk_set_rate_range with a minimum rate higher than
1482 * the maximum rate returns an error.
1528 * Test that if our clock has some boundaries and we try to round a rate
1529 * lower than the minimum, the returned rate will be within range.
1536 long rate; in clk_range_test_set_range_round_rate_lower() local
1544 rate = clk_round_rate(clk, DUMMY_CLOCK_RATE_1 - 1000); in clk_range_test_set_range_round_rate_lower()
1545 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_set_range_round_rate_lower()
1546 KUNIT_EXPECT_GE(test, rate, DUMMY_CLOCK_RATE_1); in clk_range_test_set_range_round_rate_lower()
1547 KUNIT_EXPECT_LE(test, rate, DUMMY_CLOCK_RATE_2); in clk_range_test_set_range_round_rate_lower()
1553 * Test that if our clock has some boundaries and we try to set a rate
1554 * higher than the maximum, the new rate will be within range.
1561 unsigned long rate; in clk_range_test_set_range_set_rate_lower() local
1573 rate = clk_get_rate(clk); in clk_range_test_set_range_set_rate_lower()
1574 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_set_range_set_rate_lower()
1575 KUNIT_EXPECT_GE(test, rate, DUMMY_CLOCK_RATE_1); in clk_range_test_set_range_set_rate_lower()
1576 KUNIT_EXPECT_LE(test, rate, DUMMY_CLOCK_RATE_2); in clk_range_test_set_range_set_rate_lower()
1583 * set a rate lower than the minimum, the rate returned by
1584 * clk_round_rate() will be consistent with the new rate set by
1613 * Test that if our clock has some boundaries and we try to round a rate
1614 * higher than the maximum, the returned rate will be within range.
1621 long rate; in clk_range_test_set_range_round_rate_higher() local
1629 rate = clk_round_rate(clk, DUMMY_CLOCK_RATE_2 + 1000); in clk_range_test_set_range_round_rate_higher()
1630 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_set_range_round_rate_higher()
1631 KUNIT_EXPECT_GE(test, rate, DUMMY_CLOCK_RATE_1); in clk_range_test_set_range_round_rate_higher()
1632 KUNIT_EXPECT_LE(test, rate, DUMMY_CLOCK_RATE_2); in clk_range_test_set_range_round_rate_higher()
1638 * Test that if our clock has some boundaries and we try to set a rate
1639 * higher than the maximum, the new rate will be within range.
1646 unsigned long rate; in clk_range_test_set_range_set_rate_higher() local
1658 rate = clk_get_rate(clk); in clk_range_test_set_range_set_rate_higher()
1659 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_set_range_set_rate_higher()
1660 KUNIT_EXPECT_GE(test, rate, DUMMY_CLOCK_RATE_1); in clk_range_test_set_range_set_rate_higher()
1661 KUNIT_EXPECT_LE(test, rate, DUMMY_CLOCK_RATE_2); in clk_range_test_set_range_set_rate_higher()
1668 * set a rate higher than the maximum, the rate returned by
1669 * clk_round_rate() will be consistent with the new rate set by
1698 * Test that if our clock has a rate lower than the minimum set by a
1699 * call to clk_set_rate_range(), the rate will be raised to match the
1703 * modify the requested rate, which is our case in clk_dummy_rate_ops.
1710 unsigned long rate; in clk_range_test_set_range_get_rate_raised() local
1722 rate = clk_get_rate(clk); in clk_range_test_set_range_get_rate_raised()
1723 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_set_range_get_rate_raised()
1724 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_1); in clk_range_test_set_range_get_rate_raised()
1730 * Test that if our clock has a rate higher than the maximum set by a
1731 * call to clk_set_rate_range(), the rate will be lowered to match the
1735 * modify the requested rate, which is our case in clk_dummy_rate_ops.
1742 unsigned long rate; in clk_range_test_set_range_get_rate_lowered() local
1754 rate = clk_get_rate(clk); in clk_range_test_set_range_get_rate_lowered()
1755 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_set_range_get_rate_lowered()
1756 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_2); in clk_range_test_set_range_get_rate_lowered()
1777 * Test suite for a basic rate clock, without any parent.
1779 * These tests exercise the rate range API: clk_set_rate_range(),
1791 * clk_set_rate_range(), the core will reevaluate whether a new rate is
1794 * With clk_dummy_maximize_rate_ops, this means that the rate will
1802 unsigned long rate; in clk_range_test_set_range_rate_maximized() local
1814 rate = clk_get_rate(clk); in clk_range_test_set_range_rate_maximized()
1815 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_set_range_rate_maximized()
1816 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_2); in clk_range_test_set_range_rate_maximized()
1824 rate = clk_get_rate(clk); in clk_range_test_set_range_rate_maximized()
1825 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_set_range_rate_maximized()
1826 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_2 - 1000); in clk_range_test_set_range_rate_maximized()
1834 rate = clk_get_rate(clk); in clk_range_test_set_range_rate_maximized()
1835 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_set_range_rate_maximized()
1836 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_2); in clk_range_test_set_range_rate_maximized()
1844 * whether a new rate is needed each and every time.
1846 * With clk_dummy_maximize_rate_ops, this means that the rate will
1855 unsigned long rate; in clk_range_test_multiple_set_range_rate_maximized() local
1873 rate = clk_get_rate(clk); in clk_range_test_multiple_set_range_rate_maximized()
1874 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_multiple_set_range_rate_maximized()
1875 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_2); in clk_range_test_multiple_set_range_rate_maximized()
1883 rate = clk_get_rate(clk); in clk_range_test_multiple_set_range_rate_maximized()
1884 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_multiple_set_range_rate_maximized()
1885 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_1); in clk_range_test_multiple_set_range_rate_maximized()
1891 rate = clk_get_rate(clk); in clk_range_test_multiple_set_range_rate_maximized()
1892 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_multiple_set_range_rate_maximized()
1893 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_2); in clk_range_test_multiple_set_range_rate_maximized()
1903 * whether a new rate is needed, including when a user drop its clock.
1905 * With clk_dummy_maximize_rate_ops, this means that the rate will
1914 unsigned long rate; in clk_range_test_multiple_set_range_rate_put_maximized() local
1932 rate = clk_get_rate(clk); in clk_range_test_multiple_set_range_rate_put_maximized()
1933 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_multiple_set_range_rate_put_maximized()
1934 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_2); in clk_range_test_multiple_set_range_rate_put_maximized()
1942 rate = clk_get_rate(clk); in clk_range_test_multiple_set_range_rate_put_maximized()
1943 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_multiple_set_range_rate_put_maximized()
1944 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_1); in clk_range_test_multiple_set_range_rate_put_maximized()
1948 rate = clk_get_rate(clk); in clk_range_test_multiple_set_range_rate_put_maximized()
1949 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_multiple_set_range_rate_put_maximized()
1950 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_2); in clk_range_test_multiple_set_range_rate_put_maximized()
1964 * Test suite for a basic rate clock, without any parent.
1966 * These tests exercise the rate range API: clk_set_rate_range(),
1968 * driver that will always try to run at the highest possible rate.
1979 * clk_set_rate_range(), the core will reevaluate whether a new rate is
1982 * With clk_dummy_minimize_rate_ops, this means that the rate will
1990 unsigned long rate; in clk_range_test_set_range_rate_minimized() local
2002 rate = clk_get_rate(clk); in clk_range_test_set_range_rate_minimized()
2003 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_set_range_rate_minimized()
2004 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_1); in clk_range_test_set_range_rate_minimized()
2012 rate = clk_get_rate(clk); in clk_range_test_set_range_rate_minimized()
2013 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_set_range_rate_minimized()
2014 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_1 + 1000); in clk_range_test_set_range_rate_minimized()
2022 rate = clk_get_rate(clk); in clk_range_test_set_range_rate_minimized()
2023 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_set_range_rate_minimized()
2024 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_1); in clk_range_test_set_range_rate_minimized()
2032 * whether a new rate is needed each and every time.
2034 * With clk_dummy_minimize_rate_ops, this means that the rate will
2043 unsigned long rate; in clk_range_test_multiple_set_range_rate_minimized() local
2057 rate = clk_get_rate(clk); in clk_range_test_multiple_set_range_rate_minimized()
2058 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_multiple_set_range_rate_minimized()
2059 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_1); in clk_range_test_multiple_set_range_rate_minimized()
2067 rate = clk_get_rate(clk); in clk_range_test_multiple_set_range_rate_minimized()
2068 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_multiple_set_range_rate_minimized()
2069 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_2); in clk_range_test_multiple_set_range_rate_minimized()
2075 rate = clk_get_rate(clk); in clk_range_test_multiple_set_range_rate_minimized()
2076 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_multiple_set_range_rate_minimized()
2077 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_1); in clk_range_test_multiple_set_range_rate_minimized()
2087 * whether a new rate is needed, including when a user drop its clock.
2089 * With clk_dummy_minimize_rate_ops, this means that the rate will
2098 unsigned long rate; in clk_range_test_multiple_set_range_rate_put_minimized() local
2112 rate = clk_get_rate(clk); in clk_range_test_multiple_set_range_rate_put_minimized()
2113 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_multiple_set_range_rate_put_minimized()
2114 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_1); in clk_range_test_multiple_set_range_rate_put_minimized()
2122 rate = clk_get_rate(clk); in clk_range_test_multiple_set_range_rate_put_minimized()
2123 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_multiple_set_range_rate_put_minimized()
2124 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_2); in clk_range_test_multiple_set_range_rate_put_minimized()
2128 rate = clk_get_rate(clk); in clk_range_test_multiple_set_range_rate_put_minimized()
2129 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_multiple_set_range_rate_put_minimized()
2130 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_1); in clk_range_test_multiple_set_range_rate_put_minimized()
2144 * Test suite for a basic rate clock, without any parent.
2146 * These tests exercise the rate range API: clk_set_rate_range(),
2148 * driver that will always try to run at the lowest possible rate.
2171 clk_hw_forward_rate_request(hw, req, req->best_parent_hw, parent_req, req->rate); in clk_leaf_mux_determine_rate()
2176 req->rate = parent_req->rate; in clk_leaf_mux_determine_rate()
2202 ctx->mux_ctx.parents_ctx[0].rate = DUMMY_CLOCK_RATE_1; in clk_leaf_mux_set_rate_parent_test_init()
2210 ctx->mux_ctx.parents_ctx[1].rate = DUMMY_CLOCK_RATE_2; in clk_leaf_mux_set_rate_parent_test_init()
2267 * change rate doesn't return a clk_rate_request structure with
2276 * can't change rate doesn't return a clk_rate_request
2286 * that can't change rate doesn't return a clk_rate_request
2296 * that can't change rate doesn't return a clk_rate_request
2310 * Test that when a clk that can't change rate itself calls a function like in KUNIT_ARRAY_PARAM()
2313 * into the determine rate function. See commit 262ca38f4b6e ("clk: Stop in KUNIT_ARRAY_PARAM()
2322 unsigned long rate; in KUNIT_ARRAY_PARAM() local
2329 rate = clk_get_rate(clk); in KUNIT_ARRAY_PARAM()
2330 KUNIT_ASSERT_EQ(test, rate, DUMMY_CLOCK_RATE_1); in KUNIT_ARRAY_PARAM()
2333 KUNIT_EXPECT_EQ(test, req.rate, DUMMY_CLOCK_RATE_2); in KUNIT_ARRAY_PARAM()
2349 * CLK_SET_RATE_PARENT flag, and will forward rate requests to the mux, which
2350 * will then select which parent is the best fit for a given rate.
2356 .name = "clk-leaf-mux-set-rate-parent",
2421 ctx->mux_ctx.parents_ctx[0].rate = DUMMY_CLOCK_RATE_1; in clk_mux_notifier_test_init()
2429 ctx->mux_ctx.parents_ctx[1].rate = DUMMY_CLOCK_RATE_2; in clk_mux_notifier_test_init()
2532 ctx->parents_ctx[0].rate = DUMMY_CLOCK_RATE_1; in clk_mux_no_reparent_test_init()
2540 ctx->parents_ctx[1].rate = DUMMY_CLOCK_RATE_2; in clk_mux_no_reparent_test_init()
2568 * clk_round_rate() on it with a rate that should cause it to change
2604 * clk_set_rate() on it with a rate that should cause it to change
2615 unsigned long rate; in clk_mux_no_reparent_set_rate() local
2635 rate = clk_get_rate(clk); in clk_mux_no_reparent_set_rate()
2636 KUNIT_ASSERT_GT(test, rate, 0); in clk_mux_no_reparent_set_rate()
2637 KUNIT_EXPECT_EQ(test, rate, parent_rate); in clk_mux_no_reparent_set_rate()