Lines Matching refs:fc

61 	struct flexcop_device *fc = dvbdmxfeed->demux->priv;  in flexcop_dvb_start_feed()  local
62 return flexcop_pid_feed_control(fc, dvbdmxfeed, 1); in flexcop_dvb_start_feed()
67 struct flexcop_device *fc = dvbdmxfeed->demux->priv; in flexcop_dvb_stop_feed() local
68 return flexcop_pid_feed_control(fc, dvbdmxfeed, 0); in flexcop_dvb_stop_feed()
71 static int flexcop_dvb_init(struct flexcop_device *fc) in flexcop_dvb_init() argument
73 int ret = dvb_register_adapter(&fc->dvb_adapter, in flexcop_dvb_init()
74 "FlexCop Digital TV device", fc->owner, in flexcop_dvb_init()
75 fc->dev, adapter_nr); in flexcop_dvb_init()
80 fc->dvb_adapter.priv = fc; in flexcop_dvb_init()
82 fc->demux.dmx.capabilities = (DMX_TS_FILTERING | DMX_SECTION_FILTERING in flexcop_dvb_init()
84 fc->demux.priv = fc; in flexcop_dvb_init()
85 fc->demux.filternum = fc->demux.feednum = FC_MAX_FEED; in flexcop_dvb_init()
86 fc->demux.start_feed = flexcop_dvb_start_feed; in flexcop_dvb_init()
87 fc->demux.stop_feed = flexcop_dvb_stop_feed; in flexcop_dvb_init()
88 fc->demux.write_to_decoder = NULL; in flexcop_dvb_init()
90 ret = dvb_dmx_init(&fc->demux); in flexcop_dvb_init()
96 fc->hw_frontend.source = DMX_FRONTEND_0; in flexcop_dvb_init()
98 fc->dmxdev.filternum = fc->demux.feednum; in flexcop_dvb_init()
99 fc->dmxdev.demux = &fc->demux.dmx; in flexcop_dvb_init()
100 fc->dmxdev.capabilities = 0; in flexcop_dvb_init()
101 ret = dvb_dmxdev_init(&fc->dmxdev, &fc->dvb_adapter); in flexcop_dvb_init()
107 ret = fc->demux.dmx.add_frontend(&fc->demux.dmx, &fc->hw_frontend); in flexcop_dvb_init()
113 fc->mem_frontend.source = DMX_MEMORY_FE; in flexcop_dvb_init()
114 ret = fc->demux.dmx.add_frontend(&fc->demux.dmx, &fc->mem_frontend); in flexcop_dvb_init()
120 ret = fc->demux.dmx.connect_frontend(&fc->demux.dmx, &fc->hw_frontend); in flexcop_dvb_init()
126 ret = dvb_net_init(&fc->dvb_adapter, &fc->dvbnet, &fc->demux.dmx); in flexcop_dvb_init()
132 fc->init_state |= FC_STATE_DVB_INIT; in flexcop_dvb_init()
136 fc->demux.dmx.disconnect_frontend(&fc->demux.dmx); in flexcop_dvb_init()
138 fc->demux.dmx.remove_frontend(&fc->demux.dmx, &fc->mem_frontend); in flexcop_dvb_init()
140 fc->demux.dmx.remove_frontend(&fc->demux.dmx, &fc->hw_frontend); in flexcop_dvb_init()
142 dvb_dmxdev_release(&fc->dmxdev); in flexcop_dvb_init()
144 dvb_dmx_release(&fc->demux); in flexcop_dvb_init()
146 dvb_unregister_adapter(&fc->dvb_adapter); in flexcop_dvb_init()
150 static void flexcop_dvb_exit(struct flexcop_device *fc) in flexcop_dvb_exit() argument
152 if (fc->init_state & FC_STATE_DVB_INIT) { in flexcop_dvb_exit()
153 dvb_net_release(&fc->dvbnet); in flexcop_dvb_exit()
155 fc->demux.dmx.close(&fc->demux.dmx); in flexcop_dvb_exit()
156 fc->demux.dmx.remove_frontend(&fc->demux.dmx, in flexcop_dvb_exit()
157 &fc->mem_frontend); in flexcop_dvb_exit()
158 fc->demux.dmx.remove_frontend(&fc->demux.dmx, in flexcop_dvb_exit()
159 &fc->hw_frontend); in flexcop_dvb_exit()
160 dvb_dmxdev_release(&fc->dmxdev); in flexcop_dvb_exit()
161 dvb_dmx_release(&fc->demux); in flexcop_dvb_exit()
162 dvb_unregister_adapter(&fc->dvb_adapter); in flexcop_dvb_exit()
165 fc->init_state &= ~FC_STATE_DVB_INIT; in flexcop_dvb_exit()
170 void flexcop_pass_dmx_data(struct flexcop_device *fc, u8 *buf, u32 len) in flexcop_pass_dmx_data() argument
172 dvb_dmx_swfilter(&fc->demux, buf, len); in flexcop_pass_dmx_data()
176 void flexcop_pass_dmx_packets(struct flexcop_device *fc, u8 *buf, u32 no) in flexcop_pass_dmx_packets() argument
178 dvb_dmx_swfilter_packets(&fc->demux, buf, no); in flexcop_pass_dmx_packets()
182 static void flexcop_reset(struct flexcop_device *fc) in flexcop_reset() argument
187 fc->write_ibi_reg(fc,ctrl_208,ibi_zero); in flexcop_reset()
200 fc->write_ibi_reg(fc,sw_reset_210,v210); in flexcop_reset()
205 v204 = fc->read_ibi_reg(fc,misc_204); in flexcop_reset()
207 fc->write_ibi_reg(fc,misc_204,v204); in flexcop_reset()
210 fc->write_ibi_reg(fc,misc_204,v204); in flexcop_reset()
213 void flexcop_reset_block_300(struct flexcop_device *fc) in flexcop_reset_block_300() argument
215 flexcop_ibi_value v208_save = fc->read_ibi_reg(fc, ctrl_208), in flexcop_reset_block_300()
216 v210 = fc->read_ibi_reg(fc, sw_reset_210); in flexcop_reset_block_300()
219 fc->write_ibi_reg(fc,ctrl_208,ibi_zero); in flexcop_reset_block_300()
224 fc->write_ibi_reg(fc,sw_reset_210,v210); in flexcop_reset_block_300()
225 fc->write_ibi_reg(fc,ctrl_208,v208_save); in flexcop_reset_block_300()
231 struct flexcop_device *fc = kzalloc(sizeof(struct flexcop_device), in flexcop_device_kmalloc() local
233 if (!fc) { in flexcop_device_kmalloc()
241 kfree(fc); in flexcop_device_kmalloc()
245 fc->bus_specific = bus; in flexcop_device_kmalloc()
247 return fc; in flexcop_device_kmalloc()
251 void flexcop_device_kfree(struct flexcop_device *fc) in flexcop_device_kfree() argument
253 kfree(fc->bus_specific); in flexcop_device_kfree()
254 kfree(fc); in flexcop_device_kfree()
258 int flexcop_device_initialize(struct flexcop_device *fc) in flexcop_device_initialize() argument
263 flexcop_reset(fc); in flexcop_device_initialize()
264 flexcop_determine_revision(fc); in flexcop_device_initialize()
265 flexcop_sram_init(fc); in flexcop_device_initialize()
266 flexcop_hw_filter_init(fc); in flexcop_device_initialize()
267 flexcop_smc_ctrl(fc, 0); in flexcop_device_initialize()
269 ret = flexcop_dvb_init(fc); in flexcop_device_initialize()
275 ret = flexcop_i2c_init(fc); in flexcop_device_initialize()
280 if (fc->get_mac_addr(fc, 0) == 0) { in flexcop_device_initialize()
281 u8 *b = fc->dvb_adapter.proposed_mac; in flexcop_device_initialize()
283 flexcop_set_mac_filter(fc,b); in flexcop_device_initialize()
284 flexcop_mac_filter_ctrl(fc,1); in flexcop_device_initialize()
288 ret = flexcop_frontend_init(fc); in flexcop_device_initialize()
292 flexcop_device_name(fc,"initialization of","complete"); in flexcop_device_initialize()
296 flexcop_device_exit(fc); in flexcop_device_initialize()
301 void flexcop_device_exit(struct flexcop_device *fc) in flexcop_device_exit() argument
303 flexcop_frontend_exit(fc); in flexcop_device_exit()
304 flexcop_i2c_exit(fc); in flexcop_device_exit()
305 flexcop_dvb_exit(fc); in flexcop_device_exit()