11 deb_ts(
"rcv_data is now: '%s'\n", onoff ?
"on" :
"off");
64 #define pid_ctrl(vregname,field,enablefield,trans_field,transval) \
65 flexcop_ibi_value vpid = fc->read_ibi_reg(fc, vregname), \
66 v208 = fc->read_ibi_reg(fc, ctrl_208); \
67 vpid.vregname.field = onoff ? pid : 0x1fff; \
68 vpid.vregname.trans_field = transval; \
69 v208.ctrl_208.enablefield = onoff; \
70 fc->write_ibi_reg(fc, vregname, vpid); \
71 fc->write_ibi_reg(fc, ctrl_208, v208);
73 static void flexcop_pid_Stream1_PID_ctrl(
struct flexcop_device *fc,
80 static void flexcop_pid_Stream2_PID_ctrl(
struct flexcop_device *fc,
117 deb_ts(
"setting pid: %5d %04x at index %d '%s'\n",
118 pid, pid, index, onoff ?
"on" :
"off");
124 flexcop_pid_Stream1_PID_ctrl(fc, pid, onoff);
127 flexcop_pid_Stream2_PID_ctrl(fc, pid, onoff);
130 flexcop_pid_PCR_PID_ctrl(fc, pid, onoff);
133 flexcop_pid_PMT_PID_ctrl(fc, pid, onoff);
136 flexcop_pid_EMM_PID_ctrl(fc, pid, onoff);
139 flexcop_pid_ECM_PID_ctrl(fc, pid, onoff);
159 static int flexcop_toggle_fullts_streaming(
struct flexcop_device *fc,
int onoff)
162 deb_ts(
"%s full TS transfer\n",onoff ?
"enabling" :
"disabling");
163 flexcop_pid_group_filter(fc, 0, 0x1fe0 * (!onoff));
164 flexcop_pid_group_filter_ctrl(fc, onoff);
176 if (dvbdmxfeed->
index >= max_pid_filter)
186 flexcop_toggle_fullts_streaming(fc, onoff);
189 flexcop_pid_control \
193 flexcop_toggle_fullts_streaming(fc, 1);
194 else if (dvbdmxfeed->
pid == 0x2000)
195 flexcop_toggle_fullts_streaming(fc, onoff);
197 flexcop_toggle_fullts_streaming(fc, 0);
202 flexcop_rcv_data_ctrl(fc, onoff);
221 flexcop_pid_control(fc, i, 0x1fff, 0);
223 flexcop_pid_group_filter(fc, 0, 0x1fe0);
224 flexcop_pid_group_filter_ctrl(fc, 0);
231 flexcop_null_filter_ctrl(fc, 1);