Skip to content

Commit

Permalink
V4L/DVB (7311): pvrusb2: Allow digital streaming without encoder firm…
Browse files Browse the repository at this point in the history
…ware

The encoder is not a part of the pipeline when in digital mode, so
streaming is OK in this case even when the encoder's firmware is not
loaded.  Modify the driver core handling of this scenario to permit
streaming.

Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
  • Loading branch information
Mike Isely authored and Mauro Carvalho Chehab committed Apr 24, 2008
1 parent e9db1ff commit 1b9c18c
Showing 1 changed file with 8 additions and 3 deletions.
11 changes: 8 additions & 3 deletions drivers/media/video/pvrusb2/pvrusb2-hdw.c
Original file line number Diff line number Diff line change
Expand Up @@ -3352,6 +3352,7 @@ static void pvr2_hdw_cmd_modeswitch(struct pvr2_hdw *hdw,int digitalFl)
default: break;
}

pvr2_hdw_untrip_unlocked(hdw);
hdw->pathway_state = cmode;
}

Expand Down Expand Up @@ -3814,6 +3815,7 @@ static int pvr2_hdw_state_eval(struct pvr2_hdw *hdw)
unsigned int st;
int state_updated = 0;
int callback_flag = 0;
int analog_mode;

pvr2_trace(PVR2_TRACE_STBITS,
"Drive state check START");
Expand All @@ -3824,17 +3826,20 @@ static int pvr2_hdw_state_eval(struct pvr2_hdw *hdw)
/* Process all state and get back over disposition */
state_updated = pvr2_hdw_state_update(hdw);

analog_mode = (hdw->pathway_state != PVR2_PATHWAY_DIGITAL);

/* Update master state based upon all other states. */
if (!hdw->flag_ok) {
st = PVR2_STATE_DEAD;
} else if (hdw->fw1_state != FW1_STATE_OK) {
st = PVR2_STATE_COLD;
} else if (!hdw->state_encoder_ok) {
} else if (analog_mode && !hdw->state_encoder_ok) {
st = PVR2_STATE_WARM;
} else if (hdw->flag_tripped || hdw->flag_decoder_missed) {
} else if (hdw->flag_tripped ||
(analog_mode && hdw->flag_decoder_missed)) {
st = PVR2_STATE_ERROR;
} else if (hdw->state_usbstream_run &&
((hdw->pathway_state != PVR2_PATHWAY_ANALOG) ||
(!analog_mode ||
(hdw->state_encoder_run && hdw->state_decoder_run))) {
st = PVR2_STATE_RUN;
} else {
Expand Down

0 comments on commit 1b9c18c

Please sign in to comment.