From a7defdcad0306acb75c84f0d2ba65a726812dfd9 Mon Sep 17 00:00:00 2001 From: Kevin O'Connor Date: Sun, 30 Aug 2020 12:04:54 -0400 Subject: [PATCH] kin_shaper: Fix check for optimized X or Y only calculations The optimized version is only available if it's the only axis used. This fixes input_shaper on corexz. Signed-off-by: Kevin O'Connor --- klippy/chelper/kin_shaper.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/klippy/chelper/kin_shaper.c b/klippy/chelper/kin_shaper.c index 0d62ada0..f71650f1 100644 --- a/klippy/chelper/kin_shaper.c +++ b/klippy/chelper/kin_shaper.c @@ -332,13 +332,12 @@ input_shaper_set_sk(struct stepper_kinematics *sk , struct stepper_kinematics *orig_sk) { struct input_shaper *is = container_of(sk, struct input_shaper, sk); - int af = orig_sk->active_flags & (AF_X | AF_Y); - if (af == (AF_X | AF_Y)) - is->sk.calc_position_cb = shaper_xy_calc_position; - else if (af & AF_X) + if (orig_sk->active_flags == AF_X) is->sk.calc_position_cb = shaper_x_calc_position; - else if (af & AF_Y) + else if (orig_sk->active_flags == AF_Y) is->sk.calc_position_cb = shaper_y_calc_position; + else if (orig_sk->active_flags & (AF_X | AF_Y)) + is->sk.calc_position_cb = shaper_xy_calc_position; else return -1; is->sk.active_flags = orig_sk->active_flags;