goto out;
        }
 
-       sensor->current_mode = new_mode;
-       sensor->fmt = *mbus_fmt;
-       sensor->pending_mode_change = true;
+       if (new_mode != sensor->current_mode) {
+               sensor->current_mode = new_mode;
+               sensor->fmt = *mbus_fmt;
+               sensor->pending_mode_change = true;
+       }
 out:
        mutex_unlock(&sensor->lock);
        return ret;
                goto out;
        }
 
-       sensor->current_mode = mode;
-       sensor->pending_mode_change = true;
+       if (mode != sensor->current_mode) {
+               sensor->current_mode = mode;
+               sensor->pending_mode_change = true;
+       }
 out:
        mutex_unlock(&sensor->lock);
        return ret;