Skip to content

Commit 4fdddfe

Browse files
Nikolai-LNikolai-L
andauthored
[FIX] HW reset recovery regression (#365)
Co-authored-by: Nikolai-L <nlyskov@realsenseai.com>
1 parent 3cf003d commit 4fdddfe

1 file changed

Lines changed: 32 additions & 0 deletions

File tree

kernel/realsense/d4xx.c

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2250,6 +2250,38 @@ static int ds5_hw_reset_with_recovery(struct ds5 *state)
22502250
int retry;
22512251
u16 status = 0;
22522252
bool device_went_down = false;
2253+
struct ds5_sensor *sensors[] = {
2254+
&state->depth.sensor,
2255+
&state->ir.sensor,
2256+
&state->rgb.sensor,
2257+
&state->imu.sensor,
2258+
};
2259+
int i;
2260+
2261+
if (state->dser_dev) {
2262+
mutex_lock(&serdes_lock__);
2263+
for (i = 0; i < ARRAY_SIZE(sensors); i++) {
2264+
struct ds5_sensor *sensor = sensors[i];
2265+
2266+
sensor->cached_dt_value = 0xFFFF;
2267+
sensor->cached_md_value = 0xFFFF;
2268+
sensor->cached_override_value = 0xFFFF;
2269+
sensor->cached_fps_value = 0xFFFF;
2270+
sensor->cached_width_value = 0xFFFF;
2271+
sensor->cached_height_value = 0xFFFF;
2272+
2273+
if (!sensor->pipe_configured) {
2274+
continue;
2275+
} else {
2276+
int release_ret = max9296_release_pipe(state->dser_dev,
2277+
sensor->pipe_id);
2278+
dev_warn(&state->client->dev, "release pipe %d (%d)\n",
2279+
sensor->pipe_id, release_ret);
2280+
sensor->pipe_configured = false;
2281+
}
2282+
}
2283+
mutex_unlock(&serdes_lock__);
2284+
}
22532285

22542286
dev_info(&state->client->dev, "%s(): Initiating HW reset with recovery\n",
22552287
__func__);

0 commit comments

Comments
 (0)