From 7b31fc54df6543e3426cce159a915fdaa947b57d Mon Sep 17 00:00:00 2001
From: Dasky <32983009+daskygit@users.noreply.github.com>
Date: Wed, 26 Jan 2022 19:24:29 +0000
Subject: [PATCH] Enable a default task throttle for split pointing. (#15925)

---
 docs/feature_pointing_device.md     | 2 +-
 quantum/pointing_device.c           | 6 +-----
 quantum/pointing_device.h           | 3 +++
 quantum/split_common/transactions.c | 2 +-
 4 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/docs/feature_pointing_device.md b/docs/feature_pointing_device.md
index 84ab8857389..1972406ff7c 100644
--- a/docs/feature_pointing_device.md
+++ b/docs/feature_pointing_device.md
@@ -204,7 +204,7 @@ void           pointing_device_driver_set_cpi(uint16_t cpi) {}
 |`POINTING_DEVICE_MOTION_PIN`      | (Optional) If supported, will only read from sensor if pin is active. | _not defined_     |
 |`POINTING_DEVICE_TASK_THROTTLE_MS`      | (Optional) Limits the frequency that the sensor is polled for motion. | _not defined_     |
 
-!> When using `SPLIT_POINTING_ENABLE` the `POINTING_DEVICE_MOTION_PIN` functionality is not supported and would recommend `POINTING_DEVICE_TASK_THROTTLE_MS` be set to `1`. Increasing this value will increase transport performance at the cost of possible mouse responsiveness.
+!> When using `SPLIT_POINTING_ENABLE` the `POINTING_DEVICE_MOTION_PIN` functionality is not supported and `POINTING_DEVICE_TASK_THROTTLE_MS` will default to `1`. Increasing this value will increase transport performance at the cost of possible mouse responsiveness.
 
 
 ## Split Keyboard Configuration
diff --git a/quantum/pointing_device.c b/quantum/pointing_device.c
index 23d93fa15fe..cce292e0bfb 100644
--- a/quantum/pointing_device.c
+++ b/quantum/pointing_device.c
@@ -217,16 +217,12 @@ __attribute__((weak)) void pointing_device_task(void) {
     };
 #endif
 
-#if defined(POINTING_DEVICE_TASK_THROTTLE_MS)
+#if (POINTING_DEVICE_TASK_THROTTLE_MS > 0)
     static uint32_t last_exec = 0;
     if (timer_elapsed32(last_exec) < POINTING_DEVICE_TASK_THROTTLE_MS) {
         return;
     }
     last_exec = timer_read32();
-#else
-#    if defined(SPLIT_POINTING_ENABLE)
-#        pragma message("It's recommended you enable a throttle when sharing pointing devices.")
-#    endif
 #endif
 
     // Gather report info
diff --git a/quantum/pointing_device.h b/quantum/pointing_device.h
index 6ff267e4918..8394c20952c 100644
--- a/quantum/pointing_device.h
+++ b/quantum/pointing_device.h
@@ -94,6 +94,9 @@ report_mouse_t pointing_device_adjust_by_defines(report_mouse_t mouse_report);
 #if defined(SPLIT_POINTING_ENABLE)
 void     pointing_device_set_shared_report(report_mouse_t report);
 uint16_t pointing_device_get_shared_cpi(void);
+#    if !defined(POINTING_DEVICE_TASK_THROTTLE_MS)
+#        define POINTING_DEVICE_TASK_THROTTLE_MS 1
+#    endif
 #    if defined(POINTING_DEVICE_COMBINED)
 void           pointing_device_set_cpi_on_side(bool left, uint16_t cpi);
 report_mouse_t pointing_device_combine_reports(report_mouse_t left_report, report_mouse_t right_report);
diff --git a/quantum/split_common/transactions.c b/quantum/split_common/transactions.c
index 81f98363823..d9e8fd1f6b9 100644
--- a/quantum/split_common/transactions.c
+++ b/quantum/split_common/transactions.c
@@ -624,7 +624,7 @@ static void pointing_handlers_slave(matrix_row_t master_matrix[], matrix_row_t s
 #    endif
     report_mouse_t temp_report;
     uint16_t       temp_cpi;
-#    ifdef POINTING_DEVICE_TASK_THROTTLE_MS
+#    if (POINTING_DEVICE_TASK_THROTTLE_MS > 0)
     static uint32_t last_exec = 0;
     if (timer_elapsed32(last_exec) < POINTING_DEVICE_TASK_THROTTLE_MS) {
         return;