Lines Matching full:rate

30 	unsigned long rate;  member
39 return ctx->rate; in clk_dummy_recalc_rate()
45 /* Just return the same rate without modifying it */ in clk_dummy_determine_rate()
57 req->rate = req->max_rate; in clk_dummy_maximize_rate()
70 req->rate = req->min_rate; in clk_dummy_minimize_rate()
76 unsigned long rate, in clk_dummy_set_rate() argument
82 ctx->rate = rate; in clk_dummy_set_rate()
121 * clk_round_rate() or clk_set_rate() with a rate lower than
125 * behaviour to always pick up the closest rate higher than the
126 * requested rate. If we get something lower, it thus considers
130 * between rates above the parent rate which would be rounded to
187 ctx->rate = DUMMY_CLOCK_INIT_RATE; in clk_test_init_with_ops()
224 * Test that the actual rate matches what is returned by clk_get_rate()
231 unsigned long rate; in clk_test_get_rate() local
233 rate = clk_get_rate(clk); in clk_test_get_rate()
234 KUNIT_ASSERT_GT(test, rate, 0); in clk_test_get_rate()
235 KUNIT_EXPECT_EQ(test, rate, ctx->rate); in clk_test_get_rate()
241 * Test that, after a call to clk_set_rate(), the rate returned by
245 * modify the requested rate, which is our case in clk_dummy_rate_ops.
252 unsigned long rate; in clk_test_set_get_rate() local
258 rate = clk_get_rate(clk); in clk_test_set_get_rate()
259 KUNIT_ASSERT_GT(test, rate, 0); in clk_test_set_get_rate()
260 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_1); in clk_test_set_get_rate()
266 * Test that, after several calls to clk_set_rate(), the rate returned
270 * modify the requested rate, which is our case in clk_dummy_rate_ops.
277 unsigned long rate; in clk_test_set_set_get_rate() local
287 rate = clk_get_rate(clk); in clk_test_set_set_get_rate()
288 KUNIT_ASSERT_GT(test, rate, 0); in clk_test_set_set_get_rate()
289 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_2); in clk_test_set_set_get_rate()
330 * Test suite for a basic rate clock, without any parent.
332 * These tests exercise the rate API with simple scenarios
351 ctx->rate = DUMMY_CLOCK_INIT_RATE; in clk_uncached_test_init()
365 * the rate and clk_get_rate() will return the underlying clock rate
373 unsigned long rate; in clk_test_uncached_get_rate() local
375 rate = clk_get_rate(clk); in clk_test_uncached_get_rate()
376 KUNIT_ASSERT_GT(test, rate, 0); in clk_test_uncached_get_rate()
377 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_INIT_RATE); in clk_test_uncached_get_rate()
379 /* We change the rate behind the clock framework's back */ in clk_test_uncached_get_rate()
380 ctx->rate = DUMMY_CLOCK_RATE_1; in clk_test_uncached_get_rate()
381 rate = clk_get_rate(clk); in clk_test_uncached_get_rate()
382 KUNIT_ASSERT_GT(test, rate, 0); in clk_test_uncached_get_rate()
383 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_1); in clk_test_uncached_get_rate()
390 * properly if the rate hasn't changed.
397 unsigned long rate; in clk_test_uncached_set_range() local
405 rate = clk_get_rate(clk); in clk_test_uncached_set_range()
406 KUNIT_ASSERT_GT(test, rate, 0); in clk_test_uncached_set_range()
407 KUNIT_EXPECT_GE(test, rate, DUMMY_CLOCK_RATE_1); in clk_test_uncached_set_range()
408 KUNIT_EXPECT_LE(test, rate, DUMMY_CLOCK_RATE_2); in clk_test_uncached_set_range()
415 * properly if the rate has changed in hardware.
417 * In this case, it means that if the rate wasn't initially in the range
419 * without the kernel knowing about it, its rate shouldn't be affected.
426 unsigned long rate; in clk_test_uncached_updated_rate_set_range() local
428 /* We change the rate behind the clock framework's back */ in clk_test_uncached_updated_rate_set_range()
429 ctx->rate = DUMMY_CLOCK_RATE_1 + 1000; in clk_test_uncached_updated_rate_set_range()
436 rate = clk_get_rate(clk); in clk_test_uncached_updated_rate_set_range()
437 KUNIT_ASSERT_GT(test, rate, 0); in clk_test_uncached_updated_rate_set_range()
438 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_1 + 1000); in clk_test_uncached_updated_rate_set_range()
451 * Test suite for a basic, uncached, rate clock, without any parent.
453 * These tests exercise the rate API with simple scenarios
477 ctx->parents_ctx[0].rate = DUMMY_CLOCK_RATE_1; in clk_multiple_parents_mux_test_init()
485 ctx->parents_ctx[1].rate = DUMMY_CLOCK_RATE_2; in clk_multiple_parents_mux_test_init()
544 * that clock and the parent is changed, its rate after the reparenting
548 * reevaluate whether the new clock rate is within its boundaries or
558 unsigned long rate; in clk_test_multiple_parents_mux_set_range_set_parent_get_rate() local
584 rate = clk_get_rate(clk); in clk_test_multiple_parents_mux_set_range_set_parent_get_rate()
585 KUNIT_ASSERT_GT(test, rate, 0); in clk_test_multiple_parents_mux_set_range_set_parent_get_rate()
586 KUNIT_EXPECT_GE(test, rate, DUMMY_CLOCK_RATE_1 - 1000); in clk_test_multiple_parents_mux_set_range_set_parent_get_rate()
587 KUNIT_EXPECT_LE(test, rate, DUMMY_CLOCK_RATE_1 + 1000); in clk_test_multiple_parents_mux_set_range_set_parent_get_rate()
626 ctx->parents_ctx[1].rate = DUMMY_CLOCK_INIT_RATE; in clk_orphan_transparent_multiple_parent_mux_test_init()
688 * rate.
722 * parent, the rate of the mux and its new parent are consistent.
731 unsigned long parent_rate, rate; in clk_test_orphan_transparent_multiple_parent_mux_set_parent_get_rate() local
743 rate = clk_get_rate(clk); in clk_test_orphan_transparent_multiple_parent_mux_set_parent_get_rate()
744 KUNIT_ASSERT_GT(test, rate, 0); in clk_test_orphan_transparent_multiple_parent_mux_set_parent_get_rate()
745 KUNIT_EXPECT_EQ(test, parent_rate, rate); in clk_test_orphan_transparent_multiple_parent_mux_set_parent_get_rate()
753 * parent, calling clk_put() on the mux won't affect the parent rate.
787 * its rate is out of range.
796 unsigned long rate; in clk_test_orphan_transparent_multiple_parent_mux_set_parent_set_range_modified() local
808 rate = clk_get_rate(clk); in clk_test_orphan_transparent_multiple_parent_mux_set_parent_set_range_modified()
809 KUNIT_ASSERT_GT(test, rate, 0); in clk_test_orphan_transparent_multiple_parent_mux_set_parent_set_range_modified()
810 KUNIT_EXPECT_GE(test, rate, DUMMY_CLOCK_RATE_1); in clk_test_orphan_transparent_multiple_parent_mux_set_parent_set_range_modified()
811 KUNIT_EXPECT_LE(test, rate, DUMMY_CLOCK_RATE_2); in clk_test_orphan_transparent_multiple_parent_mux_set_parent_set_range_modified()
820 * its rate is within range.
857 * account when rounding a rate.
865 long rate; in clk_test_orphan_transparent_multiple_parent_mux_set_range_round_rate() local
871 rate = clk_round_rate(clk, DUMMY_CLOCK_RATE_1 - 1000); in clk_test_orphan_transparent_multiple_parent_mux_set_range_round_rate()
872 KUNIT_ASSERT_GT(test, rate, 0); in clk_test_orphan_transparent_multiple_parent_mux_set_range_round_rate()
873 KUNIT_EXPECT_GE(test, rate, DUMMY_CLOCK_RATE_1); in clk_test_orphan_transparent_multiple_parent_mux_set_range_round_rate()
874 KUNIT_EXPECT_LE(test, rate, DUMMY_CLOCK_RATE_2); in clk_test_orphan_transparent_multiple_parent_mux_set_range_round_rate()
880 * Test that, for a mux that started orphan, was assigned and rate and
881 * then got switched to a valid parent, its rate is eventually within
884 * FIXME: Even though we update the rate as part of clk_set_parent(), we
885 * don't evaluate whether that new rate is within range and needs to be
895 unsigned long rate; in clk_test_orphan_transparent_multiple_parent_mux_set_range_set_parent_get_rate() local
908 rate = clk_get_rate(clk); in clk_test_orphan_transparent_multiple_parent_mux_set_range_set_parent_get_rate()
909 KUNIT_ASSERT_GT(test, rate, 0); in clk_test_orphan_transparent_multiple_parent_mux_set_range_set_parent_get_rate()
910 KUNIT_EXPECT_GE(test, rate, DUMMY_CLOCK_RATE_1); in clk_test_orphan_transparent_multiple_parent_mux_set_range_set_parent_get_rate()
911 KUNIT_EXPECT_LE(test, rate, DUMMY_CLOCK_RATE_2); in clk_test_orphan_transparent_multiple_parent_mux_set_range_set_parent_get_rate()
957 ctx->parent_ctx.rate = DUMMY_CLOCK_INIT_RATE; in clk_single_parent_mux_test_init()
1024 * Test that for a clock that can't modify its rate and with a single
1054 * Test that for a clock that can't modify its rate and with a single
1084 * Test that for a clock that can't modify its rate and with a single
1096 long rate; in clk_test_single_parent_mux_set_range_round_rate_parent_only() local
1105 rate = clk_round_rate(clk, DUMMY_CLOCK_RATE_1 - 1000); in clk_test_single_parent_mux_set_range_round_rate_parent_only()
1106 KUNIT_ASSERT_GT(test, rate, 0); in clk_test_single_parent_mux_set_range_round_rate_parent_only()
1107 KUNIT_EXPECT_GE(test, rate, DUMMY_CLOCK_RATE_1); in clk_test_single_parent_mux_set_range_round_rate_parent_only()
1108 KUNIT_EXPECT_LE(test, rate, DUMMY_CLOCK_RATE_2); in clk_test_single_parent_mux_set_range_round_rate_parent_only()
1114 * Test that for a clock that can't modify its rate and with a single
1126 long rate; in clk_test_single_parent_mux_set_range_round_rate_child_smaller() local
1138 rate = clk_round_rate(clk, DUMMY_CLOCK_RATE_1 - 1000); in clk_test_single_parent_mux_set_range_round_rate_child_smaller()
1139 KUNIT_ASSERT_GT(test, rate, 0); in clk_test_single_parent_mux_set_range_round_rate_child_smaller()
1140 KUNIT_EXPECT_GE(test, rate, DUMMY_CLOCK_RATE_1 + 1000); in clk_test_single_parent_mux_set_range_round_rate_child_smaller()
1141 KUNIT_EXPECT_LE(test, rate, DUMMY_CLOCK_RATE_2 - 1000); in clk_test_single_parent_mux_set_range_round_rate_child_smaller()
1143 rate = clk_round_rate(clk, DUMMY_CLOCK_RATE_2 + 1000); in clk_test_single_parent_mux_set_range_round_rate_child_smaller()
1144 KUNIT_ASSERT_GT(test, rate, 0); in clk_test_single_parent_mux_set_range_round_rate_child_smaller()
1145 KUNIT_EXPECT_GE(test, rate, DUMMY_CLOCK_RATE_1 + 1000); in clk_test_single_parent_mux_set_range_round_rate_child_smaller()
1146 KUNIT_EXPECT_LE(test, rate, DUMMY_CLOCK_RATE_2 - 1000); in clk_test_single_parent_mux_set_range_round_rate_child_smaller()
1152 * Test that for a clock that can't modify its rate and with a single
1164 long rate; in clk_test_single_parent_mux_set_range_round_rate_parent_smaller() local
1176 rate = clk_round_rate(clk, DUMMY_CLOCK_RATE_1 - 1000); in clk_test_single_parent_mux_set_range_round_rate_parent_smaller()
1177 KUNIT_ASSERT_GT(test, rate, 0); in clk_test_single_parent_mux_set_range_round_rate_parent_smaller()
1178 KUNIT_EXPECT_GE(test, rate, DUMMY_CLOCK_RATE_1 + 1000); in clk_test_single_parent_mux_set_range_round_rate_parent_smaller()
1179 KUNIT_EXPECT_LE(test, rate, DUMMY_CLOCK_RATE_2 - 1000); in clk_test_single_parent_mux_set_range_round_rate_parent_smaller()
1181 rate = clk_round_rate(clk, DUMMY_CLOCK_RATE_2 + 1000); in clk_test_single_parent_mux_set_range_round_rate_parent_smaller()
1182 KUNIT_ASSERT_GT(test, rate, 0); in clk_test_single_parent_mux_set_range_round_rate_parent_smaller()
1183 KUNIT_EXPECT_GE(test, rate, DUMMY_CLOCK_RATE_1 + 1000); in clk_test_single_parent_mux_set_range_round_rate_parent_smaller()
1184 KUNIT_EXPECT_LE(test, rate, DUMMY_CLOCK_RATE_2 - 1000); in clk_test_single_parent_mux_set_range_round_rate_parent_smaller()
1241 ctx->parent_ctx.rate = DUMMY_CLOCK_INIT_RATE; in clk_orphan_transparent_single_parent_mux_test_init()
1251 * Test that a mux-only clock, with an initial rate within a range,
1252 * will still have the same rate after the range has been enforced.
1262 unsigned long rate, new_rate; in clk_test_orphan_transparent_parent_mux_set_range() local
1264 rate = clk_get_rate(clk); in clk_test_orphan_transparent_parent_mux_set_range()
1265 KUNIT_ASSERT_GT(test, rate, 0); in clk_test_orphan_transparent_parent_mux_set_range()
1269 ctx->parent_ctx.rate - 1000, in clk_test_orphan_transparent_parent_mux_set_range()
1270 ctx->parent_ctx.rate + 1000), in clk_test_orphan_transparent_parent_mux_set_range()
1275 KUNIT_EXPECT_EQ(test, rate, new_rate); in clk_test_orphan_transparent_parent_mux_set_range()
1334 ctx->parent_parent_ctx.rate = DUMMY_CLOCK_INIT_RATE; in clk_orphan_two_level_root_last_test_init()
1358 * will return the proper rate.
1366 unsigned long rate; in clk_orphan_two_level_root_last_test_get_rate() local
1368 rate = clk_get_rate(clk); in clk_orphan_two_level_root_last_test_get_rate()
1369 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_INIT_RATE); in clk_orphan_two_level_root_last_test_get_rate()
1376 * clk_set_rate_range() won't affect its rate if it is already within
1388 unsigned long rate; in clk_orphan_two_level_root_last_test_set_range() local
1396 rate = clk_get_rate(clk); in clk_orphan_two_level_root_last_test_set_range()
1397 KUNIT_ASSERT_GT(test, rate, 0); in clk_orphan_two_level_root_last_test_set_range()
1398 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_INIT_RATE); in clk_orphan_two_level_root_last_test_set_range()
1432 * and that it will make sure the rate of the clock is within the
1440 unsigned long rate; in clk_range_test_set_range() local
1448 rate = clk_get_rate(clk); in clk_range_test_set_range()
1449 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_set_range()
1450 KUNIT_EXPECT_GE(test, rate, DUMMY_CLOCK_RATE_1); in clk_range_test_set_range()
1451 KUNIT_EXPECT_LE(test, rate, DUMMY_CLOCK_RATE_2); in clk_range_test_set_range()
1457 * Test that calling clk_set_rate_range with a minimum rate higher than
1458 * the maximum rate returns an error.
1504 * Test that if our clock has some boundaries and we try to round a rate
1505 * lower than the minimum, the returned rate will be within range.
1512 long rate; in clk_range_test_set_range_round_rate_lower() local
1520 rate = clk_round_rate(clk, DUMMY_CLOCK_RATE_1 - 1000); in clk_range_test_set_range_round_rate_lower()
1521 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_set_range_round_rate_lower()
1522 KUNIT_EXPECT_GE(test, rate, DUMMY_CLOCK_RATE_1); in clk_range_test_set_range_round_rate_lower()
1523 KUNIT_EXPECT_LE(test, rate, DUMMY_CLOCK_RATE_2); in clk_range_test_set_range_round_rate_lower()
1529 * Test that if our clock has some boundaries and we try to set a rate
1530 * higher than the maximum, the new rate will be within range.
1537 unsigned long rate; in clk_range_test_set_range_set_rate_lower() local
1549 rate = clk_get_rate(clk); in clk_range_test_set_range_set_rate_lower()
1550 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_set_range_set_rate_lower()
1551 KUNIT_EXPECT_GE(test, rate, DUMMY_CLOCK_RATE_1); in clk_range_test_set_range_set_rate_lower()
1552 KUNIT_EXPECT_LE(test, rate, DUMMY_CLOCK_RATE_2); in clk_range_test_set_range_set_rate_lower()
1559 * set a rate lower than the minimum, the rate returned by
1560 * clk_round_rate() will be consistent with the new rate set by
1589 * Test that if our clock has some boundaries and we try to round a rate
1590 * higher than the maximum, the returned rate will be within range.
1597 long rate; in clk_range_test_set_range_round_rate_higher() local
1605 rate = clk_round_rate(clk, DUMMY_CLOCK_RATE_2 + 1000); in clk_range_test_set_range_round_rate_higher()
1606 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_set_range_round_rate_higher()
1607 KUNIT_EXPECT_GE(test, rate, DUMMY_CLOCK_RATE_1); in clk_range_test_set_range_round_rate_higher()
1608 KUNIT_EXPECT_LE(test, rate, DUMMY_CLOCK_RATE_2); in clk_range_test_set_range_round_rate_higher()
1614 * Test that if our clock has some boundaries and we try to set a rate
1615 * higher than the maximum, the new rate will be within range.
1622 unsigned long rate; in clk_range_test_set_range_set_rate_higher() local
1634 rate = clk_get_rate(clk); in clk_range_test_set_range_set_rate_higher()
1635 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_set_range_set_rate_higher()
1636 KUNIT_EXPECT_GE(test, rate, DUMMY_CLOCK_RATE_1); in clk_range_test_set_range_set_rate_higher()
1637 KUNIT_EXPECT_LE(test, rate, DUMMY_CLOCK_RATE_2); in clk_range_test_set_range_set_rate_higher()
1644 * set a rate higher than the maximum, the rate returned by
1645 * clk_round_rate() will be consistent with the new rate set by
1674 * Test that if our clock has a rate lower than the minimum set by a
1675 * call to clk_set_rate_range(), the rate will be raised to match the
1679 * modify the requested rate, which is our case in clk_dummy_rate_ops.
1686 unsigned long rate; in clk_range_test_set_range_get_rate_raised() local
1698 rate = clk_get_rate(clk); in clk_range_test_set_range_get_rate_raised()
1699 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_set_range_get_rate_raised()
1700 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_1); in clk_range_test_set_range_get_rate_raised()
1706 * Test that if our clock has a rate higher than the maximum set by a
1707 * call to clk_set_rate_range(), the rate will be lowered to match the
1711 * modify the requested rate, which is our case in clk_dummy_rate_ops.
1718 unsigned long rate; in clk_range_test_set_range_get_rate_lowered() local
1730 rate = clk_get_rate(clk); in clk_range_test_set_range_get_rate_lowered()
1731 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_set_range_get_rate_lowered()
1732 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_2); in clk_range_test_set_range_get_rate_lowered()
1753 * Test suite for a basic rate clock, without any parent.
1755 * These tests exercise the rate range API: clk_set_rate_range(),
1767 * clk_set_rate_range(), the core will reevaluate whether a new rate is
1770 * With clk_dummy_maximize_rate_ops, this means that the rate will
1778 unsigned long rate; in clk_range_test_set_range_rate_maximized() local
1790 rate = clk_get_rate(clk); in clk_range_test_set_range_rate_maximized()
1791 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_set_range_rate_maximized()
1792 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_2); in clk_range_test_set_range_rate_maximized()
1800 rate = clk_get_rate(clk); in clk_range_test_set_range_rate_maximized()
1801 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_set_range_rate_maximized()
1802 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_2 - 1000); in clk_range_test_set_range_rate_maximized()
1810 rate = clk_get_rate(clk); in clk_range_test_set_range_rate_maximized()
1811 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_set_range_rate_maximized()
1812 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_2); in clk_range_test_set_range_rate_maximized()
1820 * whether a new rate is needed each and every time.
1822 * With clk_dummy_maximize_rate_ops, this means that the rate will
1831 unsigned long rate; in clk_range_test_multiple_set_range_rate_maximized() local
1849 rate = clk_get_rate(clk); in clk_range_test_multiple_set_range_rate_maximized()
1850 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_multiple_set_range_rate_maximized()
1851 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_2); in clk_range_test_multiple_set_range_rate_maximized()
1859 rate = clk_get_rate(clk); in clk_range_test_multiple_set_range_rate_maximized()
1860 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_multiple_set_range_rate_maximized()
1861 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_1); in clk_range_test_multiple_set_range_rate_maximized()
1867 rate = clk_get_rate(clk); in clk_range_test_multiple_set_range_rate_maximized()
1868 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_multiple_set_range_rate_maximized()
1869 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_2); in clk_range_test_multiple_set_range_rate_maximized()
1879 * whether a new rate is needed, including when a user drop its clock.
1881 * With clk_dummy_maximize_rate_ops, this means that the rate will
1890 unsigned long rate; in clk_range_test_multiple_set_range_rate_put_maximized() local
1908 rate = clk_get_rate(clk); in clk_range_test_multiple_set_range_rate_put_maximized()
1909 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_multiple_set_range_rate_put_maximized()
1910 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_2); in clk_range_test_multiple_set_range_rate_put_maximized()
1918 rate = clk_get_rate(clk); in clk_range_test_multiple_set_range_rate_put_maximized()
1919 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_multiple_set_range_rate_put_maximized()
1920 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_1); in clk_range_test_multiple_set_range_rate_put_maximized()
1924 rate = clk_get_rate(clk); in clk_range_test_multiple_set_range_rate_put_maximized()
1925 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_multiple_set_range_rate_put_maximized()
1926 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_2); in clk_range_test_multiple_set_range_rate_put_maximized()
1940 * Test suite for a basic rate clock, without any parent.
1942 * These tests exercise the rate range API: clk_set_rate_range(),
1944 * driver that will always try to run at the highest possible rate.
1955 * clk_set_rate_range(), the core will reevaluate whether a new rate is
1958 * With clk_dummy_minimize_rate_ops, this means that the rate will
1966 unsigned long rate; in clk_range_test_set_range_rate_minimized() local
1978 rate = clk_get_rate(clk); in clk_range_test_set_range_rate_minimized()
1979 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_set_range_rate_minimized()
1980 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_1); in clk_range_test_set_range_rate_minimized()
1988 rate = clk_get_rate(clk); in clk_range_test_set_range_rate_minimized()
1989 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_set_range_rate_minimized()
1990 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_1 + 1000); in clk_range_test_set_range_rate_minimized()
1998 rate = clk_get_rate(clk); in clk_range_test_set_range_rate_minimized()
1999 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_set_range_rate_minimized()
2000 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_1); in clk_range_test_set_range_rate_minimized()
2008 * whether a new rate is needed each and every time.
2010 * With clk_dummy_minimize_rate_ops, this means that the rate will
2019 unsigned long rate; in clk_range_test_multiple_set_range_rate_minimized() local
2033 rate = clk_get_rate(clk); in clk_range_test_multiple_set_range_rate_minimized()
2034 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_multiple_set_range_rate_minimized()
2035 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_1); in clk_range_test_multiple_set_range_rate_minimized()
2043 rate = clk_get_rate(clk); in clk_range_test_multiple_set_range_rate_minimized()
2044 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_multiple_set_range_rate_minimized()
2045 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_2); in clk_range_test_multiple_set_range_rate_minimized()
2051 rate = clk_get_rate(clk); in clk_range_test_multiple_set_range_rate_minimized()
2052 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_multiple_set_range_rate_minimized()
2053 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_1); in clk_range_test_multiple_set_range_rate_minimized()
2063 * whether a new rate is needed, including when a user drop its clock.
2065 * With clk_dummy_minimize_rate_ops, this means that the rate will
2074 unsigned long rate; in clk_range_test_multiple_set_range_rate_put_minimized() local
2088 rate = clk_get_rate(clk); in clk_range_test_multiple_set_range_rate_put_minimized()
2089 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_multiple_set_range_rate_put_minimized()
2090 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_1); in clk_range_test_multiple_set_range_rate_put_minimized()
2098 rate = clk_get_rate(clk); in clk_range_test_multiple_set_range_rate_put_minimized()
2099 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_multiple_set_range_rate_put_minimized()
2100 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_2); in clk_range_test_multiple_set_range_rate_put_minimized()
2104 rate = clk_get_rate(clk); in clk_range_test_multiple_set_range_rate_put_minimized()
2105 KUNIT_ASSERT_GT(test, rate, 0); in clk_range_test_multiple_set_range_rate_put_minimized()
2106 KUNIT_EXPECT_EQ(test, rate, DUMMY_CLOCK_RATE_1); in clk_range_test_multiple_set_range_rate_put_minimized()
2120 * Test suite for a basic rate clock, without any parent.
2122 * These tests exercise the rate range API: clk_set_rate_range(),
2124 * driver that will always try to run at the lowest possible rate.
2147 clk_hw_forward_rate_request(hw, req, req->best_parent_hw, parent_req, req->rate); in clk_leaf_mux_determine_rate()
2152 req->rate = parent_req->rate; in clk_leaf_mux_determine_rate()
2178 ctx->mux_ctx.parents_ctx[0].rate = DUMMY_CLOCK_RATE_1; in clk_leaf_mux_set_rate_parent_test_init()
2186 ctx->mux_ctx.parents_ctx[1].rate = DUMMY_CLOCK_RATE_2; in clk_leaf_mux_set_rate_parent_test_init()
2243 * change rate doesn't return a clk_rate_request structure with
2252 * can't change rate doesn't return a clk_rate_request
2262 * that can't change rate doesn't return a clk_rate_request
2272 * that can't change rate doesn't return a clk_rate_request
2286 * Test that when a clk that can't change rate itself calls a function like in KUNIT_ARRAY_PARAM()
2289 * into the determine rate function. See commit 262ca38f4b6e ("clk: Stop in KUNIT_ARRAY_PARAM()
2298 unsigned long rate; in KUNIT_ARRAY_PARAM() local
2305 rate = clk_get_rate(clk); in KUNIT_ARRAY_PARAM()
2306 KUNIT_ASSERT_EQ(test, rate, DUMMY_CLOCK_RATE_1); in KUNIT_ARRAY_PARAM()
2309 KUNIT_EXPECT_EQ(test, req.rate, DUMMY_CLOCK_RATE_2); in KUNIT_ARRAY_PARAM()
2325 * CLK_SET_RATE_PARENT flag, and will forward rate requests to the mux, which
2326 * will then select which parent is the best fit for a given rate.
2332 .name = "clk-leaf-mux-set-rate-parent",
2397 ctx->mux_ctx.parents_ctx[0].rate = DUMMY_CLOCK_RATE_1; in clk_mux_notifier_test_init()
2405 ctx->mux_ctx.parents_ctx[1].rate = DUMMY_CLOCK_RATE_2; in clk_mux_notifier_test_init()
2508 ctx->parents_ctx[0].rate = DUMMY_CLOCK_RATE_1; in clk_mux_no_reparent_test_init()
2516 ctx->parents_ctx[1].rate = DUMMY_CLOCK_RATE_2; in clk_mux_no_reparent_test_init()
2544 * clk_round_rate() on it with a rate that should cause it to change
2580 * clk_set_rate() on it with a rate that should cause it to change
2591 unsigned long rate; in clk_mux_no_reparent_set_rate() local
2611 rate = clk_get_rate(clk); in clk_mux_no_reparent_set_rate()
2612 KUNIT_ASSERT_GT(test, rate, 0); in clk_mux_no_reparent_set_rate()
2613 KUNIT_EXPECT_EQ(test, rate, parent_rate); in clk_mux_no_reparent_set_rate()
3090 * @rate0: Initial rate of first clk
3091 * @rate1: Initial rate of second clk
3111 unsigned long rate) in clk_assigned_rates_register_clk() argument
3118 ctx->rate = rate; in clk_assigned_rates_register_clk()
3121 KUNIT_ASSERT_EQ(test, ctx->rate, rate); in clk_assigned_rates_register_clk()
3197 KUNIT_EXPECT_EQ(test, ctx->clk0.rate, ASSIGNED_RATES_0_RATE); in clk_assigned_rates_assigns_one()
3204 KUNIT_EXPECT_EQ(test, ctx->clk0.rate, ASSIGNED_RATES_0_RATE); in clk_assigned_rates_assigns_multiple()
3205 KUNIT_EXPECT_EQ(test, ctx->clk1.rate, ASSIGNED_RATES_1_RATE); in clk_assigned_rates_assigns_multiple()
3213 KUNIT_EXPECT_NE(test, ctx->clk0.rate, ASSIGNED_RATES_0_RATE); in clk_assigned_rates_skips()
3214 KUNIT_EXPECT_EQ(test, ctx->clk0.rate, test_param->rate0); in clk_assigned_rates_skips()
3222 /* Test cases that assign one rate */
3227 * assigns the rate when the property is in the provider.
3235 * assigns the rate when the property is in the consumer.
3244 * assigns the rate when the property is in the provider.
3252 * assigns the rate when the property is in the consumer.
3289 * assigns the rate when the property is in the provider.
3315 /* Test cases that skip changing the rate due to malformed DT */
3339 * set a rate when the property is in the provider.
3348 * set a rate when the property is in the consumer.
3358 * doesn't set a rate when the property is in the provider.
3367 * doesn't set a rate when the property is in the consumer.