Lines Matching refs:fdtv
32 static inline struct fw_device *device_of(struct firedtv *fdtv) in device_of() argument
34 return fw_device(fdtv->device->parent); in device_of()
37 static int node_req(struct firedtv *fdtv, u64 addr, void *data, size_t len, in node_req() argument
40 struct fw_device *device = device_of(fdtv); in node_req()
51 int fdtv_lock(struct firedtv *fdtv, u64 addr, void *data) in fdtv_lock() argument
53 return node_req(fdtv, addr, data, 8, TCODE_LOCK_COMPARE_SWAP); in fdtv_lock()
56 int fdtv_read(struct firedtv *fdtv, u64 addr, void *data) in fdtv_read() argument
58 return node_req(fdtv, addr, data, 4, TCODE_READ_QUADLET_REQUEST); in fdtv_read()
61 int fdtv_write(struct firedtv *fdtv, u64 addr, void *data, size_t len) in fdtv_write() argument
63 return node_req(fdtv, addr, data, len, TCODE_WRITE_BLOCK_REQUEST); in fdtv_write()
101 struct firedtv *fdtv = data; in handle_iso() local
102 struct fdtv_ir_context *ctx = fdtv->ir_context; in handle_iso()
110 dev_err(fdtv->device, "length = %d\n", length); in handle_iso()
120 dvb_dmx_swfilter_packets(&fdtv->demux, p, 1); in handle_iso()
124 dev_err(fdtv->device, "requeue failed\n"); in handle_iso()
132 int fdtv_start_iso(struct firedtv *fdtv) in fdtv_start_iso() argument
135 struct fw_device *device = device_of(fdtv); in fdtv_start_iso()
143 FW_ISO_CONTEXT_RECEIVE, fdtv->isochannel, in fdtv_start_iso()
144 device->max_speed, ISO_HEADER_SIZE, handle_iso, fdtv); in fdtv_start_iso()
172 fdtv->ir_context = ctx; in fdtv_start_iso()
185 void fdtv_stop_iso(struct firedtv *fdtv) in fdtv_stop_iso() argument
187 struct fdtv_ir_context *ctx = fdtv->ir_context; in fdtv_stop_iso()
190 fw_iso_buffer_destroy(&ctx->buffer, device_of(fdtv)->card); in fdtv_stop_iso()
200 struct firedtv *f, *fdtv = NULL; in handle_fcp() local
221 fdtv = f; in handle_fcp()
227 if (fdtv) in handle_fcp()
228 avc_recv(fdtv, payload, length); in handle_fcp()
254 struct firedtv *fdtv; in node_probe() local
258 fdtv = kzalloc(sizeof(*fdtv), GFP_KERNEL); in node_probe()
259 if (!fdtv) in node_probe()
262 dev_set_drvdata(&unit->device, fdtv); in node_probe()
263 fdtv->device = &unit->device; in node_probe()
264 fdtv->isochannel = -1; in node_probe()
265 fdtv->voltage = 0xff; in node_probe()
266 fdtv->tone = 0xff; in node_probe()
268 mutex_init(&fdtv->avc_mutex); in node_probe()
269 init_waitqueue_head(&fdtv->avc_wait); in node_probe()
270 mutex_init(&fdtv->demux_mutex); in node_probe()
271 INIT_WORK(&fdtv->remote_ctrl_work, avc_remote_ctrl_work); in node_probe()
283 fdtv->type = i; in node_probe()
285 err = fdtv_register_rc(fdtv, &unit->device); in node_probe()
290 list_add_tail(&fdtv->list, &node_list); in node_probe()
293 err = avc_identify_subunit(fdtv); in node_probe()
297 err = fdtv_dvb_register(fdtv, model_names[fdtv->type]); in node_probe()
301 avc_register_remote_control(fdtv); in node_probe()
306 list_del(&fdtv->list); in node_probe()
308 fdtv_unregister_rc(fdtv); in node_probe()
310 kfree(fdtv); in node_probe()
317 struct firedtv *fdtv = dev_get_drvdata(&unit->device); in node_remove() local
319 fdtv_dvb_unregister(fdtv); in node_remove()
322 list_del(&fdtv->list); in node_remove()
325 fdtv_unregister_rc(fdtv); in node_remove()
327 kfree(fdtv); in node_remove()
332 struct firedtv *fdtv = dev_get_drvdata(&unit->device); in node_update() local
334 if (fdtv->isochannel >= 0) in node_update()
335 cmp_establish_pp_connection(fdtv, fdtv->subunit, in node_update()
336 fdtv->isochannel); in node_update()