Searched refs:cx18 (Results 1 - 49 of 49) sorted by relevance

/linux-4.4.14/drivers/media/pci/cx18/
H A DMakefile0 cx18-objs := cx18-driver.o cx18-cards.o cx18-i2c.o cx18-firmware.o cx18-gpio.o \
2 cx18-queue.o cx18-streams.o cx18-fileops.o cx18-ioctl.o cx18-controls.o \
3 cx18-mailbox.o cx18-vbi.o cx18-audio.o cx18-video.o cx18-irq.o \
4 cx18-av-core.o cx18-av-audio.o cx18-av-firmware.o cx18-av-vbi.o cx18-scb.o \
5 cx18-dvb.o cx18-io.o
6 cx18-alsa-objs := cx18-alsa-main.o cx18-alsa-pcm.o
8 obj-$(CONFIG_VIDEO_CX18) += cx18.o
9 obj-$(CONFIG_VIDEO_CX18_ALSA) += cx18-alsa.o
H A Dcx18-io.h2 * cx18 driver PCI memory mapped IO access routines
26 #include "cx18-driver.h"
38 static inline u32 cx18_raw_readl(struct cx18 *cx, const void __iomem *addr) cx18_raw_readl()
44 void cx18_raw_writel_noretry(struct cx18 *cx, u32 val, void __iomem *addr) cx18_raw_writel_noretry()
49 static inline void cx18_raw_writel(struct cx18 *cx, u32 val, void __iomem *addr) cx18_raw_writel()
60 static inline u32 cx18_readl(struct cx18 *cx, const void __iomem *addr) cx18_readl()
66 void cx18_writel_noretry(struct cx18 *cx, u32 val, void __iomem *addr) cx18_writel_noretry()
71 static inline void cx18_writel(struct cx18 *cx, u32 val, void __iomem *addr) cx18_writel()
82 void cx18_writel_expect(struct cx18 *cx, u32 val, void __iomem *addr, cx18_writel_expect()
98 static inline u16 cx18_readw(struct cx18 *cx, const void __iomem *addr) cx18_readw()
104 void cx18_writew_noretry(struct cx18 *cx, u16 val, void __iomem *addr) cx18_writew_noretry()
109 static inline void cx18_writew(struct cx18 *cx, u16 val, void __iomem *addr) cx18_writew()
119 static inline u8 cx18_readb(struct cx18 *cx, const void __iomem *addr) cx18_readb()
125 void cx18_writeb_noretry(struct cx18 *cx, u8 val, void __iomem *addr) cx18_writeb_noretry()
130 static inline void cx18_writeb(struct cx18 *cx, u8 val, void __iomem *addr) cx18_writeb()
141 void cx18_memcpy_fromio(struct cx18 *cx, void *to, cx18_memcpy_fromio()
147 void cx18_memset_io(struct cx18 *cx, void __iomem *addr, int val, size_t count);
151 static inline void cx18_write_reg_noretry(struct cx18 *cx, u32 val, u32 reg) cx18_write_reg_noretry()
156 static inline void cx18_write_reg(struct cx18 *cx, u32 val, u32 reg) cx18_write_reg()
161 static inline void cx18_write_reg_expect(struct cx18 *cx, u32 val, u32 reg, cx18_write_reg_expect()
167 static inline u32 cx18_read_reg(struct cx18 *cx, u32 reg) cx18_read_reg()
174 static inline void cx18_write_enc(struct cx18 *cx, u32 val, u32 addr) cx18_write_enc()
179 static inline u32 cx18_read_enc(struct cx18 *cx, u32 addr) cx18_read_enc()
184 void cx18_sw1_irq_enable(struct cx18 *cx, u32 val);
185 void cx18_sw1_irq_disable(struct cx18 *cx, u32 val);
186 void cx18_sw2_irq_enable(struct cx18 *cx, u32 val);
187 void cx18_sw2_irq_disable(struct cx18 *cx, u32 val);
188 void cx18_sw2_irq_disable_cpu(struct cx18 *cx, u32 val);
189 void cx18_setup_page(struct cx18 *cx, u32 addr);
H A Dcx18-streams.h2 * cx18 init/start/stop/exit stream functions
25 u32 cx18_find_handle(struct cx18 *cx);
26 struct cx18_stream *cx18_handle_to_stream(struct cx18 *cx, u32 handle);
27 int cx18_streams_setup(struct cx18 *cx);
28 int cx18_streams_register(struct cx18 *cx);
29 void cx18_streams_cleanup(struct cx18 *cx, int unregister);
32 void cx18_stream_rotate_idx_mdls(struct cx18 *cx);
62 void cx18_stop_all_captures(struct cx18 *cx);
H A Dcx18-video.c2 * cx18 video interface functions
22 #include "cx18-driver.h"
23 #include "cx18-video.h"
24 #include "cx18-cards.h"
26 void cx18_video_set_io(struct cx18 *cx) cx18_video_set_io()
H A Dcx18-irq.c2 * cx18 interrupt handling
23 #include "cx18-driver.h"
24 #include "cx18-io.h"
25 #include "cx18-irq.h"
26 #include "cx18-mailbox.h"
27 #include "cx18-scb.h"
29 static void xpu_ack(struct cx18 *cx, u32 sw2) xpu_ack()
37 static void epu_cmd(struct cx18 *cx, u32 sw1) epu_cmd()
47 struct cx18 *cx = (struct cx18 *)dev_id; cx18_irq_handler()
H A Dcx18-io.c2 * cx18 driver PCI memory mapped IO access routines
23 #include "cx18-driver.h"
24 #include "cx18-io.h"
25 #include "cx18-irq.h"
27 void cx18_memset_io(struct cx18 *cx, void __iomem *addr, int val, size_t count) cx18_memset_io()
58 void cx18_sw1_irq_enable(struct cx18 *cx, u32 val) cx18_sw1_irq_enable()
65 void cx18_sw1_irq_disable(struct cx18 *cx, u32 val) cx18_sw1_irq_disable()
71 void cx18_sw2_irq_enable(struct cx18 *cx, u32 val) cx18_sw2_irq_enable()
78 void cx18_sw2_irq_disable(struct cx18 *cx, u32 val) cx18_sw2_irq_disable()
84 void cx18_sw2_irq_disable_cpu(struct cx18 *cx, u32 val) cx18_sw2_irq_disable_cpu()
91 void cx18_setup_page(struct cx18 *cx, u32 addr) cx18_setup_page()
H A Dcx18-controls.c2 * cx18 ioctl control functions
26 #include "cx18-driver.h"
27 #include "cx18-cards.h"
28 #include "cx18-ioctl.h"
29 #include "cx18-audio.h"
30 #include "cx18-mailbox.h"
31 #include "cx18-controls.h"
35 struct cx18 *cx = container_of(cxhdl, struct cx18, cxhdl); cx18_s_stream_vbi_fmt()
94 struct cx18 *cx = container_of(cxhdl, struct cx18, cxhdl); cx18_s_video_encoding()
112 struct cx18 *cx = container_of(cxhdl, struct cx18, cxhdl); cx18_s_audio_sampling_freq()
123 struct cx18 *cx = container_of(cxhdl, struct cx18, cxhdl); cx18_s_audio_mode()
H A Dcx18-alsa-main.c2 * ALSA interface to cx18 PCM capture streams
37 #include "cx18-driver.h"
38 #include "cx18-version.h"
39 #include "cx18-alsa.h"
40 #include "cx18-alsa-mixer.h"
41 #include "cx18-alsa-pcm.h"
48 printk(KERN_INFO "%s: " fmt, "cx18-alsa", ## arg); \
117 struct cx18 *cx = to_cx18(cxsc->v4l2_dev); snd_cx18_card_set_names()
137 struct cx18 *cx = to_cx18(v4l2_dev); snd_cx18_init()
201 static int cx18_alsa_load(struct cx18 *cx) cx18_alsa_load()
207 printk(KERN_ERR "cx18-alsa: %s: struct v4l2_device * is NULL\n", cx18_alsa_load()
214 printk(KERN_ERR "cx18-alsa cx is NULL\n"); cx18_alsa_load()
235 CX18_DEBUG_ALSA_INFO("%s: created cx18 ALSA interface instance " cx18_alsa_load()
243 printk(KERN_INFO "cx18-alsa: module loading...\n"); cx18_alsa_init()
250 struct cx18 *cx = to_cx18(cxsc->v4l2_dev); snd_cx18_exit()
264 printk(KERN_ERR "cx18-alsa: %s: struct v4l2_device * is NULL\n", cx18_alsa_exit_callback()
285 printk(KERN_INFO "cx18-alsa: module unloading...\n"); cx18_alsa_exit()
287 drv = driver_find("cx18", &pci_bus_type); cx18_alsa_exit()
292 printk(KERN_INFO "cx18-alsa: module unload complete\n"); cx18_alsa_exit()
H A Dcx18-gpio.h2 * cx18 gpio functions
24 void cx18_gpio_init(struct cx18 *cx);
25 int cx18_gpio_register(struct cx18 *cx, u32 hw);
H A Dcx18-audio.c2 * cx18 audio-related functions
24 #include "cx18-driver.h"
25 #include "cx18-io.h"
26 #include "cx18-cards.h"
27 #include "cx18-audio.h"
37 int cx18_audio_set_io(struct cx18 *cx) cx18_audio_set_io()
H A Dcx18-gpio.c2 * cx18 gpio functions
25 #include "cx18-driver.h"
26 #include "cx18-io.h"
27 #include "cx18-cards.h"
28 #include "cx18-gpio.h"
52 static void gpio_write(struct cx18 *cx) gpio_write()
69 static void gpio_update(struct cx18 *cx, u32 mask, u32 data) gpio_update()
80 static void gpio_reset_seq(struct cx18 *cx, u32 active_lo, u32 active_hi, gpio_reset_seq()
110 struct cx18 *cx = v4l2_get_subdevdata(sd); gpiomux_log_status()
121 struct cx18 *cx = v4l2_get_subdevdata(sd); gpiomux_s_radio()
135 struct cx18 *cx = v4l2_get_subdevdata(sd); gpiomux_s_std()
161 struct cx18 *cx = v4l2_get_subdevdata(sd); gpiomux_s_audio_routing()
209 struct cx18 *cx = v4l2_get_subdevdata(sd); resetctrl_log_status()
220 struct cx18 *cx = v4l2_get_subdevdata(sd); resetctrl_reset()
268 void cx18_gpio_init(struct cx18 *cx) cx18_gpio_init()
294 int cx18_gpio_register(struct cx18 *cx, u32 hw) cx18_gpio_register()
324 struct cx18 *cx = to_cx18((struct v4l2_device *)data); cx18_reset_ir_gpio()
342 struct cx18 *cx = cb_data->cx; cx18_reset_tuner_gpio()
H A Dcx18-i2c.c2 * cx18 I2C functions
25 #include "cx18-driver.h"
26 #include "cx18-io.h"
27 #include "cx18-cards.h"
28 #include "cx18-gpio.h"
29 #include "cx18-i2c.h"
30 #include "cx18-irq.h"
86 static int cx18_i2c_new_ir(struct cx18 *cx, struct i2c_adapter *adap, u32 hw, cx18_i2c_new_ir()
111 int cx18_i2c_register(struct cx18 *cx, unsigned idx) cx18_i2c_register()
152 struct v4l2_subdev *cx18_find_hw(struct cx18 *cx, u32 hw) cx18_find_hw()
170 struct cx18 *cx = ((struct cx18_i2c_algo_callback_data *)data)->cx; cx18_setscl()
183 struct cx18 *cx = ((struct cx18_i2c_algo_callback_data *)data)->cx; cx18_setsda()
196 struct cx18 *cx = ((struct cx18_i2c_algo_callback_data *)data)->cx; cx18_getscl()
205 struct cx18 *cx = ((struct cx18_i2c_algo_callback_data *)data)->cx; cx18_getsda()
214 .name = "cx18 i2c driver",
233 int init_cx18_i2c(struct cx18 *cx) init_cx18_i2c()
304 void exit_cx18_i2c(struct cx18 *cx) exit_cx18_i2c()
H A Dcx18-driver.c2 * cx18 driver initialization and card probing
25 #include "cx18-driver.h"
26 #include "cx18-io.h"
27 #include "cx18-version.h"
28 #include "cx18-cards.h"
29 #include "cx18-i2c.h"
30 #include "cx18-irq.h"
31 #include "cx18-gpio.h"
32 #include "cx18-firmware.h"
33 #include "cx18-queue.h"
34 #include "cx18-streams.h"
35 #include "cx18-av-core.h"
36 #include "cx18-scb.h"
37 #include "cx18-mailbox.h"
38 #include "cx18-ioctl.h"
39 #include "cx18-controls.h"
52 int (*cx18_ext_init)(struct cx18 *);
257 struct cx18 *dev = container_of(work, struct cx18, request_module_wk); request_module_async()
259 /* Make sure cx18-alsa module is loaded */ request_module_async()
260 request_module("cx18-alsa"); request_module_async()
262 /* Initialize cx18-alsa for this instance of the cx18 device */ request_module_async()
267 static void request_modules(struct cx18 *dev) request_modules()
273 static void flush_request_modules(struct cx18 *dev) flush_request_modules()
297 static void cx18_iounmap(struct cx18 *cx) cx18_iounmap()
310 static void cx18_eeprom_dump(struct cx18 *cx, unsigned char *eedata, int len) cx18_eeprom_dump()
325 void cx18_read_eeprom(struct cx18 *cx, struct tveeprom *tv) cx18_read_eeprom()
336 strlcpy(c->name, "cx18 tveeprom tmp", sizeof(c->name)); cx18_read_eeprom()
366 static void cx18_process_eeprom(struct cx18 *cx) cx18_process_eeprom()
457 static v4l2_std_id cx18_parse_std(struct cx18 *cx) cx18_parse_std()
539 static void cx18_process_options(struct cx18 *cx) cx18_process_options()
701 static int cx18_create_in_workq(struct cx18 *cx) cx18_create_in_workq()
713 static void cx18_init_in_work_orders(struct cx18 *cx) cx18_init_in_work_orders()
723 /* Precondition: the cx18 structure has been memset to 0. Only
728 static int cx18_init_struct1(struct cx18 *cx) cx18_init_struct1()
785 static void cx18_init_struct2(struct cx18 *cx) cx18_init_struct2()
810 static int cx18_setup_pci(struct cx18 *cx, struct pci_dev *pci_dev, cx18_setup_pci()
826 if (!request_mem_region(cx->base_addr, CX18_MEM_SIZE, "cx18 encoder")) { cx18_setup_pci()
856 static void cx18_init_subdevs(struct cx18 *cx) cx18_init_subdevs()
908 struct cx18 *cx; cx18_probe()
913 printk(KERN_ERR "cx18: cannot manage card %d, driver has a " cx18_probe()
918 cx = kzalloc(sizeof(struct cx18), GFP_ATOMIC); cx18_probe()
920 printk(KERN_ERR "cx18: cannot manage card %d, out of memory\n", cx18_probe()
929 printk(KERN_ERR "cx18: v4l2_device_register of card %d failed" cx18_probe()
934 snprintf(cx->v4l2_dev.name, sizeof(cx->v4l2_dev.name), "cx18-%d", cx18_probe()
1132 /* Load cx18 submodules (cx18-alsa) */ cx18_probe()
1158 int cx18_init_on_first_open(struct cx18 *cx) cx18_init_on_first_open()
1258 static void cx18_cancel_in_work_orders(struct cx18 *cx) cx18_cancel_in_work_orders()
1265 static void cx18_cancel_out_work_orders(struct cx18 *cx) cx18_cancel_out_work_orders()
1276 struct cx18 *cx = to_cx18(v4l2_dev); cx18_remove()
1329 .name = "cx18",
1337 printk(KERN_INFO "cx18: Start initialization, version %s\n", module_start()
1342 printk(KERN_ERR "cx18: Exiting, cx18_first_minor must be between 0 and %d\n", module_start()
1349 printk(KERN_INFO "cx18: Debug value must be >= 0 and <= 511!\n"); module_start()
1353 printk(KERN_ERR "cx18: Error detecting PCI card\n"); module_start()
1356 printk(KERN_INFO "cx18: End initialization\n"); module_start()
H A Dcx18-ioctl.c2 * cx18 ioctl system call
25 #include "cx18-driver.h"
26 #include "cx18-io.h"
27 #include "cx18-version.h"
28 #include "cx18-mailbox.h"
29 #include "cx18-i2c.h"
30 #include "cx18-queue.h"
31 #include "cx18-fileops.h"
32 #include "cx18-vbi.h"
33 #include "cx18-audio.h"
34 #include "cx18-video.h"
35 #include "cx18-streams.h"
36 #include "cx18-ioctl.h"
37 #include "cx18-gpio.h"
38 #include "cx18-controls.h"
39 #include "cx18-cards.h"
40 #include "cx18-av-core.h"
152 struct cx18 *cx = id->cx; cx18_g_fmt_vid_cap()
175 struct cx18 *cx = fh2id(fh)->cx; cx18_g_fmt_vbi_cap()
194 struct cx18 *cx = fh2id(fh)->cx; cx18_g_fmt_sliced_vbi_cap()
220 struct cx18 *cx = id->cx; cx18_try_fmt_vid_cap()
249 struct cx18 *cx = fh2id(fh)->cx; cx18_try_fmt_sliced_vbi_cap()
269 struct cx18 *cx = id->cx; cx18_s_fmt_vid_cap()
312 struct cx18 *cx = id->cx; cx18_s_fmt_vbi_cap()
342 struct cx18 *cx = id->cx; cx18_s_fmt_sliced_vbi_cap()
373 struct cx18 *cx = fh2id(fh)->cx; cx18_g_register()
387 struct cx18 *cx = fh2id(fh)->cx; cx18_s_register()
403 struct cx18 *cx = id->cx; cx18_querycap()
417 struct cx18 *cx = fh2id(fh)->cx; cx18_enumaudio()
424 struct cx18 *cx = fh2id(fh)->cx; cx18_g_audio()
432 struct cx18 *cx = fh2id(fh)->cx; cx18_s_audio()
443 struct cx18 *cx = fh2id(fh)->cx; cx18_enum_input()
452 struct cx18 *cx = fh2id(fh)->cx; cx18_cropcap()
464 struct cx18 *cx = fh2id(fh)->cx; cx18_g_selection()
504 struct cx18 *cx = fh2id(fh)->cx; cx18_g_input()
513 struct cx18 *cx = id->cx; cx18_s_input()
550 struct cx18 *cx = fh2id(fh)->cx; cx18_g_frequency()
562 struct cx18 *cx = id->cx; cx18_s_frequency()
576 struct cx18 *cx = fh2id(fh)->cx; cx18_g_std()
585 struct cx18 *cx = id->cx; cx18_s_std()
621 struct cx18 *cx = id->cx; cx18_s_tuner()
632 struct cx18 *cx = fh2id(fh)->cx; cx18_g_tuner()
640 strlcpy(vt->name, "cx18 Radio Tuner", sizeof(vt->name)); cx18_g_tuner()
642 strlcpy(vt->name, "cx18 TV Tuner", sizeof(vt->name)); cx18_g_tuner()
649 struct cx18 *cx = fh2id(fh)->cx; cx18_g_sliced_vbi_cap()
770 struct cx18 *cx = fh2id(fh)->cx; cx18_g_enc_index()
817 struct cx18 *cx = id->cx; cx18_vb_queue()
836 struct cx18 *cx = id->cx; cx18_streamon()
857 struct cx18 *cx = id->cx; cx18_streamoff()
875 struct cx18 *cx = id->cx; cx18_reqbufs()
889 struct cx18 *cx = id->cx; cx18_querybuf()
902 struct cx18 *cx = id->cx; cx18_qbuf()
915 struct cx18 *cx = id->cx; cx18_dqbuf()
929 struct cx18 *cx = id->cx; cx18_encoder_cmd()
989 struct cx18 *cx = fh2id(fh)->cx; cx18_try_encoder_cmd()
1021 struct cx18 *cx = fh2id(fh)->cx; cx18_log_status()
1065 struct cx18 *cx = fh2id(fh)->cx; cx18_default()
H A Dcx18-alsa-pcm.c3 * ALSA interface to cx18 PCM capture streams
35 #include "cx18-driver.h"
36 #include "cx18-queue.h"
37 #include "cx18-streams.h"
38 #include "cx18-fileops.h"
39 #include "cx18-alsa.h"
40 #include "cx18-alsa-pcm.h"
48 printk(KERN_INFO "cx18-alsa-pcm %s: " fmt, \
83 dprintk("cx18 alsa announce ptr=%p data=%p num_bytes=%zu\n", cxsc, cx18_alsa_announce_pcm_data()
154 struct cx18 *cx = to_cx18(v4l2_dev); snd_cx18_pcm_capture_open()
159 /* Instruct the cx18 to start sending packets */ snd_cx18_pcm_capture_open()
201 struct cx18 *cx = to_cx18(v4l2_dev); snd_cx18_pcm_capture_close()
204 /* Instruct the cx18 to stop sending packets */ snd_cx18_pcm_capture_close()
331 struct cx18 *cx = to_cx18(v4l2_dev); snd_cx18_pcm_create()
H A Dcx18-version.h2 * cx18 driver version information
25 #define CX18_DRIVER_NAME "cx18"
H A Dcx18-av-core.h2 * cx18 ADEC header
31 struct cx18;
358 int cx18_av_write(struct cx18 *cx, u16 addr, u8 value);
359 int cx18_av_write4(struct cx18 *cx, u16 addr, u32 value);
360 int cx18_av_write4_noretry(struct cx18 *cx, u16 addr, u32 value);
361 int cx18_av_write_expect(struct cx18 *cx, u16 addr, u8 value, u8 eval, u8 mask);
362 int cx18_av_write4_expect(struct cx18 *cx, u16 addr, u32 value, u32 eval,
364 u8 cx18_av_read(struct cx18 *cx, u16 addr);
365 u32 cx18_av_read4(struct cx18 *cx, u16 addr);
366 int cx18_av_and_or(struct cx18 *cx, u16 addr, unsigned mask, u8 value);
367 int cx18_av_and_or4(struct cx18 *cx, u16 addr, u32 mask, u32 value);
368 void cx18_av_std_setup(struct cx18 *cx);
370 int cx18_av_probe(struct cx18 *cx);
374 int cx18_av_loadfw(struct cx18 *cx);
379 void cx18_av_audio_set_path(struct cx18 *cx);
H A Dcx18-mailbox.c2 * cx18 mailbox functions
25 #include "cx18-driver.h"
26 #include "cx18-io.h"
27 #include "cx18-scb.h"
28 #include "cx18-irq.h"
29 #include "cx18-mailbox.h"
30 #include "cx18-queue.h"
31 #include "cx18-streams.h"
32 #include "cx18-alsa-pcm.h" /* FIXME make configurable */
119 static void dump_mb(struct cx18 *cx, struct cx18_mailbox *mb, char *name) dump_mb()
217 static void cx18_mdl_send_to_alsa(struct cx18 *cx, struct cx18_stream *s, cx18_mdl_send_to_alsa()
244 static void epu_dma_done(struct cx18 *cx, struct cx18_in_work_order *order) epu_dma_done()
314 /* Pass the data to cx18-alsa */ epu_dma_done()
338 static void epu_debug(struct cx18 *cx, struct cx18_in_work_order *order) epu_debug()
349 static void epu_cmd(struct cx18 *cx, struct cx18_in_work_order *order) epu_cmd()
378 void free_in_work_order(struct cx18 *cx, struct cx18_in_work_order *order) free_in_work_order()
387 struct cx18 *cx = order->cx; cx18_in_work_handler()
397 static void mb_ack_irq(struct cx18 *cx, struct cx18_in_work_order *order) mb_ack_irq()
433 static int epu_dma_done_irq(struct cx18 *cx, struct cx18_in_work_order *order) epu_dma_done_irq()
461 int epu_debug_irq(struct cx18 *cx, struct cx18_in_work_order *order) epu_debug_irq()
482 int epu_cmd_irq(struct cx18 *cx, struct cx18_in_work_order *order) epu_cmd_irq()
514 struct cx18_in_work_order *alloc_in_work_order_irq(struct cx18 *cx) alloc_in_work_order_irq()
537 void cx18_api_epu_cmd_irq(struct cx18 *cx, int rpu) cx18_api_epu_cmd_irq()
600 static int cx18_api_call(struct cx18 *cx, u32 cmd, int args, u32 data[]) cx18_api_call()
753 int cx18_api(struct cx18 *cx, u32 cmd, int args, u32 data[]) cx18_api()
760 struct cx18 *cx = s->cx; cx18_set_filter_param()
779 struct cx18 *cx = s->cx; cx18_api_func()
838 int cx18_vapi_result(struct cx18 *cx, u32 data[MAX_MB_ARGUMENTS], cx18_vapi_result()
851 int cx18_vapi(struct cx18 *cx, u32 cmd, int args, ...) cx18_vapi()
H A Dcx18-mailbox.h2 * cx18 mailbox functions
39 struct cx18;
44 * firmware, but its definition needs to be here, instead of in cx18-scb.h,
84 int cx18_api(struct cx18 *cx, u32 cmd, int args, u32 data[]);
85 int cx18_vapi_result(struct cx18 *cx, u32 data[MAX_MB_ARGUMENTS], u32 cmd,
87 int cx18_vapi(struct cx18 *cx, u32 cmd, int args, ...);
91 void cx18_api_epu_cmd_irq(struct cx18 *cx, int rpu);
H A Dcx18-vbi.c2 * cx18 Vertical Blank Interval support functions
24 #include "cx18-driver.h"
25 #include "cx18-vbi.h"
26 #include "cx18-ioctl.h"
27 #include "cx18-queue.h"
39 static void copy_vbi_data(struct cx18 *cx, int lines, u32 pts_stamp) copy_vbi_data()
109 static u32 compress_raw_buf(struct cx18 *cx, u8 *buf, u32 size, u32 hdr_size) compress_raw_buf()
142 static u32 compress_sliced_buf(struct cx18 *cx, u8 *buf, u32 size, compress_sliced_buf()
189 static void _cx18_process_vbi_data(struct cx18 *cx, struct cx18_buffer *buf) _cx18_process_vbi_data()
251 void cx18_process_vbi_data(struct cx18 *cx, struct cx18_mdl *mdl, cx18_process_vbi_data()
H A Dcx18-alsa-mixer.c3 * ALSA interface to cx18 PCM capture streams
35 #include "cx18-alsa.h"
36 #include "cx18-driver.h"
39 * Note the cx18-av-core volume scale is funny, due to the alignment of the
88 struct cx18 *cx = to_cx18(cxsc->v4l2_dev); snd_cx18_mixer_tv_vol_get()
108 struct cx18 *cx = to_cx18(cxsc->v4l2_dev); snd_cx18_mixer_tv_vol_put()
H A Dcx18-alsa.h2 * ALSA interface to cx18 PCM capture streams
41 struct cx18 *cx = to_cx18(cxsc->v4l2_dev); snd_cx18_lock()
47 struct cx18 *cx = to_cx18(cxsc->v4l2_dev); snd_cx18_unlock()
H A Dcx18-dvb.c2 * cx18 functions for DVB support
23 #include "cx18-version.h"
24 #include "cx18-dvb.h"
25 #include "cx18-io.h"
26 #include "cx18-queue.h"
27 #include "cx18-streams.h"
28 #include "cx18-cards.h"
29 #include "cx18-gpio.h"
43 #define FWFILE "dvb-cx18-mpc718-mt352.fw"
139 struct cx18 *cx = stream->cx; yuan_mpc718_mt352_reqfw()
254 struct cx18 *cx; cx18_dvb_start_feed()
325 struct cx18 *cx; cx18_dvb_stop_feed()
349 struct cx18 *cx = stream->cx; cx18_dvb_register()
441 struct cx18 *cx = stream->cx; cx18_dvb_unregister()
473 struct cx18 *cx = stream->cx; dvb_register()
H A Dcx18-scb.c2 * cx18 System Control Block initialization
23 #include "cx18-driver.h"
24 #include "cx18-io.h"
25 #include "cx18-scb.h"
27 void cx18_init_scb(struct cx18 *cx) cx18_init_scb()
H A Dcx18-fileops.c2 * cx18 file operation functions
25 #include "cx18-driver.h"
26 #include "cx18-fileops.h"
27 #include "cx18-i2c.h"
28 #include "cx18-queue.h"
29 #include "cx18-vbi.h"
30 #include "cx18-audio.h"
31 #include "cx18-mailbox.h"
32 #include "cx18-scb.h"
33 #include "cx18-streams.h"
34 #include "cx18-controls.h"
35 #include "cx18-ioctl.h"
36 #include "cx18-cards.h"
46 struct cx18 *cx = id->cx; cx18_claim_stream()
106 struct cx18 *cx = s->cx; cx18_release_stream()
161 static void cx18_dualwatch(struct cx18 *cx) cx18_dualwatch()
187 struct cx18 *cx = s->cx; cx18_get_mdl()
259 static void cx18_setup_sliced_vbi_mdl(struct cx18 *cx) cx18_setup_sliced_vbi_mdl()
277 struct cx18 *cx = s->cx; cx18_copy_buf_to_user()
423 struct cx18 *cx = s->cx; cx18_read()
489 struct cx18 *cx = s->cx; cx18_read_pos()
499 struct cx18 *cx = id->cx; cx18_start_capture()
590 struct cx18 *cx = id->cx; cx18_v4l2_read()
615 struct cx18 *cx = id->cx; cx18_v4l2_enc_poll()
664 struct cx18 *cx = id->cx; cx18_v4l2_mmap()
715 struct cx18 *cx = id->cx; cx18_stop_capture()
758 struct cx18 *cx = id->cx; cx18_v4l2_close()
798 struct cx18 *cx = s->cx; cx18_serialized_open()
850 struct cx18 *cx = s->cx; cx18_v4l2_open()
864 void cx18_mute(struct cx18 *cx) cx18_mute()
877 void cx18_unmute(struct cx18 *cx) cx18_unmute()
H A Dcx18-firmware.c2 * cx18 firmware functions
23 #include "cx18-driver.h"
24 #include "cx18-io.h"
25 #include "cx18-scb.h"
26 #include "cx18-irq.h"
27 #include "cx18-firmware.h"
28 #include "cx18-cards.h"
101 static int load_cpu_fw_direct(const char *fn, u8 __iomem *mem, struct cx18 *cx) load_cpu_fw_direct()
140 static int load_apu_fw_direct(const char *fn, u8 __iomem *dst, struct cx18 *cx, load_apu_fw_direct()
213 void cx18_halt_firmware(struct cx18 *cx) cx18_halt_firmware()
222 void cx18_init_power(struct cx18 *cx, int lowpwr) cx18_init_power()
331 void cx18_init_memory(struct cx18 *cx) cx18_init_memory()
382 int cx18_firmware_init(struct cx18 *cx) cx18_firmware_init()
H A Dcx18-streams.c2 * cx18 init/start/stop/exit stream functions
25 #include "cx18-driver.h"
26 #include "cx18-io.h"
27 #include "cx18-fileops.h"
28 #include "cx18-mailbox.h"
29 #include "cx18-i2c.h"
30 #include "cx18-queue.h"
31 #include "cx18-ioctl.h"
32 #include "cx18-streams.h"
33 #include "cx18-cards.h"
34 #include "cx18-scb.h"
35 #include "cx18-dvb.h"
124 struct cx18 *cx = s->cx; cx18_prepare_buffer()
199 struct cx18 *cx = s->cx; buffer_setup()
221 struct cx18 *cx = s->cx; buffer_prepare()
255 static void cx18_stream_init(struct cx18 *cx, int type) cx18_stream_init()
312 static int cx18_prep_dev(struct cx18 *cx, int type) cx18_prep_dev()
387 int cx18_streams_setup(struct cx18 *cx) cx18_streams_setup()
411 static int cx18_reg_dev(struct cx18 *cx, int type) cx18_reg_dev()
479 int cx18_streams_register(struct cx18 *cx) cx18_streams_register()
501 void cx18_streams_cleanup(struct cx18 *cx, int unregister) cx18_streams_cleanup()
555 struct cx18 *cx = s->cx; cx18_vbi_setup()
663 void cx18_stream_rotate_idx_mdls(struct cx18 *cx) cx18_stream_rotate_idx_mdls()
693 struct cx18 *cx = s->cx; _cx18_stream_put_mdl_fw()
788 struct cx18 *cx = s->cx; cx18_start_v4l2_encode_stream()
962 void cx18_stop_all_captures(struct cx18 *cx) cx18_stop_all_captures()
978 struct cx18 *cx = s->cx; cx18_stop_v4l2_encode_stream()
1026 u32 cx18_find_handle(struct cx18 *cx) cx18_find_handle()
1040 struct cx18_stream *cx18_handle_to_stream(struct cx18 *cx, u32 handle) cx18_handle_to_stream()
H A Dcx18-av-core.c2 * cx18 ADEC audio functions
25 #include "cx18-driver.h"
26 #include "cx18-io.h"
27 #include "cx18-cards.h"
29 int cx18_av_write(struct cx18 *cx, u16 addr, u8 value) cx18_av_write()
41 int cx18_av_write_expect(struct cx18 *cx, u16 addr, u8 value, u8 eval, u8 mask) cx18_av_write_expect()
53 int cx18_av_write4(struct cx18 *cx, u16 addr, u32 value) cx18_av_write4()
60 cx18_av_write4_expect(struct cx18 *cx, u16 addr, u32 value, u32 eval, u32 mask) cx18_av_write4_expect()
66 int cx18_av_write4_noretry(struct cx18 *cx, u16 addr, u32 value) cx18_av_write4_noretry()
72 u8 cx18_av_read(struct cx18 *cx, u16 addr) cx18_av_read()
80 u32 cx18_av_read4(struct cx18 *cx, u16 addr) cx18_av_read4()
85 int cx18_av_and_or(struct cx18 *cx, u16 addr, unsigned and_mask, cx18_av_and_or()
93 int cx18_av_and_or4(struct cx18 *cx, u16 addr, u32 and_mask, cx18_av_and_or4()
101 static void cx18_av_init(struct cx18 *cx) cx18_av_init()
130 struct cx18 *cx = v4l2_get_subdevdata(sd); cx18_av_initialize()
287 void cx18_av_std_setup(struct cx18 *cx) cx18_av_std_setup()
532 static void input_change(struct cx18 *cx) input_change()
580 struct cx18 *cx = v4l2_get_subdevdata(sd); cx18_av_s_frequency()
585 static int set_input(struct cx18 *cx, enum cx18_av_video_input vid_input, set_input()
762 struct cx18 *cx = v4l2_get_subdevdata(sd); cx18_av_s_video_routing()
770 struct cx18 *cx = v4l2_get_subdevdata(sd); cx18_av_s_audio_routing()
777 struct cx18 *cx = v4l2_get_subdevdata(sd); cx18_av_g_tuner()
814 struct cx18 *cx = v4l2_get_subdevdata(sd); cx18_av_s_tuner()
859 struct cx18 *cx = v4l2_get_subdevdata(sd); cx18_av_s_std()
922 struct cx18 *cx = v4l2_get_subdevdata(sd); cx18_av_s_ctrl()
954 struct cx18 *cx = v4l2_get_subdevdata(sd); cx18_av_set_fmt()
1027 struct cx18 *cx = v4l2_get_subdevdata(sd); cx18_av_s_stream()
1040 static void log_video_status(struct cx18 *cx) log_video_status()
1082 static void log_audio_status(struct cx18 *cx) log_audio_status()
1233 struct cx18 *cx = v4l2_get_subdevdata(sd); cx18_av_log_status()
1243 struct cx18 *cx = v4l2_get_subdevdata(sd); cx18_av_g_register()
1255 struct cx18 *cx = v4l2_get_subdevdata(sd); cx18_av_s_register()
1316 int cx18_av_probe(struct cx18 *cx) cx18_av_probe()
H A Dcx18-driver.h2 * cx18 driver internal defines and structures
53 #include "cx18-mailbox.h"
54 #include "cx18-av-core.h"
77 /* Maximum cx18 driver instances. */
275 /* per-cx18, i_flags */
347 struct cx18; /* forward reference */
363 struct cx18 *cx;
378 struct cx18 *cx; /* for ease of use */
433 struct cx18 *cx;
446 /* forward declaration of struct defined in cx18-cards.h */
520 * Used in cx18-vbi.c only for collecting sliced data, and as a source
561 * Only used in cx18-fileops.c, but its state needs to persist at times.
569 struct cx18 *cx;
575 /* Struct to hold info about cx18 cards */
576 struct cx18 { struct
618 unsigned long i_flags; /* global cx18 flags */
648 char in_workq_name[11]; /* "cx18-NN-in" */
674 /* Used for cx18-alsa module loading */
678 static inline struct cx18 *to_cx18(struct v4l2_device *v4l2_dev) to_cx18()
680 return container_of(v4l2_dev, struct cx18, v4l2_dev); to_cx18()
683 /* cx18 extensions to be loaded */
684 extern int (*cx18_ext_init)(struct cx18 *);
696 void cx18_read_eeprom(struct cx18 *cx, struct tveeprom *tv);
699 int cx18_init_on_first_open(struct cx18 *cx);
702 static inline int cx18_raw_vbi(const struct cx18 *cx) cx18_raw_vbi()
H A Dcx18-irq.h2 * cx18 interrupt handling
H A Dcx18-av-audio.c2 * cx18 ADEC audio functions
25 #include "cx18-driver.h"
27 static int set_audclk_freq(struct cx18 *cx, u32 freq) set_audclk_freq()
303 void cx18_av_audio_set_path(struct cx18 *cx) cx18_av_audio_set_path()
345 static void set_volume(struct cx18 *cx, int volume) set_volume()
361 static void set_bass(struct cx18 *cx, int bass) set_bass()
367 static void set_treble(struct cx18 *cx, int treble) set_treble()
373 static void set_balance(struct cx18 *cx, int balance) set_balance()
389 static void set_mute(struct cx18 *cx, int mute) set_mute()
418 struct cx18 *cx = v4l2_get_subdevdata(sd); cx18_av_s_clock_freq()
445 struct cx18 *cx = v4l2_get_subdevdata(sd); cx18_av_audio_s_ctrl()
H A Dcx18-av-vbi.c2 * cx18 ADEC VBI functions
25 #include "cx18-driver.h"
134 struct cx18 *cx = v4l2_get_subdevdata(sd); cx18_av_g_sliced_fmt()
177 struct cx18 *cx = v4l2_get_subdevdata(sd); cx18_av_s_raw_fmt()
191 struct cx18 *cx = v4l2_get_subdevdata(sd); cx18_av_s_sliced_fmt()
262 struct cx18 *cx = v4l2_get_subdevdata(sd); cx18_av_decode_vbi_line()
H A Dcx18-queue.c2 * cx18 buffer queues
25 #include "cx18-driver.h"
26 #include "cx18-queue.h"
27 #include "cx18-streams.h"
28 #include "cx18-scb.h"
29 #include "cx18-io.h"
142 struct cx18 *cx = s->cx; cx18_queue_get_mdl()
279 struct cx18 *cx = s->cx; cx18_load_queues()
349 struct cx18 *cx = s->cx; cx18_stream_alloc()
422 struct cx18 *cx = s->cx; cx18_stream_free()
H A Dcx18-av-firmware.c2 * cx18 ADEC firmware functions
23 #include "cx18-driver.h"
24 #include "cx18-io.h"
36 static int cx18_av_verifyfw(struct cx18 *cx, const struct firmware *fw) cx18_av_verifyfw()
78 int cx18_av_loadfw(struct cx18 *cx) cx18_av_loadfw()
H A Dcx18-cards.h2 * cx18 functions to query card hardware
156 int cx18_get_input(struct cx18 *cx, u16 index, struct v4l2_input *input);
157 int cx18_get_audio_input(struct cx18 *cx, u16 index, struct v4l2_audio *input);
H A Dcx18-cards.c2 * cx18 functions to query card hardware
25 #include "cx18-driver.h"
26 #include "cx18-cards.h"
27 #include "cx18-av-core.h"
28 #include "cx18-i2c.h"
594 int cx18_get_input(struct cx18 *cx, u16 index, struct v4l2_input *input) cx18_get_input()
620 int cx18_get_audio_input(struct cx18 *cx, u16 index, struct v4l2_audio *audio) cx18_get_audio_input()
H A Dcx18-queue.h2 * cx18 buffer queues
H A Dcx18-scb.h2 * cx18 System Control Block initialization
26 #include "cx18-mailbox.h"
278 void cx18_init_scb(struct cx18 *cx);
H A Dcx23418.h2 * cx18 header containing common defines.
/linux-4.4.14/include/media/
H A Dv4l2-device.h93 this function returns 0. If the name ends with a digit (e.g. cx18),
94 then the name will be set to cx18-0 since cx180 looks really odd. */
H A Dv4l2-common.h153 still used in tuner-simple.c (TUNER_SET_CONFIG), cx18/ivtv (RESET) and
/linux-4.4.14/drivers/media/pci/cobalt/
H A Dcobalt-driver.h4 * Derived from cx18-driver.h
H A Dcobalt-i2c.c4 * Derived from cx18-i2c.c
H A Dcobalt-driver.c4 * Derived from cx18-driver.c
H A Dcobalt-v4l2.c4 * Derived from ivtv-ioctl.c and cx18-fileops.c
/linux-4.4.14/drivers/media/pci/ivtv/
H A Divtv-alsa-main.c7 * Portions of this work were sponsored by ONELAN Limited for the cx18 driver
H A Divtv-alsa-pcm.c8 * Portions of this work were sponsored by ONELAN Limited for the cx18 driver
H A Divtv-driver.c293 /* Initialize ivtv-alsa for this instance of the cx18 device */ request_module_async()
/linux-4.4.14/Documentation/dvb/
H A Dget_dvb_firmware28 "opera1", "cx231xx", "cx18", "cx23885", "pvrusb2", "mpc718",
378 sub cx18 { subroutine
404 my $fwfile = "dvb-cx18-mpc718-mt352.fw";

Completed in 385 milliseconds