Symbol: solo_dev
drivers/media/pci/solo6x10/solo6x10-core.c
101
solo_reg_write(solo_dev, SOLO_IRQ_STAT, status);
drivers/media/pci/solo6x10/solo6x10-core.c
104
solo_p2m_error_isr(solo_dev);
drivers/media/pci/solo6x10/solo6x10-core.c
108
solo_p2m_isr(solo_dev, i);
drivers/media/pci/solo6x10/solo6x10-core.c
111
solo_i2c_isr(solo_dev);
drivers/media/pci/solo6x10/solo6x10-core.c
114
solo_video_in_isr(solo_dev);
drivers/media/pci/solo6x10/solo6x10-core.c
115
solo_timer_sync(solo_dev);
drivers/media/pci/solo6x10/solo6x10-core.c
119
solo_enc_v4l2_isr(solo_dev);
drivers/media/pci/solo6x10/solo6x10-core.c
122
solo_g723_isr(solo_dev);
drivers/media/pci/solo6x10/solo6x10-core.c
127
static void free_solo_dev(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-core.c
129
struct pci_dev *pdev = solo_dev->pdev;
drivers/media/pci/solo6x10/solo6x10-core.c
131
if (solo_dev->dev.parent)
drivers/media/pci/solo6x10/solo6x10-core.c
132
device_unregister(&solo_dev->dev);
drivers/media/pci/solo6x10/solo6x10-core.c
134
if (solo_dev->reg_base) {
drivers/media/pci/solo6x10/solo6x10-core.c
136
solo_g723_exit(solo_dev);
drivers/media/pci/solo6x10/solo6x10-core.c
137
solo_enc_v4l2_exit(solo_dev);
drivers/media/pci/solo6x10/solo6x10-core.c
138
solo_enc_exit(solo_dev);
drivers/media/pci/solo6x10/solo6x10-core.c
139
solo_v4l2_exit(solo_dev);
drivers/media/pci/solo6x10/solo6x10-core.c
140
solo_disp_exit(solo_dev);
drivers/media/pci/solo6x10/solo6x10-core.c
141
solo_gpio_exit(solo_dev);
drivers/media/pci/solo6x10/solo6x10-core.c
142
solo_p2m_exit(solo_dev);
drivers/media/pci/solo6x10/solo6x10-core.c
143
solo_i2c_exit(solo_dev);
drivers/media/pci/solo6x10/solo6x10-core.c
146
solo_irq_off(solo_dev, ~0);
drivers/media/pci/solo6x10/solo6x10-core.c
150
v4l2_device_unregister(&solo_dev->v4l2_dev);
drivers/media/pci/solo6x10/solo6x10-core.c
153
kfree(solo_dev);
drivers/media/pci/solo6x10/solo6x10-core.c
159
struct solo_dev *solo_dev =
drivers/media/pci/solo6x10/solo6x10-core.c
160
container_of(dev, struct solo_dev, dev);
drivers/media/pci/solo6x10/solo6x10-core.c
175
solo_eeprom_ewen(solo_dev, 1);
drivers/media/pci/solo6x10/solo6x10-core.c
179
solo_eeprom_write(solo_dev, i, cpu_to_be16(p[i]));
drivers/media/pci/solo6x10/solo6x10-core.c
181
solo_eeprom_ewen(solo_dev, 0);
drivers/media/pci/solo6x10/solo6x10-core.c
189
struct solo_dev *solo_dev =
drivers/media/pci/solo6x10/solo6x10-core.c
190
container_of(dev, struct solo_dev, dev);
drivers/media/pci/solo6x10/solo6x10-core.c
196
p[i] = be16_to_cpu(solo_eeprom_read(solo_dev, i));
drivers/media/pci/solo6x10/solo6x10-core.c
205
struct solo_dev *solo_dev =
drivers/media/pci/solo6x10/solo6x10-core.c
206
container_of(dev, struct solo_dev, dev);
drivers/media/pci/solo6x10/solo6x10-core.c
208
return sprintf(buf, "%d\n", solo_dev->p2m_timeouts);
drivers/media/pci/solo6x10/solo6x10-core.c
215
struct solo_dev *solo_dev =
drivers/media/pci/solo6x10/solo6x10-core.c
216
container_of(dev, struct solo_dev, dev);
drivers/media/pci/solo6x10/solo6x10-core.c
218
return sprintf(buf, "%dMegs\n", solo_dev->sdram_size >> 20);
drivers/media/pci/solo6x10/solo6x10-core.c
225
struct solo_dev *solo_dev =
drivers/media/pci/solo6x10/solo6x10-core.c
226
container_of(dev, struct solo_dev, dev);
drivers/media/pci/solo6x10/solo6x10-core.c
229
hweight32(solo_dev->tw2815),
drivers/media/pci/solo6x10/solo6x10-core.c
230
hweight32(solo_dev->tw2864),
drivers/media/pci/solo6x10/solo6x10-core.c
231
hweight32(solo_dev->tw2865));
drivers/media/pci/solo6x10/solo6x10-core.c
238
struct solo_dev *solo_dev =
drivers/media/pci/solo6x10/solo6x10-core.c
239
container_of(dev, struct solo_dev, dev);
drivers/media/pci/solo6x10/solo6x10-core.c
243
val = solo_reg_read(solo_dev, SOLO_VI_CH_SWITCH_0);
drivers/media/pci/solo6x10/solo6x10-core.c
251
val = solo_reg_read(solo_dev, SOLO_VI_CH_SWITCH_1);
drivers/media/pci/solo6x10/solo6x10-core.c
259
val = solo_reg_read(solo_dev, SOLO_VI_CH_SWITCH_2);
drivers/media/pci/solo6x10/solo6x10-core.c
273
struct solo_dev *solo_dev =
drivers/media/pci/solo6x10/solo6x10-core.c
274
container_of(dev, struct solo_dev, dev);
drivers/media/pci/solo6x10/solo6x10-core.c
280
solo_dev->p2m_jiffies = msecs_to_jiffies(ms);
drivers/media/pci/solo6x10/solo6x10-core.c
289
struct solo_dev *solo_dev =
drivers/media/pci/solo6x10/solo6x10-core.c
290
container_of(dev, struct solo_dev, dev);
drivers/media/pci/solo6x10/solo6x10-core.c
292
return sprintf(buf, "%ums\n", jiffies_to_msecs(solo_dev->p2m_jiffies));
drivers/media/pci/solo6x10/solo6x10-core.c
299
struct solo_dev *solo_dev =
drivers/media/pci/solo6x10/solo6x10-core.c
300
container_of(dev, struct solo_dev, dev);
drivers/media/pci/solo6x10/solo6x10-core.c
302
int fps = solo_dev->fps;
drivers/media/pci/solo6x10/solo6x10-core.c
305
for (i = 0; i < solo_dev->nr_chans; i++) {
drivers/media/pci/solo6x10/solo6x10-core.c
307
i, solo_dev->v4l2_enc[i]->interval, fps,
drivers/media/pci/solo6x10/solo6x10-core.c
308
solo_reg_read(solo_dev, SOLO_CAP_CH_INTV(i)));
drivers/media/pci/solo6x10/solo6x10-core.c
318
struct solo_dev *solo_dev =
drivers/media/pci/solo6x10/solo6x10-core.c
319
container_of(dev, struct solo_dev, dev);
drivers/media/pci/solo6x10/solo6x10-core.c
328
SOLO_EOSD_EXT_AREA(solo_dev),
drivers/media/pci/solo6x10/solo6x10-core.c
329
SOLO_EOSD_EXT_SIZE(solo_dev),
drivers/media/pci/solo6x10/solo6x10-core.c
330
SOLO_EOSD_EXT_AREA(solo_dev) /
drivers/media/pci/solo6x10/solo6x10-core.c
331
SOLO_EOSD_EXT_SIZE(solo_dev));
drivers/media/pci/solo6x10/solo6x10-core.c
334
SOLO_MOTION_EXT_ADDR(solo_dev),
drivers/media/pci/solo6x10/solo6x10-core.c
338
SOLO_G723_EXT_ADDR(solo_dev),
drivers/media/pci/solo6x10/solo6x10-core.c
342
SOLO_CAP_EXT_ADDR(solo_dev),
drivers/media/pci/solo6x10/solo6x10-core.c
343
SOLO_CAP_EXT_SIZE(solo_dev),
drivers/media/pci/solo6x10/solo6x10-core.c
345
SOLO_CAP_EXT_SIZE(solo_dev) / SOLO_CAP_PAGE_SIZE);
drivers/media/pci/solo6x10/solo6x10-core.c
348
SOLO_EREF_EXT_ADDR(solo_dev),
drivers/media/pci/solo6x10/solo6x10-core.c
349
SOLO_EREF_EXT_AREA(solo_dev),
drivers/media/pci/solo6x10/solo6x10-core.c
351
SOLO_EREF_EXT_AREA(solo_dev) / SOLO_EREF_EXT_SIZE);
drivers/media/pci/solo6x10/solo6x10-core.c
354
SOLO_MP4E_EXT_ADDR(solo_dev),
drivers/media/pci/solo6x10/solo6x10-core.c
355
SOLO_MP4E_EXT_SIZE(solo_dev));
drivers/media/pci/solo6x10/solo6x10-core.c
358
SOLO_JPEG_EXT_ADDR(solo_dev),
drivers/media/pci/solo6x10/solo6x10-core.c
359
SOLO_JPEG_EXT_SIZE(solo_dev));
drivers/media/pci/solo6x10/solo6x10-core.c
369
struct solo_dev *solo_dev =
drivers/media/pci/solo6x10/solo6x10-core.c
370
container_of(dev, struct solo_dev, dev);
drivers/media/pci/solo6x10/solo6x10-core.c
371
const int size = solo_dev->sdram_size;
drivers/media/pci/solo6x10/solo6x10-core.c
379
if (solo_p2m_dma(solo_dev, 0, buf, off, count, 0, 0))
drivers/media/pci/solo6x10/solo6x10-core.c
39
static void solo_set_time(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-core.c
401
static int solo_sysfs_init(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-core.c
403
struct bin_attribute *sdram_attr = &solo_dev->sdram_attr;
drivers/media/pci/solo6x10/solo6x10-core.c
404
struct device *dev = &solo_dev->dev;
drivers/media/pci/solo6x10/solo6x10-core.c
408
if (solo_dev->type == SOLO_DEV_6110)
drivers/media/pci/solo6x10/solo6x10-core.c
414
dev->parent = &solo_dev->pdev->dev;
drivers/media/pci/solo6x10/solo6x10-core.c
415
set_dev_node(dev, dev_to_node(&solo_dev->pdev->dev));
drivers/media/pci/solo6x10/solo6x10-core.c
416
dev_set_name(dev, "%s-%d-%d", driver, solo_dev->vfd->num,
drivers/media/pci/solo6x10/solo6x10-core.c
417
solo_dev->nr_chans);
drivers/media/pci/solo6x10/solo6x10-core.c
436
sdram_attr->size = solo_dev->sdram_size;
drivers/media/pci/solo6x10/solo6x10-core.c
448
struct solo_dev *solo_dev;
drivers/media/pci/solo6x10/solo6x10-core.c
452
solo_dev = kzalloc_obj(*solo_dev);
drivers/media/pci/solo6x10/solo6x10-core.c
453
if (solo_dev == NULL)
drivers/media/pci/solo6x10/solo6x10-core.c
46
solo_reg_write(solo_dev, SOLO_TIMER_SEC, (u32)ts.tv_sec);
drivers/media/pci/solo6x10/solo6x10-core.c
461
solo_dev->type = id->driver_data;
drivers/media/pci/solo6x10/solo6x10-core.c
462
solo_dev->pdev = pdev;
drivers/media/pci/solo6x10/solo6x10-core.c
463
ret = v4l2_device_register(&pdev->dev, &solo_dev->v4l2_dev);
drivers/media/pci/solo6x10/solo6x10-core.c
468
solo_dev->p2m_jiffies = msecs_to_jiffies(100);
drivers/media/pci/solo6x10/solo6x10-core.c
47
solo_reg_write(solo_dev, SOLO_TIMER_USEC, (u32)ts.tv_nsec / NSEC_PER_USEC);
drivers/media/pci/solo6x10/solo6x10-core.c
480
solo_dev->reg_base = pcim_iomap_region(pdev, 0, SOLO6X10_NAME);
drivers/media/pci/solo6x10/solo6x10-core.c
481
ret = PTR_ERR_OR_ZERO(solo_dev->reg_base);
drivers/media/pci/solo6x10/solo6x10-core.c
485
chip_id = solo_reg_read(solo_dev, SOLO_CHIP_OPTION) &
drivers/media/pci/solo6x10/solo6x10-core.c
489
solo_dev->nr_chans = 16;
drivers/media/pci/solo6x10/solo6x10-core.c
490
solo_dev->nr_ext = 5;
drivers/media/pci/solo6x10/solo6x10-core.c
493
solo_dev->nr_chans = 8;
drivers/media/pci/solo6x10/solo6x10-core.c
494
solo_dev->nr_ext = 2;
drivers/media/pci/solo6x10/solo6x10-core.c
50
static void solo_timer_sync(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-core.c
501
solo_dev->nr_chans = 4;
drivers/media/pci/solo6x10/solo6x10-core.c
502
solo_dev->nr_ext = 1;
drivers/media/pci/solo6x10/solo6x10-core.c
506
solo_irq_off(solo_dev, ~0);
drivers/media/pci/solo6x10/solo6x10-core.c
509
if (solo_dev->type == SOLO_DEV_6010) {
drivers/media/pci/solo6x10/solo6x10-core.c
510
solo_dev->clock_mhz = 108;
drivers/media/pci/solo6x10/solo6x10-core.c
511
solo_dev->sys_config = SOLO_SYS_CFG_SDRAM64BIT
drivers/media/pci/solo6x10/solo6x10-core.c
513
| SOLO_SYS_CFG_FEEDBACKDIV(solo_dev->clock_mhz * 2 - 2)
drivers/media/pci/solo6x10/solo6x10-core.c
515
solo_reg_write(solo_dev, SOLO_SYS_CFG, solo_dev->sys_config);
drivers/media/pci/solo6x10/solo6x10-core.c
519
solo_dev->clock_mhz = 135;
drivers/media/pci/solo6x10/solo6x10-core.c
521
if (solo_dev->clock_mhz < 125) {
drivers/media/pci/solo6x10/solo6x10-core.c
523
divf = (solo_dev->clock_mhz * 4) / 3 - 1;
drivers/media/pci/solo6x10/solo6x10-core.c
526
divf = (solo_dev->clock_mhz * 2) / 3 - 1;
drivers/media/pci/solo6x10/solo6x10-core.c
529
solo_reg_write(solo_dev, SOLO_PLL_CONFIG,
drivers/media/pci/solo6x10/solo6x10-core.c
536
solo_dev->sys_config = SOLO_SYS_CFG_SDRAM64BIT;
drivers/media/pci/solo6x10/solo6x10-core.c
539
solo_reg_write(solo_dev, SOLO_SYS_CFG, solo_dev->sys_config);
drivers/media/pci/solo6x10/solo6x10-core.c
540
solo_reg_write(solo_dev, SOLO_TIMER_CLOCK_NUM,
drivers/media/pci/solo6x10/solo6x10-core.c
541
solo_dev->clock_mhz - 1);
drivers/media/pci/solo6x10/solo6x10-core.c
547
SOLO6X10_NAME, solo_dev);
drivers/media/pci/solo6x10/solo6x10-core.c
552
solo_irq_on(solo_dev, SOLO_IRQ_PCI_ERR);
drivers/media/pci/solo6x10/solo6x10-core.c
554
ret = solo_i2c_init(solo_dev);
drivers/media/pci/solo6x10/solo6x10-core.c
559
solo_reg_write(solo_dev, SOLO_DMA_CTRL,
drivers/media/pci/solo6x10/solo6x10-core.c
56
if (solo_dev->type != SOLO_DEV_6110)
drivers/media/pci/solo6x10/solo6x10-core.c
567
solo_reg_write(solo_dev, SOLO_DMA_CTRL1,
drivers/media/pci/solo6x10/solo6x10-core.c
568
solo_dev->type == SOLO_DEV_6010 ? 0x100 : 0x300);
drivers/media/pci/solo6x10/solo6x10-core.c
570
if (solo_dev->type != SOLO_DEV_6010) {
drivers/media/pci/solo6x10/solo6x10-core.c
571
solo_dev->usec_lsb = 0x3f;
drivers/media/pci/solo6x10/solo6x10-core.c
572
solo_set_time(solo_dev);
drivers/media/pci/solo6x10/solo6x10-core.c
576
solo_reg_write(solo_dev, SOLO_WATCHDOG, 0);
drivers/media/pci/solo6x10/solo6x10-core.c
580
ret = solo_p2m_init(solo_dev);
drivers/media/pci/solo6x10/solo6x10-core.c
584
ret = solo_disp_init(solo_dev);
drivers/media/pci/solo6x10/solo6x10-core.c
588
ret = solo_gpio_init(solo_dev);
drivers/media/pci/solo6x10/solo6x10-core.c
59
if (++solo_dev->time_sync < 60)
drivers/media/pci/solo6x10/solo6x10-core.c
592
ret = solo_tw28_init(solo_dev);
drivers/media/pci/solo6x10/solo6x10-core.c
596
ret = solo_v4l2_init(solo_dev, video_nr);
drivers/media/pci/solo6x10/solo6x10-core.c
600
ret = solo_enc_init(solo_dev);
drivers/media/pci/solo6x10/solo6x10-core.c
604
ret = solo_enc_v4l2_init(solo_dev, video_nr);
drivers/media/pci/solo6x10/solo6x10-core.c
608
ret = solo_g723_init(solo_dev);
drivers/media/pci/solo6x10/solo6x10-core.c
612
ret = solo_sysfs_init(solo_dev);
drivers/media/pci/solo6x10/solo6x10-core.c
617
solo_dev->p2m_jiffies = msecs_to_jiffies(20);
drivers/media/pci/solo6x10/solo6x10-core.c
62
solo_dev->time_sync = 0;
drivers/media/pci/solo6x10/solo6x10-core.c
622
free_solo_dev(solo_dev);
drivers/media/pci/solo6x10/solo6x10-core.c
629
struct solo_dev *solo_dev = container_of(v4l2_dev, struct solo_dev, v4l2_dev);
drivers/media/pci/solo6x10/solo6x10-core.c
631
free_solo_dev(solo_dev);
drivers/media/pci/solo6x10/solo6x10-core.c
64
sec = solo_reg_read(solo_dev, SOLO_TIMER_SEC);
drivers/media/pci/solo6x10/solo6x10-core.c
65
usec = solo_reg_read(solo_dev, SOLO_TIMER_USEC);
drivers/media/pci/solo6x10/solo6x10-core.c
74
solo_set_time(solo_dev);
drivers/media/pci/solo6x10/solo6x10-core.c
76
long usec_lsb = solo_dev->usec_lsb;
drivers/media/pci/solo6x10/solo6x10-core.c
84
solo_dev->usec_lsb = usec_lsb;
drivers/media/pci/solo6x10/solo6x10-core.c
85
solo_reg_write(solo_dev, SOLO_TIMER_USEC_LSB,
drivers/media/pci/solo6x10/solo6x10-core.c
86
solo_dev->usec_lsb);
drivers/media/pci/solo6x10/solo6x10-core.c
92
struct solo_dev *solo_dev = data;
drivers/media/pci/solo6x10/solo6x10-core.c
96
status = solo_reg_read(solo_dev, SOLO_IRQ_STAT);
drivers/media/pci/solo6x10/solo6x10-disp.c
109
static void solo_vout_config(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-disp.c
111
solo_dev->vout_hstart = 6;
drivers/media/pci/solo6x10/solo6x10-disp.c
112
solo_dev->vout_vstart = 8;
drivers/media/pci/solo6x10/solo6x10-disp.c
114
solo_reg_write(solo_dev, SOLO_VO_FMT_ENC,
drivers/media/pci/solo6x10/solo6x10-disp.c
115
solo_dev->video_type |
drivers/media/pci/solo6x10/solo6x10-disp.c
122
solo_reg_write(solo_dev, SOLO_VO_ACT_H,
drivers/media/pci/solo6x10/solo6x10-disp.c
123
SOLO_VO_H_START(solo_dev->vout_hstart) |
drivers/media/pci/solo6x10/solo6x10-disp.c
124
SOLO_VO_H_STOP(solo_dev->vout_hstart +
drivers/media/pci/solo6x10/solo6x10-disp.c
125
solo_dev->video_hsize));
drivers/media/pci/solo6x10/solo6x10-disp.c
127
solo_reg_write(solo_dev, SOLO_VO_ACT_V,
drivers/media/pci/solo6x10/solo6x10-disp.c
128
SOLO_VO_V_START(solo_dev->vout_vstart) |
drivers/media/pci/solo6x10/solo6x10-disp.c
129
SOLO_VO_V_STOP(solo_dev->vout_vstart +
drivers/media/pci/solo6x10/solo6x10-disp.c
130
solo_dev->video_vsize));
drivers/media/pci/solo6x10/solo6x10-disp.c
132
solo_reg_write(solo_dev, SOLO_VO_RANGE_HV,
drivers/media/pci/solo6x10/solo6x10-disp.c
133
SOLO_VO_H_LEN(solo_dev->video_hsize) |
drivers/media/pci/solo6x10/solo6x10-disp.c
134
SOLO_VO_V_LEN(solo_dev->video_vsize));
drivers/media/pci/solo6x10/solo6x10-disp.c
137
solo_reg_write(solo_dev, SOLO_VO_BORDER_LINE_COLOR,
drivers/media/pci/solo6x10/solo6x10-disp.c
139
solo_reg_write(solo_dev, SOLO_VO_BORDER_FILL_COLOR,
drivers/media/pci/solo6x10/solo6x10-disp.c
141
solo_reg_write(solo_dev, SOLO_VO_BKG_COLOR,
drivers/media/pci/solo6x10/solo6x10-disp.c
144
solo_reg_write(solo_dev, SOLO_VO_DISP_ERASE, SOLO_VO_DISP_ERASE_ON);
drivers/media/pci/solo6x10/solo6x10-disp.c
146
solo_reg_write(solo_dev, SOLO_VI_WIN_SW, 0);
drivers/media/pci/solo6x10/solo6x10-disp.c
148
solo_reg_write(solo_dev, SOLO_VO_ZOOM_CTRL, 0);
drivers/media/pci/solo6x10/solo6x10-disp.c
149
solo_reg_write(solo_dev, SOLO_VO_FREEZE_CTRL, 0);
drivers/media/pci/solo6x10/solo6x10-disp.c
151
solo_reg_write(solo_dev, SOLO_VO_DISP_CTRL, SOLO_VO_DISP_ON |
drivers/media/pci/solo6x10/solo6x10-disp.c
156
solo_vout_config_cursor(solo_dev);
drivers/media/pci/solo6x10/solo6x10-disp.c
159
solo_reg_write(solo_dev, SOLO_VI_CH_ENA,
drivers/media/pci/solo6x10/solo6x10-disp.c
160
(1 << solo_dev->nr_chans) - 1);
drivers/media/pci/solo6x10/solo6x10-disp.c
163
static int solo_dma_vin_region(struct solo_dev *solo_dev, u32 off,
drivers/media/pci/solo6x10/solo6x10-disp.c
178
ret = solo_p2m_dma(solo_dev, 1, buf,
drivers/media/pci/solo6x10/solo6x10-disp.c
179
SOLO_MOTION_EXT_ADDR(solo_dev) + off + i,
drivers/media/pci/solo6x10/solo6x10-disp.c
190
int solo_set_motion_threshold(struct solo_dev *solo_dev, u8 ch, u16 val)
drivers/media/pci/solo6x10/solo6x10-disp.c
192
if (ch > solo_dev->nr_chans)
drivers/media/pci/solo6x10/solo6x10-disp.c
195
return solo_dma_vin_region(solo_dev, SOLO_MOT_FLAG_AREA +
drivers/media/pci/solo6x10/solo6x10-disp.c
200
int solo_set_motion_block(struct solo_dev *solo_dev, u8 ch,
drivers/media/pci/solo6x10/solo6x10-disp.c
215
ret |= solo_p2m_dma(solo_dev, 1, buf,
drivers/media/pci/solo6x10/solo6x10-disp.c
216
SOLO_MOTION_EXT_ADDR(solo_dev) + off + y * size,
drivers/media/pci/solo6x10/solo6x10-disp.c
227
static void solo_motion_config(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-disp.c
231
for (i = 0; i < solo_dev->nr_chans; i++) {
drivers/media/pci/solo6x10/solo6x10-disp.c
233
solo_dma_vin_region(solo_dev, i * SOLO_MOT_FLAG_SIZE, 0x0000,
drivers/media/pci/solo6x10/solo6x10-disp.c
237
solo_dma_vin_region(solo_dev, SOLO_MOT_FLAG_AREA +
drivers/media/pci/solo6x10/solo6x10-disp.c
243
solo_set_motion_threshold(solo_dev, i, SOLO_DEF_MOT_THRESH);
drivers/media/pci/solo6x10/solo6x10-disp.c
247
solo_reg_write(solo_dev, SOLO_VI_MOT_ADR, SOLO_VI_MOTION_EN(0) |
drivers/media/pci/solo6x10/solo6x10-disp.c
248
(SOLO_MOTION_EXT_ADDR(solo_dev) >> 16));
drivers/media/pci/solo6x10/solo6x10-disp.c
249
solo_reg_write(solo_dev, SOLO_VI_MOT_CTRL,
drivers/media/pci/solo6x10/solo6x10-disp.c
251
SOLO_VI_MOTION_SAMPLE_LENGTH(solo_dev->video_hsize / 16)
drivers/media/pci/solo6x10/solo6x10-disp.c
255
solo_reg_write(solo_dev, SOLO_VI_MOTION_BORDER, 0);
drivers/media/pci/solo6x10/solo6x10-disp.c
256
solo_reg_write(solo_dev, SOLO_VI_MOTION_BAR, 0);
drivers/media/pci/solo6x10/solo6x10-disp.c
259
int solo_disp_init(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-disp.c
263
solo_dev->video_hsize = 704;
drivers/media/pci/solo6x10/solo6x10-disp.c
264
if (solo_dev->video_type == SOLO_VO_FMT_TYPE_NTSC) {
drivers/media/pci/solo6x10/solo6x10-disp.c
265
solo_dev->video_vsize = 240;
drivers/media/pci/solo6x10/solo6x10-disp.c
266
solo_dev->fps = 30;
drivers/media/pci/solo6x10/solo6x10-disp.c
268
solo_dev->video_vsize = 288;
drivers/media/pci/solo6x10/solo6x10-disp.c
269
solo_dev->fps = 25;
drivers/media/pci/solo6x10/solo6x10-disp.c
272
solo_vin_config(solo_dev);
drivers/media/pci/solo6x10/solo6x10-disp.c
273
solo_motion_config(solo_dev);
drivers/media/pci/solo6x10/solo6x10-disp.c
274
solo_vout_config(solo_dev);
drivers/media/pci/solo6x10/solo6x10-disp.c
276
for (i = 0; i < solo_dev->nr_chans; i++)
drivers/media/pci/solo6x10/solo6x10-disp.c
277
solo_reg_write(solo_dev, SOLO_VI_WIN_ON(i), 1);
drivers/media/pci/solo6x10/solo6x10-disp.c
282
void solo_disp_exit(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-disp.c
286
solo_reg_write(solo_dev, SOLO_VO_DISP_CTRL, 0);
drivers/media/pci/solo6x10/solo6x10-disp.c
287
solo_reg_write(solo_dev, SOLO_VO_ZOOM_CTRL, 0);
drivers/media/pci/solo6x10/solo6x10-disp.c
288
solo_reg_write(solo_dev, SOLO_VO_FREEZE_CTRL, 0);
drivers/media/pci/solo6x10/solo6x10-disp.c
29
static void solo_vin_config(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-disp.c
290
for (i = 0; i < solo_dev->nr_chans; i++) {
drivers/media/pci/solo6x10/solo6x10-disp.c
291
solo_reg_write(solo_dev, SOLO_VI_WIN_CTRL0(i), 0);
drivers/media/pci/solo6x10/solo6x10-disp.c
292
solo_reg_write(solo_dev, SOLO_VI_WIN_CTRL1(i), 0);
drivers/media/pci/solo6x10/solo6x10-disp.c
293
solo_reg_write(solo_dev, SOLO_VI_WIN_ON(i), 0);
drivers/media/pci/solo6x10/solo6x10-disp.c
298
solo_reg_write(solo_dev, SOLO_VO_BORDER_X(i), 0);
drivers/media/pci/solo6x10/solo6x10-disp.c
301
solo_reg_write(solo_dev, SOLO_VO_BORDER_Y(i), 0);
drivers/media/pci/solo6x10/solo6x10-disp.c
303
solo_reg_write(solo_dev, SOLO_VO_BORDER_LINE_MASK, 0);
drivers/media/pci/solo6x10/solo6x10-disp.c
304
solo_reg_write(solo_dev, SOLO_VO_BORDER_FILL_MASK, 0);
drivers/media/pci/solo6x10/solo6x10-disp.c
306
solo_reg_write(solo_dev, SOLO_VO_RECTANGLE_CTRL(0), 0);
drivers/media/pci/solo6x10/solo6x10-disp.c
307
solo_reg_write(solo_dev, SOLO_VO_RECTANGLE_START(0), 0);
drivers/media/pci/solo6x10/solo6x10-disp.c
308
solo_reg_write(solo_dev, SOLO_VO_RECTANGLE_STOP(0), 0);
drivers/media/pci/solo6x10/solo6x10-disp.c
31
solo_dev->vin_hstart = 8;
drivers/media/pci/solo6x10/solo6x10-disp.c
310
solo_reg_write(solo_dev, SOLO_VO_RECTANGLE_CTRL(1), 0);
drivers/media/pci/solo6x10/solo6x10-disp.c
311
solo_reg_write(solo_dev, SOLO_VO_RECTANGLE_START(1), 0);
drivers/media/pci/solo6x10/solo6x10-disp.c
312
solo_reg_write(solo_dev, SOLO_VO_RECTANGLE_STOP(1), 0);
drivers/media/pci/solo6x10/solo6x10-disp.c
32
solo_dev->vin_vstart = 2;
drivers/media/pci/solo6x10/solo6x10-disp.c
34
solo_reg_write(solo_dev, SOLO_SYS_VCLK,
drivers/media/pci/solo6x10/solo6x10-disp.c
45
solo_reg_write(solo_dev, SOLO_VI_ACT_I_P,
drivers/media/pci/solo6x10/solo6x10-disp.c
46
SOLO_VI_H_START(solo_dev->vin_hstart) |
drivers/media/pci/solo6x10/solo6x10-disp.c
47
SOLO_VI_V_START(solo_dev->vin_vstart) |
drivers/media/pci/solo6x10/solo6x10-disp.c
48
SOLO_VI_V_STOP(solo_dev->vin_vstart +
drivers/media/pci/solo6x10/solo6x10-disp.c
49
solo_dev->video_vsize));
drivers/media/pci/solo6x10/solo6x10-disp.c
51
solo_reg_write(solo_dev, SOLO_VI_ACT_I_S,
drivers/media/pci/solo6x10/solo6x10-disp.c
52
SOLO_VI_H_START(solo_dev->vout_hstart) |
drivers/media/pci/solo6x10/solo6x10-disp.c
53
SOLO_VI_V_START(solo_dev->vout_vstart) |
drivers/media/pci/solo6x10/solo6x10-disp.c
54
SOLO_VI_V_STOP(solo_dev->vout_vstart +
drivers/media/pci/solo6x10/solo6x10-disp.c
55
solo_dev->video_vsize));
drivers/media/pci/solo6x10/solo6x10-disp.c
57
solo_reg_write(solo_dev, SOLO_VI_ACT_P,
drivers/media/pci/solo6x10/solo6x10-disp.c
62
solo_reg_write(solo_dev, SOLO_VI_CH_FORMAT,
drivers/media/pci/solo6x10/solo6x10-disp.c
66
if (solo_dev->type == SOLO_DEV_6010)
drivers/media/pci/solo6x10/solo6x10-disp.c
67
solo_reg_write(solo_dev, SOLO_VI_FMT_CFG, 0);
drivers/media/pci/solo6x10/solo6x10-disp.c
69
solo_reg_write(solo_dev, SOLO_VI_FMT_CFG, 16 << 22);
drivers/media/pci/solo6x10/solo6x10-disp.c
71
solo_reg_write(solo_dev, SOLO_VI_PAGE_SW, 2);
drivers/media/pci/solo6x10/solo6x10-disp.c
73
if (solo_dev->video_type == SOLO_VO_FMT_TYPE_NTSC) {
drivers/media/pci/solo6x10/solo6x10-disp.c
74
solo_reg_write(solo_dev, SOLO_VI_PB_CONFIG,
drivers/media/pci/solo6x10/solo6x10-disp.c
76
solo_reg_write(solo_dev, SOLO_VI_PB_RANGE_HV,
drivers/media/pci/solo6x10/solo6x10-disp.c
78
solo_reg_write(solo_dev, SOLO_VI_PB_ACT_V,
drivers/media/pci/solo6x10/solo6x10-disp.c
82
solo_reg_write(solo_dev, SOLO_VI_PB_CONFIG,
drivers/media/pci/solo6x10/solo6x10-disp.c
84
solo_reg_write(solo_dev, SOLO_VI_PB_RANGE_HV,
drivers/media/pci/solo6x10/solo6x10-disp.c
86
solo_reg_write(solo_dev, SOLO_VI_PB_ACT_V,
drivers/media/pci/solo6x10/solo6x10-disp.c
90
solo_reg_write(solo_dev, SOLO_VI_PB_ACT_H, SOLO_VI_PB_HSTART(16) |
drivers/media/pci/solo6x10/solo6x10-disp.c
94
static void solo_vout_config_cursor(struct solo_dev *dev)
drivers/media/pci/solo6x10/solo6x10-eeprom.c
100
solo_eeprom_cmd(solo_dev, read_cmd);
drivers/media/pci/solo6x10/solo6x10-eeprom.c
103
solo_eeprom_reg_write(solo_dev, SOLO_EEPROM_ENABLE |
drivers/media/pci/solo6x10/solo6x10-eeprom.c
105
retval = (retval << 1) | solo_eeprom_reg_read(solo_dev);
drivers/media/pci/solo6x10/solo6x10-eeprom.c
106
solo_eeprom_reg_write(solo_dev, SOLO_EEPROM_ENABLE);
drivers/media/pci/solo6x10/solo6x10-eeprom.c
109
solo_eeprom_reg_write(solo_dev, ~EE_CS);
drivers/media/pci/solo6x10/solo6x10-eeprom.c
114
int solo_eeprom_write(struct solo_dev *solo_dev, int loc,
drivers/media/pci/solo6x10/solo6x10-eeprom.c
121
solo_eeprom_cmd(solo_dev, write_cmd);
drivers/media/pci/solo6x10/solo6x10-eeprom.c
126
solo_eeprom_reg_write(solo_dev, EE_ENB);
drivers/media/pci/solo6x10/solo6x10-eeprom.c
127
solo_eeprom_reg_write(solo_dev,
drivers/media/pci/solo6x10/solo6x10-eeprom.c
131
solo_eeprom_reg_write(solo_dev, EE_ENB);
drivers/media/pci/solo6x10/solo6x10-eeprom.c
132
solo_eeprom_reg_write(solo_dev, ~EE_CS);
drivers/media/pci/solo6x10/solo6x10-eeprom.c
133
solo_eeprom_reg_write(solo_dev, EE_ENB);
drivers/media/pci/solo6x10/solo6x10-eeprom.c
136
retval = solo_eeprom_reg_read(solo_dev);
drivers/media/pci/solo6x10/solo6x10-eeprom.c
138
solo_eeprom_reg_write(solo_dev, ~EE_CS);
drivers/media/pci/solo6x10/solo6x10-eeprom.c
26
#define eeprom_delay() solo_reg_read(solo_dev, SOLO_EEPROM_CTRL)
drivers/media/pci/solo6x10/solo6x10-eeprom.c
31
ret = solo_eeprom_reg_read(solo_dev); \
drivers/media/pci/solo6x10/solo6x10-eeprom.c
43
static unsigned int solo_eeprom_reg_read(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-eeprom.c
45
return solo_reg_read(solo_dev, SOLO_EEPROM_CTRL) & EE_DATA_READ;
drivers/media/pci/solo6x10/solo6x10-eeprom.c
48
static void solo_eeprom_reg_write(struct solo_dev *solo_dev, u32 data)
drivers/media/pci/solo6x10/solo6x10-eeprom.c
50
solo_reg_write(solo_dev, SOLO_EEPROM_CTRL, data);
drivers/media/pci/solo6x10/solo6x10-eeprom.c
54
static void solo_eeprom_cmd(struct solo_dev *solo_dev, int cmd)
drivers/media/pci/solo6x10/solo6x10-eeprom.c
58
solo_eeprom_reg_write(solo_dev, SOLO_EEPROM_ACCESS_EN);
drivers/media/pci/solo6x10/solo6x10-eeprom.c
59
solo_eeprom_reg_write(solo_dev, SOLO_EEPROM_ENABLE);
drivers/media/pci/solo6x10/solo6x10-eeprom.c
64
solo_eeprom_reg_write(solo_dev, SOLO_EEPROM_ENABLE | dataval);
drivers/media/pci/solo6x10/solo6x10-eeprom.c
65
solo_eeprom_reg_write(solo_dev, SOLO_EEPROM_ENABLE |
drivers/media/pci/solo6x10/solo6x10-eeprom.c
69
solo_eeprom_reg_write(solo_dev, SOLO_EEPROM_ENABLE);
drivers/media/pci/solo6x10/solo6x10-eeprom.c
72
unsigned int solo_eeprom_ewen(struct solo_dev *solo_dev, int w_en)
drivers/media/pci/solo6x10/solo6x10-eeprom.c
78
solo_eeprom_cmd(solo_dev, ewen_cmd);
drivers/media/pci/solo6x10/solo6x10-eeprom.c
81
solo_eeprom_reg_write(solo_dev, SOLO_EEPROM_ENABLE |
drivers/media/pci/solo6x10/solo6x10-eeprom.c
83
retval = (retval << 1) | solo_eeprom_reg_read(solo_dev);
drivers/media/pci/solo6x10/solo6x10-eeprom.c
84
solo_eeprom_reg_write(solo_dev, SOLO_EEPROM_ENABLE);
drivers/media/pci/solo6x10/solo6x10-eeprom.c
85
retval = (retval << 1) | solo_eeprom_reg_read(solo_dev);
drivers/media/pci/solo6x10/solo6x10-eeprom.c
88
solo_eeprom_reg_write(solo_dev, ~EE_CS);
drivers/media/pci/solo6x10/solo6x10-eeprom.c
89
retval = (retval << 1) | solo_eeprom_reg_read(solo_dev);
drivers/media/pci/solo6x10/solo6x10-eeprom.c
94
__be16 solo_eeprom_read(struct solo_dev *solo_dev, int loc)
drivers/media/pci/solo6x10/solo6x10-enc.c
100
solo_reg_write(solo_dev, SOLO_VE_OSD_CLR,
drivers/media/pci/solo6x10/solo6x10-enc.c
103
if (solo_dev->type == SOLO_DEV_6010)
drivers/media/pci/solo6x10/solo6x10-enc.c
104
solo_reg_write(solo_dev, SOLO_VE_OSD_OPT,
drivers/media/pci/solo6x10/solo6x10-enc.c
107
solo_reg_write(solo_dev, SOLO_VE_OSD_OPT, SOLO_VE_OSD_V_DOUBLE
drivers/media/pci/solo6x10/solo6x10-enc.c
111
buf = kzalloc(SOLO_EOSD_EXT_SIZE(solo_dev), GFP_KERNEL);
drivers/media/pci/solo6x10/solo6x10-enc.c
115
for (i = 0; i < solo_dev->nr_chans; i++) {
drivers/media/pci/solo6x10/solo6x10-enc.c
116
solo_p2m_dma(solo_dev, 1, buf,
drivers/media/pci/solo6x10/solo6x10-enc.c
118
(SOLO_EOSD_EXT_SIZE(solo_dev) * i),
drivers/media/pci/solo6x10/solo6x10-enc.c
119
SOLO_EOSD_EXT_SIZE(solo_dev), 0, 0);
drivers/media/pci/solo6x10/solo6x10-enc.c
129
struct solo_dev *solo_dev = solo_enc->solo_dev;
drivers/media/pci/solo6x10/solo6x10-enc.c
140
reg = solo_reg_read(solo_dev, SOLO_VE_OSD_CH);
drivers/media/pci/solo6x10/solo6x10-enc.c
157
solo_p2m_dma(solo_dev, 1, buf,
drivers/media/pci/solo6x10/solo6x10-enc.c
158
SOLO_EOSD_EXT_ADDR_CHAN(solo_dev, solo_enc->ch),
drivers/media/pci/solo6x10/solo6x10-enc.c
165
solo_reg_write(solo_dev, SOLO_VE_OSD_CH, reg);
drivers/media/pci/solo6x10/solo6x10-enc.c
172
void solo_s_jpeg_qp(struct solo_dev *solo_dev, unsigned int ch,
drivers/media/pci/solo6x10/solo6x10-enc.c
181
if (solo_dev->type == SOLO_DEV_6010)
drivers/media/pci/solo6x10/solo6x10-enc.c
194
spin_lock_irqsave(&solo_dev->jpeg_qp_lock, flags);
drivers/media/pci/solo6x10/solo6x10-enc.c
196
solo_dev->jpeg_qp[idx] &= ~(3 << ch);
drivers/media/pci/solo6x10/solo6x10-enc.c
197
solo_dev->jpeg_qp[idx] |= (qp & 3) << ch;
drivers/media/pci/solo6x10/solo6x10-enc.c
199
solo_reg_write(solo_dev, reg, solo_dev->jpeg_qp[idx]);
drivers/media/pci/solo6x10/solo6x10-enc.c
201
spin_unlock_irqrestore(&solo_dev->jpeg_qp_lock, flags);
drivers/media/pci/solo6x10/solo6x10-enc.c
204
int solo_g_jpeg_qp(struct solo_dev *solo_dev, unsigned int ch)
drivers/media/pci/solo6x10/solo6x10-enc.c
208
if (solo_dev->type == SOLO_DEV_6010)
drivers/media/pci/solo6x10/solo6x10-enc.c
222
return (solo_dev->jpeg_qp[idx] >> ch) & 3;
drivers/media/pci/solo6x10/solo6x10-enc.c
227
static void solo_jpeg_config(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-enc.c
229
if (solo_dev->type == SOLO_DEV_6010) {
drivers/media/pci/solo6x10/solo6x10-enc.c
230
solo_reg_write(solo_dev, SOLO_VE_JPEG_QP_TBL,
drivers/media/pci/solo6x10/solo6x10-enc.c
233
solo_reg_write(solo_dev, SOLO_VE_JPEG_QP_TBL,
drivers/media/pci/solo6x10/solo6x10-enc.c
237
spin_lock_init(&solo_dev->jpeg_qp_lock);
drivers/media/pci/solo6x10/solo6x10-enc.c
24
static void solo_capture_config(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-enc.c
240
solo_dev->jpeg_qp[0] = solo_dev->jpeg_qp[1] = SOLO_QP_INIT;
drivers/media/pci/solo6x10/solo6x10-enc.c
241
solo_reg_write(solo_dev, SOLO_VE_JPEG_QP_CH_L, SOLO_QP_INIT);
drivers/media/pci/solo6x10/solo6x10-enc.c
242
solo_reg_write(solo_dev, SOLO_VE_JPEG_QP_CH_H, SOLO_QP_INIT);
drivers/media/pci/solo6x10/solo6x10-enc.c
244
solo_reg_write(solo_dev, SOLO_VE_JPEG_CFG,
drivers/media/pci/solo6x10/solo6x10-enc.c
245
(SOLO_JPEG_EXT_SIZE(solo_dev) & 0xffff0000) |
drivers/media/pci/solo6x10/solo6x10-enc.c
246
((SOLO_JPEG_EXT_ADDR(solo_dev) >> 16) & 0x0000ffff));
drivers/media/pci/solo6x10/solo6x10-enc.c
247
solo_reg_write(solo_dev, SOLO_VE_JPEG_CTRL, 0xffffffff);
drivers/media/pci/solo6x10/solo6x10-enc.c
248
if (solo_dev->type == SOLO_DEV_6110) {
drivers/media/pci/solo6x10/solo6x10-enc.c
249
solo_reg_write(solo_dev, SOLO_VE_JPEG_CFG1,
drivers/media/pci/solo6x10/solo6x10-enc.c
254
static void solo_mp4e_config(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-enc.c
259
solo_reg_write(solo_dev, SOLO_VE_CFG0,
drivers/media/pci/solo6x10/solo6x10-enc.c
261
SOLO_VE_BLOCK_SIZE(SOLO_MP4E_EXT_SIZE(solo_dev) >> 16) |
drivers/media/pci/solo6x10/solo6x10-enc.c
262
SOLO_VE_BLOCK_BASE(SOLO_MP4E_EXT_ADDR(solo_dev) >> 16));
drivers/media/pci/solo6x10/solo6x10-enc.c
267
if (solo_dev->type != SOLO_DEV_6010) {
drivers/media/pci/solo6x10/solo6x10-enc.c
269
(SOLO_MP4E_EXT_SIZE(solo_dev) >> 24) & 0x0f);
drivers/media/pci/solo6x10/solo6x10-enc.c
271
(SOLO_JPEG_EXT_SIZE(solo_dev) >> 24) & 0x0f);
drivers/media/pci/solo6x10/solo6x10-enc.c
273
solo_reg_write(solo_dev, SOLO_VE_CFG1, cfg);
drivers/media/pci/solo6x10/solo6x10-enc.c
275
solo_reg_write(solo_dev, SOLO_VE_WMRK_POLY, 0);
drivers/media/pci/solo6x10/solo6x10-enc.c
276
solo_reg_write(solo_dev, SOLO_VE_VMRK_INIT_KEY, 0);
drivers/media/pci/solo6x10/solo6x10-enc.c
277
solo_reg_write(solo_dev, SOLO_VE_WMRK_STRL, 0);
drivers/media/pci/solo6x10/solo6x10-enc.c
278
if (solo_dev->type == SOLO_DEV_6110)
drivers/media/pci/solo6x10/solo6x10-enc.c
279
solo_reg_write(solo_dev, SOLO_VE_WMRK_ENABLE, 0);
drivers/media/pci/solo6x10/solo6x10-enc.c
280
solo_reg_write(solo_dev, SOLO_VE_ENCRYP_POLY, 0);
drivers/media/pci/solo6x10/solo6x10-enc.c
281
solo_reg_write(solo_dev, SOLO_VE_ENCRYP_INIT, 0);
drivers/media/pci/solo6x10/solo6x10-enc.c
283
solo_reg_write(solo_dev, SOLO_VE_ATTR,
drivers/media/pci/solo6x10/solo6x10-enc.c
288
SOLO_DCT_INTERVAL(solo_dev->type == SOLO_DEV_6010 ? 9 : 10));
drivers/media/pci/solo6x10/solo6x10-enc.c
290
for (i = 0; i < solo_dev->nr_chans; i++) {
drivers/media/pci/solo6x10/solo6x10-enc.c
291
solo_reg_write(solo_dev, SOLO_VE_CH_REF_BASE(i),
drivers/media/pci/solo6x10/solo6x10-enc.c
292
(SOLO_EREF_EXT_ADDR(solo_dev) +
drivers/media/pci/solo6x10/solo6x10-enc.c
294
solo_reg_write(solo_dev, SOLO_VE_CH_REF_BASE_E(i),
drivers/media/pci/solo6x10/solo6x10-enc.c
295
(SOLO_EREF_EXT_ADDR(solo_dev) +
drivers/media/pci/solo6x10/solo6x10-enc.c
299
if (solo_dev->type == SOLO_DEV_6110) {
drivers/media/pci/solo6x10/solo6x10-enc.c
300
solo_reg_write(solo_dev, SOLO_VE_COMPT_MOT, 0x00040008);
drivers/media/pci/solo6x10/solo6x10-enc.c
302
for (i = 0; i < solo_dev->nr_chans; i++)
drivers/media/pci/solo6x10/solo6x10-enc.c
303
solo_reg_write(solo_dev, SOLO_VE_CH_MOT(i), 0x100);
drivers/media/pci/solo6x10/solo6x10-enc.c
307
int solo_enc_init(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-enc.c
31
solo_reg_write(solo_dev, SOLO_CAP_BASE,
drivers/media/pci/solo6x10/solo6x10-enc.c
311
solo_capture_config(solo_dev);
drivers/media/pci/solo6x10/solo6x10-enc.c
312
solo_mp4e_config(solo_dev);
drivers/media/pci/solo6x10/solo6x10-enc.c
313
solo_jpeg_config(solo_dev);
drivers/media/pci/solo6x10/solo6x10-enc.c
315
for (i = 0; i < solo_dev->nr_chans; i++) {
drivers/media/pci/solo6x10/solo6x10-enc.c
316
solo_reg_write(solo_dev, SOLO_CAP_CH_SCALE(i), 0);
drivers/media/pci/solo6x10/solo6x10-enc.c
317
solo_reg_write(solo_dev, SOLO_CAP_CH_COMP_ENA_E(i), 0);
drivers/media/pci/solo6x10/solo6x10-enc.c
32
SOLO_CAP_MAX_PAGE((SOLO_CAP_EXT_SIZE(solo_dev)
drivers/media/pci/solo6x10/solo6x10-enc.c
323
void solo_enc_exit(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-enc.c
327
for (i = 0; i < solo_dev->nr_chans; i++) {
drivers/media/pci/solo6x10/solo6x10-enc.c
328
solo_reg_write(solo_dev, SOLO_CAP_CH_SCALE(i), 0);
drivers/media/pci/solo6x10/solo6x10-enc.c
329
solo_reg_write(solo_dev, SOLO_CAP_CH_COMP_ENA_E(i), 0);
drivers/media/pci/solo6x10/solo6x10-enc.c
34
| SOLO_CAP_BASE_ADDR(SOLO_CAP_EXT_ADDR(solo_dev) >> 16));
drivers/media/pci/solo6x10/solo6x10-enc.c
37
if (solo_dev->type == SOLO_DEV_6110) {
drivers/media/pci/solo6x10/solo6x10-enc.c
40
solo_reg_write(solo_dev, SOLO_CAP_BTW,
drivers/media/pci/solo6x10/solo6x10-enc.c
44
solo_reg_write(solo_dev, SOLO_CAP_BTW,
drivers/media/pci/solo6x10/solo6x10-enc.c
50
width = solo_dev->video_hsize;
drivers/media/pci/solo6x10/solo6x10-enc.c
51
height = solo_dev->video_vsize;
drivers/media/pci/solo6x10/solo6x10-enc.c
52
solo_reg_write(solo_dev, SOLO_DIM_SCALE1,
drivers/media/pci/solo6x10/solo6x10-enc.c
58
width = solo_dev->video_hsize / 2;
drivers/media/pci/solo6x10/solo6x10-enc.c
59
height = solo_dev->video_vsize;
drivers/media/pci/solo6x10/solo6x10-enc.c
60
solo_reg_write(solo_dev, SOLO_DIM_SCALE2,
drivers/media/pci/solo6x10/solo6x10-enc.c
66
width = solo_dev->video_hsize / 2;
drivers/media/pci/solo6x10/solo6x10-enc.c
67
height = solo_dev->video_vsize / 2;
drivers/media/pci/solo6x10/solo6x10-enc.c
68
solo_reg_write(solo_dev, SOLO_DIM_SCALE3,
drivers/media/pci/solo6x10/solo6x10-enc.c
74
width = solo_dev->video_hsize / 3;
drivers/media/pci/solo6x10/solo6x10-enc.c
75
height = solo_dev->video_vsize / 3;
drivers/media/pci/solo6x10/solo6x10-enc.c
76
solo_reg_write(solo_dev, SOLO_DIM_SCALE4,
drivers/media/pci/solo6x10/solo6x10-enc.c
82
width = solo_dev->video_hsize / 4;
drivers/media/pci/solo6x10/solo6x10-enc.c
83
height = solo_dev->video_vsize / 2;
drivers/media/pci/solo6x10/solo6x10-enc.c
84
solo_reg_write(solo_dev, SOLO_DIM_SCALE5,
drivers/media/pci/solo6x10/solo6x10-enc.c
92
solo_reg_write(solo_dev, SOLO_DIM_PROG,
drivers/media/pci/solo6x10/solo6x10-enc.c
98
solo_reg_write(solo_dev, SOLO_VE_OSD_CH, 0);
drivers/media/pci/solo6x10/solo6x10-enc.c
99
solo_reg_write(solo_dev, SOLO_VE_OSD_BASE, SOLO_EOSD_EXT_ADDR >> 16);
drivers/media/pci/solo6x10/solo6x10-g723.c
120
struct solo_dev *solo_dev = snd_pcm_substream_chip(ss);
drivers/media/pci/solo6x10/solo6x10-g723.c
127
solo_pcm->g723_buf = dma_alloc_coherent(&solo_dev->pdev->dev,
drivers/media/pci/solo6x10/solo6x10-g723.c
135
solo_pcm->solo_dev = solo_dev;
drivers/media/pci/solo6x10/solo6x10-g723.c
151
snd_pcm_substream_chip(ss) = solo_pcm->solo_dev;
drivers/media/pci/solo6x10/solo6x10-g723.c
152
dma_free_coherent(&solo_pcm->solo_dev->pdev->dev, G723_PERIOD_BYTES,
drivers/media/pci/solo6x10/solo6x10-g723.c
162
struct solo_dev *solo_dev = solo_pcm->solo_dev;
drivers/media/pci/solo6x10/solo6x10-g723.c
171
if (atomic_inc_return(&solo_dev->snd_users) == 1)
drivers/media/pci/solo6x10/solo6x10-g723.c
172
solo_irq_on(solo_dev, SOLO_IRQ_G723);
drivers/media/pci/solo6x10/solo6x10-g723.c
179
if (atomic_dec_return(&solo_dev->snd_users) == 0)
drivers/media/pci/solo6x10/solo6x10-g723.c
180
solo_irq_off(solo_dev, SOLO_IRQ_G723);
drivers/media/pci/solo6x10/solo6x10-g723.c
201
struct solo_dev *solo_dev = solo_pcm->solo_dev;
drivers/media/pci/solo6x10/solo6x10-g723.c
202
snd_pcm_uframes_t idx = solo_reg_read(solo_dev, SOLO_AUDIO_STA) & 0x1f;
drivers/media/pci/solo6x10/solo6x10-g723.c
212
struct solo_dev *solo_dev = solo_pcm->solo_dev;
drivers/media/pci/solo6x10/solo6x10-g723.c
218
err = solo_p2m_dma_t(solo_dev, 0, solo_pcm->g723_dma,
drivers/media/pci/solo6x10/solo6x10-g723.c
219
SOLO_G723_EXT_ADDR(solo_dev) +
drivers/media/pci/solo6x10/solo6x10-g723.c
258
struct solo_dev *solo_dev = snd_kcontrol_chip(kcontrol);
drivers/media/pci/solo6x10/solo6x10-g723.c
261
value->value.integer.value[0] = tw28_get_audio_gain(solo_dev, ch);
drivers/media/pci/solo6x10/solo6x10-g723.c
269
struct solo_dev *solo_dev = snd_kcontrol_chip(kcontrol);
drivers/media/pci/solo6x10/solo6x10-g723.c
273
old_val = tw28_get_audio_gain(solo_dev, ch);
drivers/media/pci/solo6x10/solo6x10-g723.c
277
tw28_set_audio_gain(solo_dev, ch, value->value.integer.value[0]);
drivers/media/pci/solo6x10/solo6x10-g723.c
290
static int solo_snd_pcm_init(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-g723.c
292
struct snd_card *card = solo_dev->snd_card;
drivers/media/pci/solo6x10/solo6x10-g723.c
298
ret = snd_pcm_new(card, card->driver, 0, 0, solo_dev->nr_chans,
drivers/media/pci/solo6x10/solo6x10-g723.c
306
snd_pcm_chip(pcm) = solo_dev;
drivers/media/pci/solo6x10/solo6x10-g723.c
320
solo_dev->snd_pcm = pcm;
drivers/media/pci/solo6x10/solo6x10-g723.c
325
int solo_g723_init(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-g723.c
333
atomic_set(&solo_dev->snd_users, 0);
drivers/media/pci/solo6x10/solo6x10-g723.c
336
sprintf(name, "Softlogic%d", solo_dev->vfd->num);
drivers/media/pci/solo6x10/solo6x10-g723.c
338
ret = snd_card_new(&solo_dev->pdev->dev,
drivers/media/pci/solo6x10/solo6x10-g723.c
340
&solo_dev->snd_card);
drivers/media/pci/solo6x10/solo6x10-g723.c
344
card = solo_dev->snd_card;
drivers/media/pci/solo6x10/solo6x10-g723.c
349
pci_name(solo_dev->pdev), solo_dev->pdev->irq);
drivers/media/pci/solo6x10/solo6x10-g723.c
351
ret = snd_device_new(card, SNDRV_DEV_LOWLEVEL, solo_dev, &ops);
drivers/media/pci/solo6x10/solo6x10-g723.c
358
kctl.count = solo_dev->nr_chans;
drivers/media/pci/solo6x10/solo6x10-g723.c
360
ret = snd_ctl_add(card, snd_ctl_new1(&kctl, solo_dev));
drivers/media/pci/solo6x10/solo6x10-g723.c
364
ret = solo_snd_pcm_init(solo_dev);
drivers/media/pci/solo6x10/solo6x10-g723.c
372
solo_g723_config(solo_dev);
drivers/media/pci/solo6x10/solo6x10-g723.c
374
dev_info(&solo_dev->pdev->dev, "Alsa sound card as %s\n", name);
drivers/media/pci/solo6x10/solo6x10-g723.c
383
void solo_g723_exit(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-g723.c
385
if (!solo_dev->snd_card)
drivers/media/pci/solo6x10/solo6x10-g723.c
388
solo_reg_write(solo_dev, SOLO_AUDIO_CONTROL, 0);
drivers/media/pci/solo6x10/solo6x10-g723.c
389
solo_irq_off(solo_dev, SOLO_IRQ_G723);
drivers/media/pci/solo6x10/solo6x10-g723.c
391
snd_card_free(solo_dev->snd_card);
drivers/media/pci/solo6x10/solo6x10-g723.c
392
solo_dev->snd_card = NULL;
drivers/media/pci/solo6x10/solo6x10-g723.c
48
struct solo_dev *solo_dev;
drivers/media/pci/solo6x10/solo6x10-g723.c
53
static void solo_g723_config(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-g723.c
57
clk_div = (solo_dev->clock_mhz * 1000000)
drivers/media/pci/solo6x10/solo6x10-g723.c
60
solo_reg_write(solo_dev, SOLO_AUDIO_SAMPLE,
drivers/media/pci/solo6x10/solo6x10-g723.c
64
solo_reg_write(solo_dev, SOLO_AUDIO_FDMA_INTR,
drivers/media/pci/solo6x10/solo6x10-g723.c
67
| SOLO_AUDIO_FDMA_BASE(SOLO_G723_EXT_ADDR(solo_dev) >> 16));
drivers/media/pci/solo6x10/solo6x10-g723.c
69
solo_reg_write(solo_dev, SOLO_AUDIO_CONTROL,
drivers/media/pci/solo6x10/solo6x10-g723.c
76
void solo_g723_isr(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-g723.c
79
&solo_dev->snd_pcm->streams[SNDRV_PCM_STREAM_CAPTURE];
drivers/media/pci/solo6x10/solo6x10-g723.c
88
if (snd_pcm_substream_chip(ss) == solo_dev)
drivers/media/pci/solo6x10/solo6x10-gpio.c
101
struct solo_dev *solo_dev = gpiochip_get_data(chip);
drivers/media/pci/solo6x10/solo6x10-gpio.c
104
ret = solo_reg_read(solo_dev, SOLO_GPIO_CONFIG_0);
drivers/media/pci/solo6x10/solo6x10-gpio.c
107
ret = solo_reg_read(solo_dev, SOLO_GPIO_CONFIG_1);
drivers/media/pci/solo6x10/solo6x10-gpio.c
123
struct solo_dev *solo_dev = gpiochip_get_data(chip);
drivers/media/pci/solo6x10/solo6x10-gpio.c
125
ret = solo_reg_read(solo_dev, SOLO_GPIO_DATA_IN);
drivers/media/pci/solo6x10/solo6x10-gpio.c
133
struct solo_dev *solo_dev = gpiochip_get_data(chip);
drivers/media/pci/solo6x10/solo6x10-gpio.c
136
solo_gpio_set(solo_dev, 1 << (offset + 8));
drivers/media/pci/solo6x10/solo6x10-gpio.c
138
solo_gpio_clear(solo_dev, 1 << (offset + 8));
drivers/media/pci/solo6x10/solo6x10-gpio.c
144
int solo_gpio_init(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-gpio.c
150
solo_gpio_config(solo_dev);
drivers/media/pci/solo6x10/solo6x10-gpio.c
152
solo_dev->gpio_dev.label = SOLO6X10_NAME"_gpio";
drivers/media/pci/solo6x10/solo6x10-gpio.c
153
solo_dev->gpio_dev.parent = &solo_dev->pdev->dev;
drivers/media/pci/solo6x10/solo6x10-gpio.c
154
solo_dev->gpio_dev.owner = THIS_MODULE;
drivers/media/pci/solo6x10/solo6x10-gpio.c
155
solo_dev->gpio_dev.base = -1;
drivers/media/pci/solo6x10/solo6x10-gpio.c
156
solo_dev->gpio_dev.ngpio = 24;
drivers/media/pci/solo6x10/solo6x10-gpio.c
157
solo_dev->gpio_dev.can_sleep = 0;
drivers/media/pci/solo6x10/solo6x10-gpio.c
159
solo_dev->gpio_dev.get_direction = solo_gpiochip_get_direction;
drivers/media/pci/solo6x10/solo6x10-gpio.c
160
solo_dev->gpio_dev.get = solo_gpiochip_get;
drivers/media/pci/solo6x10/solo6x10-gpio.c
161
solo_dev->gpio_dev.set = solo_gpiochip_set;
drivers/media/pci/solo6x10/solo6x10-gpio.c
163
ret = gpiochip_add_data(&solo_dev->gpio_dev, solo_dev);
drivers/media/pci/solo6x10/solo6x10-gpio.c
166
solo_dev->gpio_dev.label = NULL;
drivers/media/pci/solo6x10/solo6x10-gpio.c
173
void solo_gpio_exit(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-gpio.c
176
if (solo_dev->gpio_dev.label) {
drivers/media/pci/solo6x10/solo6x10-gpio.c
177
gpiochip_remove(&solo_dev->gpio_dev);
drivers/media/pci/solo6x10/solo6x10-gpio.c
178
solo_dev->gpio_dev.label = NULL;
drivers/media/pci/solo6x10/solo6x10-gpio.c
181
solo_gpio_clear(solo_dev, 0x30);
drivers/media/pci/solo6x10/solo6x10-gpio.c
182
solo_gpio_config(solo_dev);
drivers/media/pci/solo6x10/solo6x10-gpio.c
19
static void solo_gpio_mode(struct solo_dev *solo_dev,
drivers/media/pci/solo6x10/solo6x10-gpio.c
25
ret = solo_reg_read(solo_dev, SOLO_GPIO_CONFIG_0);
drivers/media/pci/solo6x10/solo6x10-gpio.c
36
solo_reg_write(solo_dev, SOLO_GPIO_CONFIG_0, ret);
drivers/media/pci/solo6x10/solo6x10-gpio.c
39
ret = solo_reg_read(solo_dev, SOLO_GPIO_CONFIG_1);
drivers/media/pci/solo6x10/solo6x10-gpio.c
54
solo_reg_write(solo_dev, SOLO_GPIO_CONFIG_1, ret);
drivers/media/pci/solo6x10/solo6x10-gpio.c
57
static void solo_gpio_set(struct solo_dev *solo_dev, unsigned int value)
drivers/media/pci/solo6x10/solo6x10-gpio.c
59
solo_reg_write(solo_dev, SOLO_GPIO_DATA_OUT,
drivers/media/pci/solo6x10/solo6x10-gpio.c
60
solo_reg_read(solo_dev, SOLO_GPIO_DATA_OUT) | value);
drivers/media/pci/solo6x10/solo6x10-gpio.c
63
static void solo_gpio_clear(struct solo_dev *solo_dev, unsigned int value)
drivers/media/pci/solo6x10/solo6x10-gpio.c
65
solo_reg_write(solo_dev, SOLO_GPIO_DATA_OUT,
drivers/media/pci/solo6x10/solo6x10-gpio.c
66
solo_reg_read(solo_dev, SOLO_GPIO_DATA_OUT) & ~value);
drivers/media/pci/solo6x10/solo6x10-gpio.c
69
static void solo_gpio_config(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-gpio.c
72
solo_gpio_mode(solo_dev, 0x30, 1);
drivers/media/pci/solo6x10/solo6x10-gpio.c
73
solo_gpio_clear(solo_dev, 0x30);
drivers/media/pci/solo6x10/solo6x10-gpio.c
75
solo_gpio_set(solo_dev, 0x30);
drivers/media/pci/solo6x10/solo6x10-gpio.c
80
solo_gpio_mode(solo_dev, 0x0f, 2);
drivers/media/pci/solo6x10/solo6x10-gpio.c
83
solo_gpio_mode(solo_dev, 0xff00, 1);
drivers/media/pci/solo6x10/solo6x10-gpio.c
86
solo_gpio_clear(solo_dev, 0xff00);
drivers/media/pci/solo6x10/solo6x10-gpio.c
89
solo_gpio_mode(solo_dev, 0xffff0000, 0);
drivers/media/pci/solo6x10/solo6x10-i2c.c
100
solo_dev->i2c_state = IIC_STATE_STOP;
drivers/media/pci/solo6x10/solo6x10-i2c.c
101
wake_up(&solo_dev->i2c_wait);
drivers/media/pci/solo6x10/solo6x10-i2c.c
104
static int solo_i2c_handle_read(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-i2c.c
107
if (solo_dev->i2c_msg_ptr != solo_dev->i2c_msg->len) {
drivers/media/pci/solo6x10/solo6x10-i2c.c
108
solo_i2c_flush(solo_dev, 0);
drivers/media/pci/solo6x10/solo6x10-i2c.c
112
solo_dev->i2c_msg_ptr = 0;
drivers/media/pci/solo6x10/solo6x10-i2c.c
113
solo_dev->i2c_msg++;
drivers/media/pci/solo6x10/solo6x10-i2c.c
114
solo_dev->i2c_msg_num--;
drivers/media/pci/solo6x10/solo6x10-i2c.c
116
if (solo_dev->i2c_msg_num == 0) {
drivers/media/pci/solo6x10/solo6x10-i2c.c
117
solo_i2c_stop(solo_dev);
drivers/media/pci/solo6x10/solo6x10-i2c.c
121
if (!(solo_dev->i2c_msg->flags & I2C_M_NOSTART)) {
drivers/media/pci/solo6x10/solo6x10-i2c.c
122
solo_i2c_start(solo_dev);
drivers/media/pci/solo6x10/solo6x10-i2c.c
124
if (solo_dev->i2c_msg->flags & I2C_M_RD)
drivers/media/pci/solo6x10/solo6x10-i2c.c
127
solo_i2c_stop(solo_dev);
drivers/media/pci/solo6x10/solo6x10-i2c.c
133
static int solo_i2c_handle_write(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-i2c.c
136
if (solo_dev->i2c_msg_ptr != solo_dev->i2c_msg->len) {
drivers/media/pci/solo6x10/solo6x10-i2c.c
137
solo_reg_write(solo_dev, SOLO_IIC_TXD,
drivers/media/pci/solo6x10/solo6x10-i2c.c
138
solo_dev->i2c_msg->buf[solo_dev->i2c_msg_ptr]);
drivers/media/pci/solo6x10/solo6x10-i2c.c
139
solo_dev->i2c_msg_ptr++;
drivers/media/pci/solo6x10/solo6x10-i2c.c
140
solo_i2c_flush(solo_dev, 1);
drivers/media/pci/solo6x10/solo6x10-i2c.c
144
solo_dev->i2c_msg_ptr = 0;
drivers/media/pci/solo6x10/solo6x10-i2c.c
145
solo_dev->i2c_msg++;
drivers/media/pci/solo6x10/solo6x10-i2c.c
146
solo_dev->i2c_msg_num--;
drivers/media/pci/solo6x10/solo6x10-i2c.c
148
if (solo_dev->i2c_msg_num == 0) {
drivers/media/pci/solo6x10/solo6x10-i2c.c
149
solo_i2c_stop(solo_dev);
drivers/media/pci/solo6x10/solo6x10-i2c.c
153
if (!(solo_dev->i2c_msg->flags & I2C_M_NOSTART)) {
drivers/media/pci/solo6x10/solo6x10-i2c.c
154
solo_i2c_start(solo_dev);
drivers/media/pci/solo6x10/solo6x10-i2c.c
156
if (solo_dev->i2c_msg->flags & I2C_M_RD)
drivers/media/pci/solo6x10/solo6x10-i2c.c
157
solo_i2c_stop(solo_dev);
drivers/media/pci/solo6x10/solo6x10-i2c.c
165
int solo_i2c_isr(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-i2c.c
167
u32 status = solo_reg_read(solo_dev, SOLO_IIC_CTRL);
drivers/media/pci/solo6x10/solo6x10-i2c.c
172
|| solo_dev->i2c_id < 0) {
drivers/media/pci/solo6x10/solo6x10-i2c.c
173
solo_i2c_stop(solo_dev);
drivers/media/pci/solo6x10/solo6x10-i2c.c
177
switch (solo_dev->i2c_state) {
drivers/media/pci/solo6x10/solo6x10-i2c.c
179
if (solo_dev->i2c_msg->flags & I2C_M_RD) {
drivers/media/pci/solo6x10/solo6x10-i2c.c
180
solo_dev->i2c_state = IIC_STATE_READ;
drivers/media/pci/solo6x10/solo6x10-i2c.c
181
ret = solo_i2c_handle_read(solo_dev);
drivers/media/pci/solo6x10/solo6x10-i2c.c
185
solo_dev->i2c_state = IIC_STATE_WRITE;
drivers/media/pci/solo6x10/solo6x10-i2c.c
188
ret = solo_i2c_handle_write(solo_dev);
drivers/media/pci/solo6x10/solo6x10-i2c.c
192
solo_dev->i2c_msg->buf[solo_dev->i2c_msg_ptr] =
drivers/media/pci/solo6x10/solo6x10-i2c.c
193
solo_reg_read(solo_dev, SOLO_IIC_RXD);
drivers/media/pci/solo6x10/solo6x10-i2c.c
194
solo_dev->i2c_msg_ptr++;
drivers/media/pci/solo6x10/solo6x10-i2c.c
196
ret = solo_i2c_handle_read(solo_dev);
drivers/media/pci/solo6x10/solo6x10-i2c.c
200
solo_i2c_stop(solo_dev);
drivers/media/pci/solo6x10/solo6x10-i2c.c
209
struct solo_dev *solo_dev = adap->algo_data;
drivers/media/pci/solo6x10/solo6x10-i2c.c
216
if (&solo_dev->i2c_adap[i] == adap)
drivers/media/pci/solo6x10/solo6x10-i2c.c
223
mutex_lock(&solo_dev->i2c_mutex);
drivers/media/pci/solo6x10/solo6x10-i2c.c
224
solo_dev->i2c_id = i;
drivers/media/pci/solo6x10/solo6x10-i2c.c
225
solo_dev->i2c_msg = msgs;
drivers/media/pci/solo6x10/solo6x10-i2c.c
226
solo_dev->i2c_msg_num = num;
drivers/media/pci/solo6x10/solo6x10-i2c.c
227
solo_dev->i2c_msg_ptr = 0;
drivers/media/pci/solo6x10/solo6x10-i2c.c
229
solo_reg_write(solo_dev, SOLO_IIC_CTRL, 0);
drivers/media/pci/solo6x10/solo6x10-i2c.c
230
solo_irq_on(solo_dev, SOLO_IRQ_IIC);
drivers/media/pci/solo6x10/solo6x10-i2c.c
231
solo_i2c_start(solo_dev);
drivers/media/pci/solo6x10/solo6x10-i2c.c
236
prepare_to_wait(&solo_dev->i2c_wait, &wait,
drivers/media/pci/solo6x10/solo6x10-i2c.c
239
if (solo_dev->i2c_state == IIC_STATE_STOP)
drivers/media/pci/solo6x10/solo6x10-i2c.c
25
u8 solo_i2c_readbyte(struct solo_dev *solo_dev, int id, u8 addr, u8 off)
drivers/media/pci/solo6x10/solo6x10-i2c.c
250
finish_wait(&solo_dev->i2c_wait, &wait);
drivers/media/pci/solo6x10/solo6x10-i2c.c
251
ret = num - solo_dev->i2c_msg_num;
drivers/media/pci/solo6x10/solo6x10-i2c.c
252
solo_dev->i2c_state = IIC_STATE_IDLE;
drivers/media/pci/solo6x10/solo6x10-i2c.c
253
solo_dev->i2c_id = -1;
drivers/media/pci/solo6x10/solo6x10-i2c.c
255
mutex_unlock(&solo_dev->i2c_mutex);
drivers/media/pci/solo6x10/solo6x10-i2c.c
270
int solo_i2c_init(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-i2c.c
275
solo_reg_write(solo_dev, SOLO_IIC_CFG,
drivers/media/pci/solo6x10/solo6x10-i2c.c
278
solo_dev->i2c_id = -1;
drivers/media/pci/solo6x10/solo6x10-i2c.c
279
solo_dev->i2c_state = IIC_STATE_IDLE;
drivers/media/pci/solo6x10/solo6x10-i2c.c
280
init_waitqueue_head(&solo_dev->i2c_wait);
drivers/media/pci/solo6x10/solo6x10-i2c.c
281
mutex_init(&solo_dev->i2c_mutex);
drivers/media/pci/solo6x10/solo6x10-i2c.c
284
struct i2c_adapter *adap = &solo_dev->i2c_adap[i];
drivers/media/pci/solo6x10/solo6x10-i2c.c
289
adap->algo_data = solo_dev;
drivers/media/pci/solo6x10/solo6x10-i2c.c
291
adap->dev.parent = &solo_dev->pdev->dev;
drivers/media/pci/solo6x10/solo6x10-i2c.c
302
if (!solo_dev->i2c_adap[i].algo_data)
drivers/media/pci/solo6x10/solo6x10-i2c.c
304
i2c_del_adapter(&solo_dev->i2c_adap[i]);
drivers/media/pci/solo6x10/solo6x10-i2c.c
305
solo_dev->i2c_adap[i].algo_data = NULL;
drivers/media/pci/solo6x10/solo6x10-i2c.c
313
void solo_i2c_exit(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-i2c.c
318
if (!solo_dev->i2c_adap[i].algo_data)
drivers/media/pci/solo6x10/solo6x10-i2c.c
320
i2c_del_adapter(&solo_dev->i2c_adap[i]);
drivers/media/pci/solo6x10/solo6x10-i2c.c
321
solo_dev->i2c_adap[i].algo_data = NULL;
drivers/media/pci/solo6x10/solo6x10-i2c.c
40
i2c_transfer(&solo_dev->i2c_adap[id], msgs, 2);
drivers/media/pci/solo6x10/solo6x10-i2c.c
45
void solo_i2c_writebyte(struct solo_dev *solo_dev, int id, u8 addr,
drivers/media/pci/solo6x10/solo6x10-i2c.c
58
i2c_transfer(&solo_dev->i2c_adap[id], &msgs, 1);
drivers/media/pci/solo6x10/solo6x10-i2c.c
61
static void solo_i2c_flush(struct solo_dev *solo_dev, int wr)
drivers/media/pci/solo6x10/solo6x10-i2c.c
65
ctrl = SOLO_IIC_CH_SET(solo_dev->i2c_id);
drivers/media/pci/solo6x10/solo6x10-i2c.c
67
if (solo_dev->i2c_state == IIC_STATE_START)
drivers/media/pci/solo6x10/solo6x10-i2c.c
74
if (!(solo_dev->i2c_msg->flags & I2C_M_NO_RD_ACK))
drivers/media/pci/solo6x10/solo6x10-i2c.c
78
if (solo_dev->i2c_msg_ptr == solo_dev->i2c_msg->len)
drivers/media/pci/solo6x10/solo6x10-i2c.c
81
solo_reg_write(solo_dev, SOLO_IIC_CTRL, ctrl);
drivers/media/pci/solo6x10/solo6x10-i2c.c
84
static void solo_i2c_start(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-i2c.c
86
u32 addr = solo_dev->i2c_msg->addr << 1;
drivers/media/pci/solo6x10/solo6x10-i2c.c
88
if (solo_dev->i2c_msg->flags & I2C_M_RD)
drivers/media/pci/solo6x10/solo6x10-i2c.c
91
solo_dev->i2c_state = IIC_STATE_START;
drivers/media/pci/solo6x10/solo6x10-i2c.c
92
solo_reg_write(solo_dev, SOLO_IIC_TXD, addr);
drivers/media/pci/solo6x10/solo6x10-i2c.c
93
solo_i2c_flush(solo_dev, 1);
drivers/media/pci/solo6x10/solo6x10-i2c.c
96
static void solo_i2c_stop(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-i2c.c
98
solo_irq_off(solo_dev, SOLO_IRQ_IIC);
drivers/media/pci/solo6x10/solo6x10-i2c.c
99
solo_reg_write(solo_dev, SOLO_IIC_CTRL, 0);
drivers/media/pci/solo6x10/solo6x10-p2m.c
103
solo_dev->p2m_jiffies);
drivers/media/pci/solo6x10/solo6x10-p2m.c
108
solo_dev->p2m_timeouts++;
drivers/media/pci/solo6x10/solo6x10-p2m.c
112
solo_reg_write(solo_dev, SOLO_P2M_CONTROL(p2m_id), 0);
drivers/media/pci/solo6x10/solo6x10-p2m.c
116
if (desc_cnt > 1 && solo_dev->type != SOLO_DEV_6110 && config)
drivers/media/pci/solo6x10/solo6x10-p2m.c
117
solo_reg_write(solo_dev, SOLO_P2M_CONFIG(p2m_id), config);
drivers/media/pci/solo6x10/solo6x10-p2m.c
145
int solo_p2m_dma_t(struct solo_dev *solo_dev, int wr,
drivers/media/pci/solo6x10/solo6x10-p2m.c
155
return solo_p2m_dma_desc(solo_dev, desc, 0, 1);
drivers/media/pci/solo6x10/solo6x10-p2m.c
158
void solo_p2m_isr(struct solo_dev *solo_dev, int id)
drivers/media/pci/solo6x10/solo6x10-p2m.c
160
struct solo_p2m_dev *p2m_dev = &solo_dev->p2m_dev[id];
drivers/media/pci/solo6x10/solo6x10-p2m.c
172
solo_reg_write(solo_dev, SOLO_P2M_CONTROL(id), 0);
drivers/media/pci/solo6x10/solo6x10-p2m.c
173
solo_reg_write(solo_dev, SOLO_P2M_TAR_ADR(id), desc->dma_addr);
drivers/media/pci/solo6x10/solo6x10-p2m.c
174
solo_reg_write(solo_dev, SOLO_P2M_EXT_ADR(id), desc->ext_addr);
drivers/media/pci/solo6x10/solo6x10-p2m.c
175
solo_reg_write(solo_dev, SOLO_P2M_EXT_CFG(id), desc->cfg);
drivers/media/pci/solo6x10/solo6x10-p2m.c
176
solo_reg_write(solo_dev, SOLO_P2M_CONTROL(id), desc->ctrl);
drivers/media/pci/solo6x10/solo6x10-p2m.c
179
void solo_p2m_error_isr(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-p2m.c
181
unsigned int err = solo_reg_read(solo_dev, SOLO_PCI_ERR);
drivers/media/pci/solo6x10/solo6x10-p2m.c
189
p2m_dev = &solo_dev->p2m_dev[i];
drivers/media/pci/solo6x10/solo6x10-p2m.c
191
solo_reg_write(solo_dev, SOLO_P2M_CONTROL(i), 0);
drivers/media/pci/solo6x10/solo6x10-p2m.c
196
void solo_p2m_exit(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-p2m.c
201
solo_irq_off(solo_dev, SOLO_IRQ_P2M(i));
drivers/media/pci/solo6x10/solo6x10-p2m.c
204
static int solo_p2m_test(struct solo_dev *solo_dev, int base, int size)
drivers/media/pci/solo6x10/solo6x10-p2m.c
230
if (solo_p2m_dma(solo_dev, 1, wr_buf, base, size, 0, 0))
drivers/media/pci/solo6x10/solo6x10-p2m.c
233
if (solo_p2m_dma(solo_dev, 0, rd_buf, base, size, 0, 0))
drivers/media/pci/solo6x10/solo6x10-p2m.c
250
int solo_p2m_init(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-p2m.c
256
p2m_dev = &solo_dev->p2m_dev[i];
drivers/media/pci/solo6x10/solo6x10-p2m.c
261
solo_reg_write(solo_dev, SOLO_P2M_CONTROL(i), 0);
drivers/media/pci/solo6x10/solo6x10-p2m.c
262
solo_reg_write(solo_dev, SOLO_P2M_CONFIG(i),
drivers/media/pci/solo6x10/solo6x10-p2m.c
267
solo_irq_on(solo_dev, SOLO_IRQ_P2M(i));
drivers/media/pci/solo6x10/solo6x10-p2m.c
271
for (solo_dev->sdram_size = 0, i = 2; i >= 0; i--) {
drivers/media/pci/solo6x10/solo6x10-p2m.c
272
solo_reg_write(solo_dev, SOLO_DMA_CTRL,
drivers/media/pci/solo6x10/solo6x10-p2m.c
279
solo_reg_write(solo_dev, SOLO_SYS_CFG, solo_dev->sys_config |
drivers/media/pci/solo6x10/solo6x10-p2m.c
28
int solo_p2m_dma(struct solo_dev *solo_dev, int wr,
drivers/media/pci/solo6x10/solo6x10-p2m.c
281
solo_reg_write(solo_dev, SOLO_SYS_CFG, solo_dev->sys_config);
drivers/media/pci/solo6x10/solo6x10-p2m.c
285
if (solo_p2m_test(solo_dev, 0x07ff0000, 0x00010000) ||
drivers/media/pci/solo6x10/solo6x10-p2m.c
286
solo_p2m_test(solo_dev, 0x05ff0000, 0x00010000))
drivers/media/pci/solo6x10/solo6x10-p2m.c
291
if (solo_p2m_test(solo_dev, 0x03ff0000, 0x00010000))
drivers/media/pci/solo6x10/solo6x10-p2m.c
296
if (solo_p2m_test(solo_dev, 0x01ff0000, 0x00010000))
drivers/media/pci/solo6x10/solo6x10-p2m.c
300
solo_dev->sdram_size = (32 << 20) << i;
drivers/media/pci/solo6x10/solo6x10-p2m.c
304
if (!solo_dev->sdram_size) {
drivers/media/pci/solo6x10/solo6x10-p2m.c
305
dev_err(&solo_dev->pdev->dev, "Error detecting SDRAM size\n");
drivers/media/pci/solo6x10/solo6x10-p2m.c
309
if (SOLO_SDRAM_END(solo_dev) > solo_dev->sdram_size) {
drivers/media/pci/solo6x10/solo6x10-p2m.c
310
dev_err(&solo_dev->pdev->dev,
drivers/media/pci/solo6x10/solo6x10-p2m.c
312
solo_dev->sdram_size, SOLO_SDRAM_END(solo_dev));
drivers/media/pci/solo6x10/solo6x10-p2m.c
40
dma_addr = dma_map_single(&solo_dev->pdev->dev, sys_addr, size,
drivers/media/pci/solo6x10/solo6x10-p2m.c
42
if (dma_mapping_error(&solo_dev->pdev->dev, dma_addr))
drivers/media/pci/solo6x10/solo6x10-p2m.c
45
ret = solo_p2m_dma_t(solo_dev, wr, dma_addr, ext_addr, size,
drivers/media/pci/solo6x10/solo6x10-p2m.c
48
dma_unmap_single(&solo_dev->pdev->dev, dma_addr, size,
drivers/media/pci/solo6x10/solo6x10-p2m.c
55
int solo_p2m_dma_desc(struct solo_dev *solo_dev,
drivers/media/pci/solo6x10/solo6x10-p2m.c
66
if (solo_dev->type != SOLO_DEV_6110 && multi_p2m)
drivers/media/pci/solo6x10/solo6x10-p2m.c
67
p2m_id = atomic_inc_return(&solo_dev->p2m_count) % SOLO_NR_P2M;
drivers/media/pci/solo6x10/solo6x10-p2m.c
69
p2m_dev = &solo_dev->p2m_dev[p2m_id];
drivers/media/pci/solo6x10/solo6x10-p2m.c
77
if (desc_cnt > 1 && solo_dev->type != SOLO_DEV_6110 && desc_mode) {
drivers/media/pci/solo6x10/solo6x10-p2m.c
80
config = solo_reg_read(solo_dev, SOLO_P2M_CONFIG(p2m_id));
drivers/media/pci/solo6x10/solo6x10-p2m.c
82
solo_reg_write(solo_dev, SOLO_P2M_DES_ADR(p2m_id), desc_dma);
drivers/media/pci/solo6x10/solo6x10-p2m.c
83
solo_reg_write(solo_dev, SOLO_P2M_DESC_ID(p2m_id), desc_cnt);
drivers/media/pci/solo6x10/solo6x10-p2m.c
84
solo_reg_write(solo_dev, SOLO_P2M_CONFIG(p2m_id), config |
drivers/media/pci/solo6x10/solo6x10-p2m.c
92
solo_reg_write(solo_dev, SOLO_P2M_TAR_ADR(p2m_id),
drivers/media/pci/solo6x10/solo6x10-p2m.c
94
solo_reg_write(solo_dev, SOLO_P2M_EXT_ADR(p2m_id),
drivers/media/pci/solo6x10/solo6x10-p2m.c
96
solo_reg_write(solo_dev, SOLO_P2M_EXT_CFG(p2m_id),
drivers/media/pci/solo6x10/solo6x10-p2m.c
98
solo_reg_write(solo_dev, SOLO_P2M_CONTROL(p2m_id),
drivers/media/pci/solo6x10/solo6x10-tw28.c
171
static u8 tw_readbyte(struct solo_dev *solo_dev, int chip_id, u8 tw6x_off,
drivers/media/pci/solo6x10/solo6x10-tw28.c
174
if (is_tw286x(solo_dev, chip_id))
drivers/media/pci/solo6x10/solo6x10-tw28.c
175
return solo_i2c_readbyte(solo_dev, SOLO_I2C_TW,
drivers/media/pci/solo6x10/solo6x10-tw28.c
179
return solo_i2c_readbyte(solo_dev, SOLO_I2C_TW,
drivers/media/pci/solo6x10/solo6x10-tw28.c
184
static void tw_writebyte(struct solo_dev *solo_dev, int chip_id,
drivers/media/pci/solo6x10/solo6x10-tw28.c
187
if (is_tw286x(solo_dev, chip_id))
drivers/media/pci/solo6x10/solo6x10-tw28.c
188
solo_i2c_writebyte(solo_dev, SOLO_I2C_TW,
drivers/media/pci/solo6x10/solo6x10-tw28.c
192
solo_i2c_writebyte(solo_dev, SOLO_I2C_TW,
drivers/media/pci/solo6x10/solo6x10-tw28.c
197
static void tw_write_and_verify(struct solo_dev *solo_dev, u8 addr, u8 off,
drivers/media/pci/solo6x10/solo6x10-tw28.c
203
u8 rval = solo_i2c_readbyte(solo_dev, SOLO_I2C_TW, addr, off);
drivers/media/pci/solo6x10/solo6x10-tw28.c
208
solo_i2c_writebyte(solo_dev, SOLO_I2C_TW, addr, off, val);
drivers/media/pci/solo6x10/solo6x10-tw28.c
216
static int tw2865_setup(struct solo_dev *solo_dev, u8 dev_addr)
drivers/media/pci/solo6x10/solo6x10-tw28.c
221
if (solo_dev->video_type == SOLO_VO_FMT_TYPE_PAL)
drivers/media/pci/solo6x10/solo6x10-tw28.c
229
if (solo_dev->nr_chans == 4) {
drivers/media/pci/solo6x10/solo6x10-tw28.c
232
} else if (solo_dev->nr_chans == 8) {
drivers/media/pci/solo6x10/solo6x10-tw28.c
236
} else if (solo_dev->nr_chans == 16) {
drivers/media/pci/solo6x10/solo6x10-tw28.c
260
tw_write_and_verify(solo_dev, dev_addr, i,
drivers/media/pci/solo6x10/solo6x10-tw28.c
267
static int tw2864_setup(struct solo_dev *solo_dev, u8 dev_addr)
drivers/media/pci/solo6x10/solo6x10-tw28.c
272
if (solo_dev->video_type == SOLO_VO_FMT_TYPE_PAL)
drivers/media/pci/solo6x10/solo6x10-tw28.c
279
if (solo_dev->tw2865 == 0) {
drivers/media/pci/solo6x10/solo6x10-tw28.c
281
if (solo_dev->nr_chans == 4) {
drivers/media/pci/solo6x10/solo6x10-tw28.c
284
} else if (solo_dev->nr_chans == 8) {
drivers/media/pci/solo6x10/solo6x10-tw28.c
290
} else if (solo_dev->nr_chans == 16) {
drivers/media/pci/solo6x10/solo6x10-tw28.c
307
if (solo_dev->nr_chans == 8) {
drivers/media/pci/solo6x10/solo6x10-tw28.c
311
} else if (solo_dev->nr_chans == 16) {
drivers/media/pci/solo6x10/solo6x10-tw28.c
336
tw_write_and_verify(solo_dev, dev_addr, i,
drivers/media/pci/solo6x10/solo6x10-tw28.c
343
static int tw2815_setup(struct solo_dev *solo_dev, u8 dev_addr)
drivers/media/pci/solo6x10/solo6x10-tw28.c
411
(solo_dev->video_type == SOLO_VO_FMT_TYPE_NTSC) ?
drivers/media/pci/solo6x10/solo6x10-tw28.c
420
if (solo_dev->nr_chans == 4) {
drivers/media/pci/solo6x10/solo6x10-tw28.c
423
} else if (solo_dev->nr_chans == 8) {
drivers/media/pci/solo6x10/solo6x10-tw28.c
429
} else if (solo_dev->nr_chans == 16) {
drivers/media/pci/solo6x10/solo6x10-tw28.c
482
solo_i2c_writebyte(solo_dev, SOLO_I2C_TW,
drivers/media/pci/solo6x10/solo6x10-tw28.c
494
solo_i2c_writebyte(solo_dev, SOLO_I2C_TW, dev_addr, i,
drivers/media/pci/solo6x10/solo6x10-tw28.c
504
static void saa712x_write_regs(struct solo_dev *dev, const u8 *vals,
drivers/media/pci/solo6x10/solo6x10-tw28.c
523
static void saa712x_setup(struct solo_dev *dev)
drivers/media/pci/solo6x10/solo6x10-tw28.c
582
int solo_tw28_init(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-tw28.c
587
solo_dev->tw28_cnt = 0;
drivers/media/pci/solo6x10/solo6x10-tw28.c
590
for (i = 0; i < solo_dev->nr_chans / 4; i++) {
drivers/media/pci/solo6x10/solo6x10-tw28.c
591
value = solo_i2c_readbyte(solo_dev, SOLO_I2C_TW,
drivers/media/pci/solo6x10/solo6x10-tw28.c
596
solo_dev->tw2865 |= 1 << i;
drivers/media/pci/solo6x10/solo6x10-tw28.c
597
solo_dev->tw28_cnt++;
drivers/media/pci/solo6x10/solo6x10-tw28.c
601
solo_dev->tw2864 |= 1 << i;
drivers/media/pci/solo6x10/solo6x10-tw28.c
602
solo_dev->tw28_cnt++;
drivers/media/pci/solo6x10/solo6x10-tw28.c
605
value = solo_i2c_readbyte(solo_dev, SOLO_I2C_TW,
drivers/media/pci/solo6x10/solo6x10-tw28.c
609
solo_dev->tw2815 |= 1 << i;
drivers/media/pci/solo6x10/solo6x10-tw28.c
610
solo_dev->tw28_cnt++;
drivers/media/pci/solo6x10/solo6x10-tw28.c
615
if (solo_dev->tw28_cnt != (solo_dev->nr_chans >> 2)) {
drivers/media/pci/solo6x10/solo6x10-tw28.c
616
dev_err(&solo_dev->pdev->dev,
drivers/media/pci/solo6x10/solo6x10-tw28.c
621
saa712x_setup(solo_dev);
drivers/media/pci/solo6x10/solo6x10-tw28.c
623
for (i = 0; i < solo_dev->tw28_cnt; i++) {
drivers/media/pci/solo6x10/solo6x10-tw28.c
624
if ((solo_dev->tw2865 & (1 << i)))
drivers/media/pci/solo6x10/solo6x10-tw28.c
625
tw2865_setup(solo_dev, TW_CHIP_OFFSET_ADDR(i));
drivers/media/pci/solo6x10/solo6x10-tw28.c
626
else if ((solo_dev->tw2864 & (1 << i)))
drivers/media/pci/solo6x10/solo6x10-tw28.c
627
tw2864_setup(solo_dev, TW_CHIP_OFFSET_ADDR(i));
drivers/media/pci/solo6x10/solo6x10-tw28.c
629
tw2815_setup(solo_dev, TW_CHIP_OFFSET_ADDR(i));
drivers/media/pci/solo6x10/solo6x10-tw28.c
641
int tw28_get_video_status(struct solo_dev *solo_dev, u8 ch)
drivers/media/pci/solo6x10/solo6x10-tw28.c
649
val = tw_readbyte(solo_dev, chip_num, TW286x_AV_STAT_ADDR,
drivers/media/pci/solo6x10/solo6x10-tw28.c
658
u16 tw28_get_audio_status(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-tw28.c
664
for (i = 0; i < solo_dev->tw28_cnt; i++) {
drivers/media/pci/solo6x10/solo6x10-tw28.c
665
val = (tw_readbyte(solo_dev, i, TW286x_AV_STAT_ADDR,
drivers/media/pci/solo6x10/solo6x10-tw28.c
674
bool tw28_has_sharpness(struct solo_dev *solo_dev, u8 ch)
drivers/media/pci/solo6x10/solo6x10-tw28.c
676
return is_tw286x(solo_dev, ch / 4);
drivers/media/pci/solo6x10/solo6x10-tw28.c
679
int tw28_set_ctrl_val(struct solo_dev *solo_dev, u32 ctrl, u8 ch,
drivers/media/pci/solo6x10/solo6x10-tw28.c
698
if (is_tw286x(solo_dev, chip_num)) {
drivers/media/pci/solo6x10/solo6x10-tw28.c
699
u8 v = solo_i2c_readbyte(solo_dev, SOLO_I2C_TW,
drivers/media/pci/solo6x10/solo6x10-tw28.c
704
solo_i2c_writebyte(solo_dev, SOLO_I2C_TW,
drivers/media/pci/solo6x10/solo6x10-tw28.c
713
if (is_tw286x(solo_dev, chip_num))
drivers/media/pci/solo6x10/solo6x10-tw28.c
717
tw_writebyte(solo_dev, chip_num, TW286x_HUE_ADDR(ch),
drivers/media/pci/solo6x10/solo6x10-tw28.c
724
if (is_tw286x(solo_dev, chip_num)) {
drivers/media/pci/solo6x10/solo6x10-tw28.c
725
solo_i2c_writebyte(solo_dev, SOLO_I2C_TW,
drivers/media/pci/solo6x10/solo6x10-tw28.c
729
tw_writebyte(solo_dev, chip_num, TW286x_SATURATIONV_ADDR(ch),
drivers/media/pci/solo6x10/solo6x10-tw28.c
735
tw_writebyte(solo_dev, chip_num, TW286x_CONTRAST_ADDR(ch),
drivers/media/pci/solo6x10/solo6x10-tw28.c
740
if (is_tw286x(solo_dev, chip_num))
drivers/media/pci/solo6x10/solo6x10-tw28.c
744
tw_writebyte(solo_dev, chip_num, TW286x_BRIGHTNESS_ADDR(ch),
drivers/media/pci/solo6x10/solo6x10-tw28.c
755
int tw28_get_ctrl_val(struct solo_dev *solo_dev, u32 ctrl, u8 ch,
drivers/media/pci/solo6x10/solo6x10-tw28.c
770
if (is_tw286x(solo_dev, chip_num)) {
drivers/media/pci/solo6x10/solo6x10-tw28.c
771
rval = solo_i2c_readbyte(solo_dev, SOLO_I2C_TW,
drivers/media/pci/solo6x10/solo6x10-tw28.c
779
rval = tw_readbyte(solo_dev, chip_num, TW286x_HUE_ADDR(ch),
drivers/media/pci/solo6x10/solo6x10-tw28.c
781
if (is_tw286x(solo_dev, chip_num))
drivers/media/pci/solo6x10/solo6x10-tw28.c
787
*val = tw_readbyte(solo_dev, chip_num,
drivers/media/pci/solo6x10/solo6x10-tw28.c
792
*val = tw_readbyte(solo_dev, chip_num,
drivers/media/pci/solo6x10/solo6x10-tw28.c
797
rval = tw_readbyte(solo_dev, chip_num,
drivers/media/pci/solo6x10/solo6x10-tw28.c
800
if (is_tw286x(solo_dev, chip_num))
drivers/media/pci/solo6x10/solo6x10-tw28.c
818
void tw2815_Set_AudioOutVol(struct solo_dev *solo_dev, unsigned int u_val)
drivers/media/pci/solo6x10/solo6x10-tw28.c
823
chip_num = (solo_dev->nr_chans - 1) / 4;
drivers/media/pci/solo6x10/solo6x10-tw28.c
825
val = tw_readbyte(solo_dev, chip_num, TW286x_AUDIO_OUTPUT_VOL_ADDR,
drivers/media/pci/solo6x10/solo6x10-tw28.c
830
tw_writebyte(solo_dev, chip_num, TW286x_AUDIO_OUTPUT_VOL_ADDR,
drivers/media/pci/solo6x10/solo6x10-tw28.c
835
u8 tw28_get_audio_gain(struct solo_dev *solo_dev, u8 ch)
drivers/media/pci/solo6x10/solo6x10-tw28.c
844
val = tw_readbyte(solo_dev, chip_num,
drivers/media/pci/solo6x10/solo6x10-tw28.c
851
void tw28_set_audio_gain(struct solo_dev *solo_dev, u8 ch, u8 val)
drivers/media/pci/solo6x10/solo6x10-tw28.c
860
old_val = tw_readbyte(solo_dev, chip_num,
drivers/media/pci/solo6x10/solo6x10-tw28.c
867
tw_writebyte(solo_dev, chip_num, TW286x_AUDIO_INPUT_GAIN_ADDR(ch),
drivers/media/pci/solo6x10/solo6x10-tw28.h
41
int solo_tw28_init(struct solo_dev *solo_dev);
drivers/media/pci/solo6x10/solo6x10-tw28.h
43
int tw28_set_ctrl_val(struct solo_dev *solo_dev, u32 ctrl, u8 ch, s32 val);
drivers/media/pci/solo6x10/solo6x10-tw28.h
44
int tw28_get_ctrl_val(struct solo_dev *solo_dev, u32 ctrl, u8 ch, s32 *val);
drivers/media/pci/solo6x10/solo6x10-tw28.h
45
bool tw28_has_sharpness(struct solo_dev *solo_dev, u8 ch);
drivers/media/pci/solo6x10/solo6x10-tw28.h
47
u8 tw28_get_audio_gain(struct solo_dev *solo_dev, u8 ch);
drivers/media/pci/solo6x10/solo6x10-tw28.h
48
void tw28_set_audio_gain(struct solo_dev *solo_dev, u8 ch, u8 val);
drivers/media/pci/solo6x10/solo6x10-tw28.h
49
int tw28_get_video_status(struct solo_dev *solo_dev, u8 ch);
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1000
fintv->stepwise.min.denominator = solo_dev->fps;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1003
fintv->stepwise.max.denominator = solo_dev->fps;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1006
fintv->stepwise.step.denominator = solo_dev->fps;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1019
cp->timeperframe.denominator = solo_enc->solo_dev->fps;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
102
struct solo_dev *solo_dev = solo_enc->solo_dev;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1042
u8 fps = solo_enc->solo_dev->fps;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1056
struct solo_dev *solo_dev = solo_enc->solo_dev;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1065
return tw28_set_ctrl_val(solo_dev, ctrl->id, solo_enc->ch,
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1069
solo_reg_write(solo_dev, SOLO_VE_CH_GOP(solo_enc->ch), solo_enc->gop);
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1070
solo_reg_write(solo_dev, SOLO_VE_CH_GOP_E(solo_enc->ch), solo_enc->gop);
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1074
solo_reg_write(solo_dev, SOLO_VE_CH_QP(solo_enc->ch), solo_enc->qp);
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1075
solo_reg_write(solo_dev, SOLO_VE_CH_QP_E(solo_enc->ch), solo_enc->qp);
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
108
if (solo_reg_read(solo_dev, SOLO_VI_MOT_STATUS) & ch_mask) {
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1081
return solo_set_motion_threshold(solo_dev, solo_enc->ch,
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1088
err = solo_set_motion_threshold(solo_dev, solo_enc->ch,
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
109
solo_reg_write(solo_dev, SOLO_VI_MOT_CLEAR, ch_mask);
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1091
err = solo_set_motion_block(solo_dev, solo_enc->ch,
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1100
return solo_set_motion_block(solo_dev, solo_enc->ch,
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
119
struct solo_dev *solo_dev = solo_enc->solo_dev;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1204
static struct solo_enc_dev *solo_enc_alloc(struct solo_dev *solo_dev,
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1225
if (tw28_has_sharpness(solo_dev, ch))
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1229
V4L2_CID_MPEG_VIDEO_GOP_SIZE, 1, 255, 1, solo_dev->fps);
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1247
solo_enc->solo_dev = solo_dev;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1252
solo_enc->fmt = (solo_dev->type == SOLO_DEV_6010) ?
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1257
solo_enc->gop = solo_dev->fps;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
126
solo_dev->motion_mask |= mask;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1271
solo_enc->vidq.dev = &solo_dev->pdev->dev;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
128
solo_dev->motion_mask &= ~mask;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1284
solo_enc->desc_items = dma_alloc_coherent(&solo_dev->pdev->dev,
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1298
solo_enc->vfd->v4l2_dev = &solo_dev->v4l2_dev;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
130
solo_reg_write(solo_dev, SOLO_VI_MOT_CLEAR, mask);
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1308
"%s-enc (%i/%i)", SOLO6X10_NAME, solo_dev->vfd->num,
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1316
dma_free_coherent(&solo_enc->solo_dev->pdev->dev,
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
132
solo_reg_write(solo_dev, SOLO_VI_MOT_ADR,
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
133
SOLO_VI_MOTION_EN(solo_dev->motion_mask) |
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1330
dma_free_coherent(&solo_enc->solo_dev->pdev->dev,
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1338
int solo_enc_v4l2_init(struct solo_dev *solo_dev, unsigned nr)
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
134
(SOLO_MOTION_EXT_ADDR(solo_dev) >> 16));
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1342
init_waitqueue_head(&solo_dev->ring_thread_wait);
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1344
solo_dev->vh_size = sizeof(vop_header);
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1345
solo_dev->vh_buf = dma_alloc_coherent(&solo_dev->pdev->dev,
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1346
solo_dev->vh_size,
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1347
&solo_dev->vh_dma, GFP_KERNEL);
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1348
if (solo_dev->vh_buf == NULL)
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1351
for (i = 0; i < solo_dev->nr_chans; i++) {
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1352
solo_dev->v4l2_enc[i] = solo_enc_alloc(solo_dev, i, nr);
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1353
if (IS_ERR(solo_dev->v4l2_enc[i]))
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1357
if (i != solo_dev->nr_chans) {
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1358
int ret = PTR_ERR(solo_dev->v4l2_enc[i]);
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1361
solo_enc_free(solo_dev->v4l2_enc[i]);
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1362
dma_free_coherent(&solo_dev->pdev->dev, solo_dev->vh_size,
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1363
solo_dev->vh_buf, solo_dev->vh_dma);
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1364
solo_dev->vh_buf = NULL;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1368
if (solo_dev->type == SOLO_DEV_6010)
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1369
solo_dev->enc_bw_remain = solo_dev->fps * 4 * 4;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1371
solo_dev->enc_bw_remain = solo_dev->fps * 4 * 5;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1373
dev_info(&solo_dev->pdev->dev, "Encoders as /dev/video%d-%d\n",
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1374
solo_dev->v4l2_enc[0]->vfd->num,
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1375
solo_dev->v4l2_enc[solo_dev->nr_chans - 1]->vfd->num);
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1377
return solo_ring_start(solo_dev);
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1380
void solo_enc_v4l2_exit(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1384
solo_ring_stop(solo_dev);
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1386
for (i = 0; i < solo_dev->nr_chans; i++)
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1387
solo_enc_free(solo_dev->v4l2_enc[i]);
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1389
if (solo_dev->vh_buf)
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1390
dma_free_coherent(&solo_dev->pdev->dev, solo_dev->vh_size,
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
1391
solo_dev->vh_buf, solo_dev->vh_dma);
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
141
struct solo_dev *solo_dev = solo_enc->solo_dev;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
146
solo_enc->bw_weight = max(solo_dev->fps / solo_enc->interval, 1);
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
149
solo_enc->width = solo_dev->video_hsize >> 1;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
150
solo_enc->height = solo_dev->video_vsize;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
151
if (solo_dev->type == SOLO_DEV_6110) {
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
152
if (solo_dev->video_type == SOLO_VO_FMT_TYPE_NTSC) {
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
160
if (solo_dev->video_type == SOLO_VO_FMT_TYPE_NTSC) {
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
169
solo_enc->width = solo_dev->video_hsize;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
170
solo_enc->height = solo_dev->video_vsize << 1;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
172
if (solo_dev->type == SOLO_DEV_6110) {
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
173
if (solo_dev->video_type == SOLO_VO_FMT_TYPE_NTSC) {
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
181
if (solo_dev->video_type == SOLO_VO_FMT_TYPE_NTSC) {
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
194
if (solo_dev->type == SOLO_DEV_6010) {
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
195
u16 fps = solo_dev->fps * 1000;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
218
jpeg_dqt[solo_g_jpeg_qp(solo_dev, solo_enc->ch)], DQT_LEN);
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
224
struct solo_dev *solo_dev = solo_enc->solo_dev;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
230
if (solo_enc->bw_weight > solo_dev->enc_bw_remain)
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
233
solo_dev->enc_bw_remain -= solo_enc->bw_weight;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
236
solo_reg_write(solo_dev, SOLO_CAP_CH_COMP_ENA_E(ch), 1);
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
239
solo_reg_write(solo_dev, SOLO_CAP_CH_SCALE(ch), 0);
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
242
solo_reg_write(solo_dev, SOLO_VE_CH_INTL(ch),
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
251
solo_reg_write(solo_dev, SOLO_VE_CH_GOP(ch), solo_enc->gop);
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
252
solo_reg_write(solo_dev, SOLO_VE_CH_QP(ch), solo_enc->qp);
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
253
solo_reg_write(solo_dev, SOLO_CAP_CH_INTV(ch), interval);
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
256
solo_reg_write(solo_dev, SOLO_VE_CH_GOP_E(ch), solo_enc->gop);
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
257
solo_reg_write(solo_dev, SOLO_VE_CH_QP_E(ch), solo_enc->qp);
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
258
solo_reg_write(solo_dev, SOLO_CAP_CH_INTV_E(ch), interval);
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
261
solo_reg_write(solo_dev, SOLO_CAP_CH_SCALE(ch), solo_enc->mode);
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
268
struct solo_dev *solo_dev = solo_enc->solo_dev;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
270
solo_dev->enc_bw_remain += solo_enc->bw_weight;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
272
solo_reg_write(solo_dev, SOLO_CAP_CH_SCALE(solo_enc->ch), 0);
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
273
solo_reg_write(solo_dev, SOLO_CAP_CH_COMP_ENA_E(solo_enc->ch), 0);
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
276
static int enc_get_mpeg_dma(struct solo_dev *solo_dev, dma_addr_t dma,
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
281
if (off > SOLO_MP4E_EXT_SIZE(solo_dev))
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
285
if (off + size <= SOLO_MP4E_EXT_SIZE(solo_dev)) {
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
286
return solo_p2m_dma_t(solo_dev, 0, dma,
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
287
SOLO_MP4E_EXT_ADDR(solo_dev) + off, size,
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
292
ret = solo_p2m_dma_t(solo_dev, 0, dma,
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
293
SOLO_MP4E_EXT_ADDR(solo_dev) + off,
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
294
SOLO_MP4E_EXT_SIZE(solo_dev) - off, 0, 0);
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
297
ret = solo_p2m_dma_t(solo_dev, 0,
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
298
dma + SOLO_MP4E_EXT_SIZE(solo_dev) - off,
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
299
SOLO_MP4E_EXT_ADDR(solo_dev),
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
300
size + off - SOLO_MP4E_EXT_SIZE(solo_dev), 0, 0);
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
312
struct solo_dev *solo_dev = solo_enc->solo_dev;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
354
ret = solo_p2m_dma_t(solo_dev, 0, dma, base + off,
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
359
ret = solo_p2m_dma_t(solo_dev, 0, dma + left, base,
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
377
ret = solo_p2m_dma_desc(solo_dev, solo_enc->desc_items,
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
389
return solo_p2m_dma_desc(solo_dev, solo_enc->desc_items,
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
453
struct solo_dev *solo_dev = solo_enc->solo_dev;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
466
vop_jpeg_offset(vh) - SOLO_JPEG_EXT_ADDR(solo_dev),
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
467
frame_size, SOLO_JPEG_EXT_ADDR(solo_dev),
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
468
SOLO_JPEG_EXT_SIZE(solo_dev));
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
475
struct solo_dev *solo_dev = solo_enc->solo_dev;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
497
frame_off = (vop_mpeg_offset(vh) - SOLO_MP4E_EXT_ADDR(solo_dev) +
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
498
sizeof(*vh)) % SOLO_MP4E_EXT_SIZE(solo_dev);
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
502
SOLO_MP4E_EXT_ADDR(solo_dev),
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
503
SOLO_MP4E_EXT_SIZE(solo_dev));
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
573
void solo_enc_v4l2_isr(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
575
wake_up_interruptible_all(&solo_dev->ring_thread_wait);
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
578
static void solo_handle_ring(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
588
cur_q = solo_reg_read(solo_dev, SOLO_VE_STATE(11)) & 0xff;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
589
if (cur_q == solo_dev->enc_idx)
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
592
mpeg_current = solo_reg_read(solo_dev,
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
593
SOLO_VE_MPEG4_QUE(solo_dev->enc_idx));
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
594
solo_dev->enc_idx = (solo_dev->enc_idx + 1) % MP4_QS;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
605
solo_enc = solo_dev->v4l2_enc[ch];
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
607
dev_err(&solo_dev->pdev->dev,
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
613
if (enc_get_mpeg_dma(solo_dev, solo_dev->vh_dma, off,
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
617
enc_buf.vh = solo_dev->vh_buf;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
621
SOLO_MP4E_EXT_ADDR(solo_dev) + off)
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
635
struct solo_dev *solo_dev = data;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
639
add_wait_queue(&solo_dev->ring_thread_wait, &wait);
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
646
solo_handle_ring(solo_dev);
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
650
remove_wait_queue(&solo_dev->ring_thread_wait, &wait);
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
682
static int solo_ring_start(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
684
solo_dev->ring_thread = kthread_run(solo_ring_thread, solo_dev,
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
686
if (IS_ERR(solo_dev->ring_thread)) {
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
687
int err = PTR_ERR(solo_dev->ring_thread);
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
689
solo_dev->ring_thread = NULL;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
693
solo_irq_on(solo_dev, SOLO_IRQ_ENCODER);
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
698
static void solo_ring_stop(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
700
if (solo_dev->ring_thread) {
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
701
kthread_stop(solo_dev->ring_thread);
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
702
solo_dev->ring_thread = NULL;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
705
solo_irq_off(solo_dev, SOLO_IRQ_ENCODER);
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
776
struct solo_dev *solo_dev = solo_enc->solo_dev;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
786
if (!tw28_get_video_status(solo_dev, solo_enc->ch))
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
813
int dev_type = solo_enc->solo_dev->type;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
846
struct solo_dev *solo_dev = solo_enc->solo_dev;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
849
if (solo_valid_pixfmt(pix->pixelformat, solo_dev->type))
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
852
if (pix->width < solo_dev->video_hsize ||
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
853
pix->height < solo_dev->video_vsize << 1) {
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
855
pix->width = solo_dev->video_hsize >> 1;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
856
pix->height = solo_dev->video_vsize;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
859
pix->width = solo_dev->video_hsize;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
860
pix->height = solo_dev->video_vsize << 1;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
885
struct solo_dev *solo_dev = solo_enc->solo_dev;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
896
if (pix->width == solo_dev->video_hsize)
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
938
struct solo_dev *solo_dev = solo_enc->solo_dev;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
940
if (solo_dev->video_type == SOLO_VO_FMT_TYPE_NTSC)
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
95
struct solo_dev *solo_dev = solo_enc->solo_dev;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
951
return solo_set_video_type(solo_enc->solo_dev, std & V4L2_STD_625_50);
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
958
struct solo_dev *solo_dev = solo_enc->solo_dev;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
960
if (solo_valid_pixfmt(fsize->pixel_format, solo_dev->type))
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
965
fsize->discrete.width = solo_dev->video_hsize >> 1;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
966
fsize->discrete.height = solo_dev->video_vsize;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
969
fsize->discrete.width = solo_dev->video_hsize;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
97
return (solo_dev->motion_mask >> solo_enc->ch) & 1;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
970
fsize->discrete.height = solo_dev->video_vsize << 1;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
985
struct solo_dev *solo_dev = solo_enc->solo_dev;
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
987
if (solo_valid_pixfmt(fintv->pixel_format, solo_dev->type))
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
991
if ((fintv->width != solo_dev->video_hsize >> 1 ||
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
992
fintv->height != solo_dev->video_vsize) &&
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
993
(fintv->width != solo_dev->video_hsize ||
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
994
fintv->height != solo_dev->video_vsize << 1))
drivers/media/pci/solo6x10/solo6x10-v4l2.c
100
solo_vlines(solo_dev) / 2, 3);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
101
solo_win_setup(solo_dev, ch + 1, solo_dev->video_hsize / 2, 0,
drivers/media/pci/solo6x10/solo6x10-v4l2.c
102
solo_dev->video_hsize, solo_vlines(solo_dev) / 2, 3);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
104
solo_win_setup(solo_dev, ch + 2, 0, solo_vlines(solo_dev) / 2,
drivers/media/pci/solo6x10/solo6x10-v4l2.c
105
solo_dev->video_hsize / 2, solo_vlines(solo_dev), 3);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
106
solo_win_setup(solo_dev, ch + 3, solo_dev->video_hsize / 2,
drivers/media/pci/solo6x10/solo6x10-v4l2.c
107
solo_vlines(solo_dev) / 2, solo_dev->video_hsize,
drivers/media/pci/solo6x10/solo6x10-v4l2.c
108
solo_vlines(solo_dev), 3);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
113
static int solo_v4l2_ch_ext_16up(struct solo_dev *solo_dev, int on)
drivers/media/pci/solo6x10/solo6x10-v4l2.c
119
solo_win_setup(solo_dev, i, solo_dev->video_hsize,
drivers/media/pci/solo6x10/solo6x10-v4l2.c
120
solo_vlines(solo_dev),
drivers/media/pci/solo6x10/solo6x10-v4l2.c
121
solo_dev->video_hsize,
drivers/media/pci/solo6x10/solo6x10-v4l2.c
122
solo_vlines(solo_dev), 0);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
126
ysize = solo_vlines(solo_dev) / 4;
drivers/media/pci/solo6x10/solo6x10-v4l2.c
127
hsize = solo_dev->video_hsize / 4;
drivers/media/pci/solo6x10/solo6x10-v4l2.c
130
solo_win_setup(solo_dev, i * 4, 0, sy, hsize,
drivers/media/pci/solo6x10/solo6x10-v4l2.c
132
solo_win_setup(solo_dev, (i * 4) + 1, hsize, sy,
drivers/media/pci/solo6x10/solo6x10-v4l2.c
134
solo_win_setup(solo_dev, (i * 4) + 2, hsize * 2, sy,
drivers/media/pci/solo6x10/solo6x10-v4l2.c
136
solo_win_setup(solo_dev, (i * 4) + 3, hsize * 3, sy,
drivers/media/pci/solo6x10/solo6x10-v4l2.c
137
solo_dev->video_hsize, sy + ysize, 5);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
143
static int solo_v4l2_ch(struct solo_dev *solo_dev, u8 ch, int on)
drivers/media/pci/solo6x10/solo6x10-v4l2.c
147
if (ch < solo_dev->nr_chans) {
drivers/media/pci/solo6x10/solo6x10-v4l2.c
148
solo_win_setup(solo_dev, ch, on ? 0 : solo_dev->video_hsize,
drivers/media/pci/solo6x10/solo6x10-v4l2.c
149
on ? 0 : solo_vlines(solo_dev),
drivers/media/pci/solo6x10/solo6x10-v4l2.c
150
solo_dev->video_hsize, solo_vlines(solo_dev),
drivers/media/pci/solo6x10/solo6x10-v4l2.c
155
if (ch >= solo_dev->nr_chans + solo_dev->nr_ext)
drivers/media/pci/solo6x10/solo6x10-v4l2.c
158
ext_ch = ch - solo_dev->nr_chans;
drivers/media/pci/solo6x10/solo6x10-v4l2.c
162
return solo_v4l2_ch_ext_4up(solo_dev, ext_ch, on);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
165
return solo_v4l2_ch_ext_16up(solo_dev, on);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
168
static int solo_v4l2_set_ch(struct solo_dev *solo_dev, u8 ch)
drivers/media/pci/solo6x10/solo6x10-v4l2.c
170
if (ch >= solo_dev->nr_chans + solo_dev->nr_ext)
drivers/media/pci/solo6x10/solo6x10-v4l2.c
173
erase_on(solo_dev);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
175
solo_v4l2_ch(solo_dev, solo_dev->cur_disp_ch, 0);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
176
solo_v4l2_ch(solo_dev, ch, 1);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
178
solo_dev->cur_disp_ch = ch;
drivers/media/pci/solo6x10/solo6x10-v4l2.c
183
static void solo_fillbuf(struct solo_dev *solo_dev,
drivers/media/pci/solo6x10/solo6x10-v4l2.c
196
if (erase_off(solo_dev)) {
drivers/media/pci/solo6x10/solo6x10-v4l2.c
198
int image_size = solo_image_size(solo_dev);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
206
fdma_addr = SOLO_DISP_EXT_ADDR + (solo_dev->old_write *
drivers/media/pci/solo6x10/solo6x10-v4l2.c
207
(SOLO_HW_BPL * solo_vlines(solo_dev)));
drivers/media/pci/solo6x10/solo6x10-v4l2.c
209
error = solo_p2m_dma_t(solo_dev, 0, addr, fdma_addr,
drivers/media/pci/solo6x10/solo6x10-v4l2.c
210
solo_bytesperline(solo_dev),
drivers/media/pci/solo6x10/solo6x10-v4l2.c
211
solo_vlines(solo_dev), SOLO_HW_BPL);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
217
solo_vlines(solo_dev) * solo_bytesperline(solo_dev));
drivers/media/pci/solo6x10/solo6x10-v4l2.c
218
vbuf->sequence = solo_dev->sequence++;
drivers/media/pci/solo6x10/solo6x10-v4l2.c
225
static void solo_thread_try(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-v4l2.c
235
solo_reg_read(solo_dev, SOLO_VI_STATUS0));
drivers/media/pci/solo6x10/solo6x10-v4l2.c
236
if (cur_write == solo_dev->old_write)
drivers/media/pci/solo6x10/solo6x10-v4l2.c
239
spin_lock(&solo_dev->slock);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
241
if (list_empty(&solo_dev->vidq_active))
drivers/media/pci/solo6x10/solo6x10-v4l2.c
244
vb = list_first_entry(&solo_dev->vidq_active, struct solo_vb2_buf,
drivers/media/pci/solo6x10/solo6x10-v4l2.c
247
solo_dev->old_write = cur_write;
drivers/media/pci/solo6x10/solo6x10-v4l2.c
250
spin_unlock(&solo_dev->slock);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
252
solo_fillbuf(solo_dev, &vb->vb.vb2_buf);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
255
assert_spin_locked(&solo_dev->slock);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
256
spin_unlock(&solo_dev->slock);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
261
struct solo_dev *solo_dev = data;
drivers/media/pci/solo6x10/solo6x10-v4l2.c
265
add_wait_queue(&solo_dev->disp_thread_wait, &wait);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
272
solo_thread_try(solo_dev);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
276
remove_wait_queue(&solo_dev->disp_thread_wait, &wait);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
281
static int solo_start_thread(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-v4l2.c
285
solo_dev->kthread = kthread_run(solo_thread, solo_dev, SOLO6X10_NAME "_disp");
drivers/media/pci/solo6x10/solo6x10-v4l2.c
287
if (IS_ERR(solo_dev->kthread)) {
drivers/media/pci/solo6x10/solo6x10-v4l2.c
288
ret = PTR_ERR(solo_dev->kthread);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
289
solo_dev->kthread = NULL;
drivers/media/pci/solo6x10/solo6x10-v4l2.c
292
solo_irq_on(solo_dev, SOLO_IRQ_VIDEO_IN);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
297
static void solo_stop_thread(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-v4l2.c
299
if (!solo_dev->kthread)
drivers/media/pci/solo6x10/solo6x10-v4l2.c
302
solo_irq_off(solo_dev, SOLO_IRQ_VIDEO_IN);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
303
kthread_stop(solo_dev->kthread);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
304
solo_dev->kthread = NULL;
drivers/media/pci/solo6x10/solo6x10-v4l2.c
311
struct solo_dev *solo_dev = vb2_get_drv_priv(q);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
313
sizes[0] = solo_image_size(solo_dev);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
324
struct solo_dev *solo_dev = vb2_get_drv_priv(q);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
326
solo_dev->sequence = 0;
drivers/media/pci/solo6x10/solo6x10-v4l2.c
327
return solo_start_thread(solo_dev);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
332
struct solo_dev *solo_dev = vb2_get_drv_priv(q);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
334
solo_stop_thread(solo_dev);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
336
spin_lock(&solo_dev->slock);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
337
while (!list_empty(&solo_dev->vidq_active)) {
drivers/media/pci/solo6x10/solo6x10-v4l2.c
339
solo_dev->vidq_active.next,
drivers/media/pci/solo6x10/solo6x10-v4l2.c
345
spin_unlock(&solo_dev->slock);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
346
INIT_LIST_HEAD(&solo_dev->vidq_active);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
35
static inline void erase_on(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-v4l2.c
353
struct solo_dev *solo_dev = vb2_get_drv_priv(vq);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
357
spin_lock(&solo_dev->slock);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
358
list_add_tail(&solo_vb->list, &solo_dev->vidq_active);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
359
spin_unlock(&solo_dev->slock);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
360
wake_up_interruptible(&solo_dev->disp_thread_wait);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
37
solo_reg_write(solo_dev, SOLO_VO_DISP_ERASE, SOLO_VO_DISP_ERASE_ON);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
378
static int solo_enum_ext_input(struct solo_dev *solo_dev,
drivers/media/pci/solo6x10/solo6x10-v4l2.c
38
solo_dev->erasing = 1;
drivers/media/pci/solo6x10/solo6x10-v4l2.c
381
int ext = input->index - solo_dev->nr_chans;
drivers/media/pci/solo6x10/solo6x10-v4l2.c
384
if (ext >= solo_dev->nr_ext)
drivers/media/pci/solo6x10/solo6x10-v4l2.c
39
solo_dev->frame_blank = 0;
drivers/media/pci/solo6x10/solo6x10-v4l2.c
405
struct solo_dev *solo_dev = video_drvdata(file);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
407
if (input->index >= solo_dev->nr_chans) {
drivers/media/pci/solo6x10/solo6x10-v4l2.c
408
int ret = solo_enum_ext_input(solo_dev, input);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
417
if (!tw28_get_video_status(solo_dev, input->index))
drivers/media/pci/solo6x10/solo6x10-v4l2.c
42
static inline int erase_off(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-v4l2.c
422
input->std = solo_dev->vfd->tvnorms;
drivers/media/pci/solo6x10/solo6x10-v4l2.c
428
struct solo_dev *solo_dev = video_drvdata(file);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
429
int ret = solo_v4l2_set_ch(solo_dev, index);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
432
while (erase_off(solo_dev))
drivers/media/pci/solo6x10/solo6x10-v4l2.c
44
if (!solo_dev->erasing)
drivers/media/pci/solo6x10/solo6x10-v4l2.c
441
struct solo_dev *solo_dev = video_drvdata(file);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
443
*index = solo_dev->cur_disp_ch;
drivers/media/pci/solo6x10/solo6x10-v4l2.c
461
struct solo_dev *solo_dev = video_drvdata(file);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
463
int image_size = solo_image_size(solo_dev);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
468
pix->width = solo_dev->video_hsize;
drivers/media/pci/solo6x10/solo6x10-v4l2.c
469
pix->height = solo_vlines(solo_dev);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
48
if (!solo_dev->frame_blank)
drivers/media/pci/solo6x10/solo6x10-v4l2.c
480
struct solo_dev *solo_dev = video_drvdata(file);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
482
if (vb2_is_busy(&solo_dev->vidq))
drivers/media/pci/solo6x10/solo6x10-v4l2.c
49
solo_reg_write(solo_dev, SOLO_VO_DISP_ERASE, 0);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
493
struct solo_dev *solo_dev = video_drvdata(file);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
496
pix->width = solo_dev->video_hsize;
drivers/media/pci/solo6x10/solo6x10-v4l2.c
497
pix->height = solo_vlines(solo_dev);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
500
pix->sizeimage = solo_image_size(solo_dev);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
502
pix->bytesperline = solo_bytesperline(solo_dev);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
509
struct solo_dev *solo_dev = video_drvdata(file);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
51
if (solo_dev->frame_blank++ >= 8)
drivers/media/pci/solo6x10/solo6x10-v4l2.c
511
if (solo_dev->video_type == SOLO_VO_FMT_TYPE_NTSC)
drivers/media/pci/solo6x10/solo6x10-v4l2.c
518
int solo_set_video_type(struct solo_dev *solo_dev, bool is_50hz)
drivers/media/pci/solo6x10/solo6x10-v4l2.c
52
solo_dev->erasing = 0;
drivers/media/pci/solo6x10/solo6x10-v4l2.c
523
if (vb2_is_busy(&solo_dev->vidq))
drivers/media/pci/solo6x10/solo6x10-v4l2.c
525
for (i = 0; i < solo_dev->nr_chans; i++)
drivers/media/pci/solo6x10/solo6x10-v4l2.c
526
if (vb2_is_busy(&solo_dev->v4l2_enc[i]->vidq))
drivers/media/pci/solo6x10/solo6x10-v4l2.c
528
solo_dev->video_type = is_50hz ? SOLO_VO_FMT_TYPE_PAL :
drivers/media/pci/solo6x10/solo6x10-v4l2.c
531
solo_disp_init(solo_dev);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
532
solo_enc_init(solo_dev);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
533
solo_tw28_init(solo_dev);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
534
for (i = 0; i < solo_dev->nr_chans; i++)
drivers/media/pci/solo6x10/solo6x10-v4l2.c
535
solo_update_mode(solo_dev->v4l2_enc[i]);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
536
return solo_v4l2_set_ch(solo_dev, solo_dev->cur_disp_ch);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
541
struct solo_dev *solo_dev = video_drvdata(file);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
543
return solo_set_video_type(solo_dev, std & V4L2_STD_625_50);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
548
struct solo_dev *solo_dev =
drivers/media/pci/solo6x10/solo6x10-v4l2.c
549
container_of(ctrl->handler, struct solo_dev, disp_hdl);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
554
solo_reg_write(solo_dev, SOLO_VI_MOTION_BORDER,
drivers/media/pci/solo6x10/solo6x10-v4l2.c
559
solo_reg_write(solo_dev, SOLO_VI_MOTION_BAR,
drivers/media/pci/solo6x10/solo6x10-v4l2.c
565
solo_reg_write(solo_dev, SOLO_VI_MOTION_BORDER, 0);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
566
solo_reg_write(solo_dev, SOLO_VI_MOTION_BAR, 0);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
57
void solo_video_in_isr(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-v4l2.c
59
wake_up_interruptible_all(&solo_dev->disp_thread_wait);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
62
static void solo_win_setup(struct solo_dev *solo_dev, u8 ch,
drivers/media/pci/solo6x10/solo6x10-v4l2.c
635
int solo_v4l2_init(struct solo_dev *solo_dev, unsigned nr)
drivers/media/pci/solo6x10/solo6x10-v4l2.c
640
init_waitqueue_head(&solo_dev->disp_thread_wait);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
641
spin_lock_init(&solo_dev->slock);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
642
mutex_init(&solo_dev->lock);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
643
INIT_LIST_HEAD(&solo_dev->vidq_active);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
645
solo_dev->vfd = video_device_alloc();
drivers/media/pci/solo6x10/solo6x10-v4l2.c
646
if (!solo_dev->vfd)
drivers/media/pci/solo6x10/solo6x10-v4l2.c
649
*solo_dev->vfd = solo_v4l2_template;
drivers/media/pci/solo6x10/solo6x10-v4l2.c
65
if (ch >= solo_dev->nr_chans)
drivers/media/pci/solo6x10/solo6x10-v4l2.c
650
solo_dev->vfd->v4l2_dev = &solo_dev->v4l2_dev;
drivers/media/pci/solo6x10/solo6x10-v4l2.c
651
solo_dev->vfd->queue = &solo_dev->vidq;
drivers/media/pci/solo6x10/solo6x10-v4l2.c
652
solo_dev->vfd->lock = &solo_dev->lock;
drivers/media/pci/solo6x10/solo6x10-v4l2.c
653
v4l2_ctrl_handler_init(&solo_dev->disp_hdl, 1);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
654
v4l2_ctrl_new_custom(&solo_dev->disp_hdl, &solo_motion_trace_ctrl, NULL);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
655
if (solo_dev->disp_hdl.error) {
drivers/media/pci/solo6x10/solo6x10-v4l2.c
656
ret = solo_dev->disp_hdl.error;
drivers/media/pci/solo6x10/solo6x10-v4l2.c
659
solo_dev->vfd->ctrl_handler = &solo_dev->disp_hdl;
drivers/media/pci/solo6x10/solo6x10-v4l2.c
661
video_set_drvdata(solo_dev->vfd, solo_dev);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
663
solo_dev->vidq.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
drivers/media/pci/solo6x10/solo6x10-v4l2.c
664
solo_dev->vidq.io_modes = VB2_MMAP | VB2_USERPTR | VB2_READ;
drivers/media/pci/solo6x10/solo6x10-v4l2.c
665
solo_dev->vidq.ops = &solo_video_qops;
drivers/media/pci/solo6x10/solo6x10-v4l2.c
666
solo_dev->vidq.mem_ops = &vb2_dma_contig_memops;
drivers/media/pci/solo6x10/solo6x10-v4l2.c
667
solo_dev->vidq.drv_priv = solo_dev;
drivers/media/pci/solo6x10/solo6x10-v4l2.c
668
solo_dev->vidq.timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC;
drivers/media/pci/solo6x10/solo6x10-v4l2.c
669
solo_dev->vidq.gfp_flags = __GFP_DMA32 | __GFP_KSWAPD_RECLAIM;
drivers/media/pci/solo6x10/solo6x10-v4l2.c
670
solo_dev->vidq.buf_struct_size = sizeof(struct solo_vb2_buf);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
671
solo_dev->vidq.lock = &solo_dev->lock;
drivers/media/pci/solo6x10/solo6x10-v4l2.c
672
solo_dev->vidq.dev = &solo_dev->pdev->dev;
drivers/media/pci/solo6x10/solo6x10-v4l2.c
673
ret = vb2_queue_init(&solo_dev->vidq);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
678
for (i = 0; i < solo_dev->nr_chans; i++) {
drivers/media/pci/solo6x10/solo6x10-v4l2.c
679
solo_v4l2_set_ch(solo_dev, i);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
680
while (erase_off(solo_dev))
drivers/media/pci/solo6x10/solo6x10-v4l2.c
685
solo_v4l2_set_ch(solo_dev, 0);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
686
while (erase_off(solo_dev))
drivers/media/pci/solo6x10/solo6x10-v4l2.c
689
ret = video_register_device(solo_dev->vfd, VFL_TYPE_VIDEO, nr);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
69
solo_reg_write(solo_dev, SOLO_VI_WIN_CTRL0(ch),
drivers/media/pci/solo6x10/solo6x10-v4l2.c
693
snprintf(solo_dev->vfd->name, sizeof(solo_dev->vfd->name), "%s (%i)",
drivers/media/pci/solo6x10/solo6x10-v4l2.c
694
SOLO6X10_NAME, solo_dev->vfd->num);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
696
dev_info(&solo_dev->pdev->dev, "Display as /dev/video%d with %d inputs (%d extended)\n",
drivers/media/pci/solo6x10/solo6x10-v4l2.c
697
solo_dev->vfd->num,
drivers/media/pci/solo6x10/solo6x10-v4l2.c
698
solo_dev->nr_chans, solo_dev->nr_ext);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
703
video_device_release(solo_dev->vfd);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
704
v4l2_ctrl_handler_free(&solo_dev->disp_hdl);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
705
solo_dev->vfd = NULL;
drivers/media/pci/solo6x10/solo6x10-v4l2.c
709
void solo_v4l2_exit(struct solo_dev *solo_dev)
drivers/media/pci/solo6x10/solo6x10-v4l2.c
711
if (solo_dev->vfd == NULL)
drivers/media/pci/solo6x10/solo6x10-v4l2.c
714
video_unregister_device(solo_dev->vfd);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
715
v4l2_ctrl_handler_free(&solo_dev->disp_hdl);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
716
solo_dev->vfd = NULL;
drivers/media/pci/solo6x10/solo6x10-v4l2.c
75
solo_reg_write(solo_dev, SOLO_VI_WIN_CTRL1(ch),
drivers/media/pci/solo6x10/solo6x10-v4l2.c
80
static int solo_v4l2_ch_ext_4up(struct solo_dev *solo_dev, u8 idx, int on)
drivers/media/pci/solo6x10/solo6x10-v4l2.c
84
if (ch >= solo_dev->nr_chans)
drivers/media/pci/solo6x10/solo6x10-v4l2.c
91
solo_win_setup(solo_dev, i, solo_dev->video_hsize,
drivers/media/pci/solo6x10/solo6x10-v4l2.c
92
solo_vlines(solo_dev),
drivers/media/pci/solo6x10/solo6x10-v4l2.c
93
solo_dev->video_hsize,
drivers/media/pci/solo6x10/solo6x10-v4l2.c
94
solo_vlines(solo_dev), 0);
drivers/media/pci/solo6x10/solo6x10-v4l2.c
99
solo_win_setup(solo_dev, ch, 0, 0, solo_dev->video_hsize / 2,
drivers/media/pci/solo6x10/solo6x10.h
140
struct solo_dev *solo_dev;
drivers/media/pci/solo6x10/solo6x10.h
275
static inline u32 solo_reg_read(struct solo_dev *solo_dev, int reg)
drivers/media/pci/solo6x10/solo6x10.h
277
return readl(solo_dev->reg_base + reg);
drivers/media/pci/solo6x10/solo6x10.h
280
static inline void solo_reg_write(struct solo_dev *solo_dev, int reg,
drivers/media/pci/solo6x10/solo6x10.h
285
writel(data, solo_dev->reg_base + reg);
drivers/media/pci/solo6x10/solo6x10.h
286
pci_read_config_word(solo_dev->pdev, PCI_STATUS, &val);
drivers/media/pci/solo6x10/solo6x10.h
289
static inline void solo_irq_on(struct solo_dev *dev, u32 mask)
drivers/media/pci/solo6x10/solo6x10.h
295
static inline void solo_irq_off(struct solo_dev *dev, u32 mask)
drivers/media/pci/solo6x10/solo6x10.h
302
int solo_disp_init(struct solo_dev *solo_dev);
drivers/media/pci/solo6x10/solo6x10.h
303
void solo_disp_exit(struct solo_dev *solo_dev);
drivers/media/pci/solo6x10/solo6x10.h
305
int solo_gpio_init(struct solo_dev *solo_dev);
drivers/media/pci/solo6x10/solo6x10.h
306
void solo_gpio_exit(struct solo_dev *solo_dev);
drivers/media/pci/solo6x10/solo6x10.h
308
int solo_i2c_init(struct solo_dev *solo_dev);
drivers/media/pci/solo6x10/solo6x10.h
309
void solo_i2c_exit(struct solo_dev *solo_dev);
drivers/media/pci/solo6x10/solo6x10.h
311
int solo_p2m_init(struct solo_dev *solo_dev);
drivers/media/pci/solo6x10/solo6x10.h
312
void solo_p2m_exit(struct solo_dev *solo_dev);
drivers/media/pci/solo6x10/solo6x10.h
314
int solo_v4l2_init(struct solo_dev *solo_dev, unsigned nr);
drivers/media/pci/solo6x10/solo6x10.h
315
void solo_v4l2_exit(struct solo_dev *solo_dev);
drivers/media/pci/solo6x10/solo6x10.h
317
int solo_enc_init(struct solo_dev *solo_dev);
drivers/media/pci/solo6x10/solo6x10.h
318
void solo_enc_exit(struct solo_dev *solo_dev);
drivers/media/pci/solo6x10/solo6x10.h
320
int solo_enc_v4l2_init(struct solo_dev *solo_dev, unsigned nr);
drivers/media/pci/solo6x10/solo6x10.h
321
void solo_enc_v4l2_exit(struct solo_dev *solo_dev);
drivers/media/pci/solo6x10/solo6x10.h
323
int solo_g723_init(struct solo_dev *solo_dev);
drivers/media/pci/solo6x10/solo6x10.h
324
void solo_g723_exit(struct solo_dev *solo_dev);
drivers/media/pci/solo6x10/solo6x10.h
327
int solo_i2c_isr(struct solo_dev *solo_dev);
drivers/media/pci/solo6x10/solo6x10.h
328
void solo_p2m_isr(struct solo_dev *solo_dev, int id);
drivers/media/pci/solo6x10/solo6x10.h
329
void solo_p2m_error_isr(struct solo_dev *solo_dev);
drivers/media/pci/solo6x10/solo6x10.h
330
void solo_enc_v4l2_isr(struct solo_dev *solo_dev);
drivers/media/pci/solo6x10/solo6x10.h
331
void solo_g723_isr(struct solo_dev *solo_dev);
drivers/media/pci/solo6x10/solo6x10.h
332
void solo_motion_isr(struct solo_dev *solo_dev);
drivers/media/pci/solo6x10/solo6x10.h
333
void solo_video_in_isr(struct solo_dev *solo_dev);
drivers/media/pci/solo6x10/solo6x10.h
336
u8 solo_i2c_readbyte(struct solo_dev *solo_dev, int id, u8 addr, u8 off);
drivers/media/pci/solo6x10/solo6x10.h
337
void solo_i2c_writebyte(struct solo_dev *solo_dev, int id, u8 addr, u8 off,
drivers/media/pci/solo6x10/solo6x10.h
341
int solo_p2m_dma_t(struct solo_dev *solo_dev, int wr,
drivers/media/pci/solo6x10/solo6x10.h
344
int solo_p2m_dma(struct solo_dev *solo_dev, int wr,
drivers/media/pci/solo6x10/solo6x10.h
350
int solo_p2m_dma_desc(struct solo_dev *solo_dev,
drivers/media/pci/solo6x10/solo6x10.h
355
int solo_set_video_type(struct solo_dev *solo_dev, bool is_50hz);
drivers/media/pci/solo6x10/solo6x10.h
359
int solo_set_motion_threshold(struct solo_dev *solo_dev, u8 ch, u16 val);
drivers/media/pci/solo6x10/solo6x10.h
360
int solo_set_motion_block(struct solo_dev *solo_dev, u8 ch,
drivers/media/pci/solo6x10/solo6x10.h
368
unsigned int solo_eeprom_ewen(struct solo_dev *solo_dev, int w_en);
drivers/media/pci/solo6x10/solo6x10.h
369
__be16 solo_eeprom_read(struct solo_dev *solo_dev, int loc);
drivers/media/pci/solo6x10/solo6x10.h
370
int solo_eeprom_write(struct solo_dev *solo_dev, int loc,
drivers/media/pci/solo6x10/solo6x10.h
374
void solo_s_jpeg_qp(struct solo_dev *solo_dev, unsigned int ch,
drivers/media/pci/solo6x10/solo6x10.h
376
int solo_g_jpeg_qp(struct solo_dev *solo_dev, unsigned int ch);