From 4fe6f3cd7a974e28796b1c1549cca22e7002e3eb Mon Sep 17 00:00:00 2001
From: Dasky <32983009+daskygit@users.noreply.github.com>
Date: Fri, 31 Dec 2021 23:38:23 +0000
Subject: [PATCH] Fix split pointing for analog joystick (#15691)

Co-authored-by: Nick Brassel <nick@tzarc.org>
---
 quantum/split_common/transactions.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/quantum/split_common/transactions.c b/quantum/split_common/transactions.c
index 9622acb377..edaf0df628 100644
--- a/quantum/split_common/transactions.c
+++ b/quantum/split_common/transactions.c
@@ -631,9 +631,11 @@ static void pointing_handlers_slave(matrix_row_t master_matrix[], matrix_row_t s
     }
     last_exec = timer_read32();
 #    endif
-    temp_cpi = pointing_device_driver.get_cpi();
+    temp_cpi = !pointing_device_driver.get_cpi ? 0 : pointing_device_driver.get_cpi(); // check for NULL
     if (split_shmem->pointing.cpi && memcmp(&split_shmem->pointing.cpi, &temp_cpi, sizeof(temp_cpi)) != 0) {
-        pointing_device_driver.set_cpi(split_shmem->pointing.cpi);
+        if (pointing_device_driver.set_cpi) {
+            pointing_device_driver.set_cpi(split_shmem->pointing.cpi);
+        }
     }
     memset(&temp_report, 0, sizeof(temp_report));
     temp_report = pointing_device_driver.get_report(temp_report);