diff --git a/drivers/hid/hid-sony.c b/drivers/hid/hid-sony.c
index b9dc3ac..2020524 100644
--- a/drivers/hid/hid-sony.c
+++ b/drivers/hid/hid-sony.c
@@ -868,7 +868,7 @@ static void sixaxis_parse_report(struct sony_sc *sc, u8 *rd, int size)
 	sc->battery_charging = battery_charging;
 	spin_unlock_irqrestore(&sc->lock, flags);
 
-	if (sc->quirks & SIXAXIS_CONTROLLER) {
+	if (sc->sensor_dev && sc->quirks & SIXAXIS_CONTROLLER) {
 		int val;
 
 		offset = SIXAXIS_INPUT_REPORT_ACC_X_OFFSET;
@@ -1310,6 +1310,9 @@ static void sony_unregister_touchpad(struct sony_sc *sc)
 
 static int sony_register_sensors(struct sony_sc *sc)
 {
+	if (sc->quirks & SIXAXIS_CONTROLLER)
+		return 0;
+
 	size_t name_sz;
 	char *name;
 	int ret;
