Home
last modified time | relevance | path

Searched refs:solo_dev (Results 1 – 13 of 13) sorted by relevance

/Linux-v4.19/drivers/media/pci/solo6x10/
Dsolo6x10-v4l2.c44 static inline void erase_on(struct solo_dev *solo_dev) in erase_on() argument
46 solo_reg_write(solo_dev, SOLO_VO_DISP_ERASE, SOLO_VO_DISP_ERASE_ON); in erase_on()
47 solo_dev->erasing = 1; in erase_on()
48 solo_dev->frame_blank = 0; in erase_on()
51 static inline int erase_off(struct solo_dev *solo_dev) in erase_off() argument
53 if (!solo_dev->erasing) in erase_off()
57 if (!solo_dev->frame_blank) in erase_off()
58 solo_reg_write(solo_dev, SOLO_VO_DISP_ERASE, 0); in erase_off()
60 if (solo_dev->frame_blank++ >= 8) in erase_off()
61 solo_dev->erasing = 0; in erase_off()
[all …]
Dsolo6x10-i2c.c34 u8 solo_i2c_readbyte(struct solo_dev *solo_dev, int id, u8 addr, u8 off) in solo_i2c_readbyte() argument
49 i2c_transfer(&solo_dev->i2c_adap[id], msgs, 2); in solo_i2c_readbyte()
54 void solo_i2c_writebyte(struct solo_dev *solo_dev, int id, u8 addr, in solo_i2c_writebyte() argument
67 i2c_transfer(&solo_dev->i2c_adap[id], &msgs, 1); in solo_i2c_writebyte()
70 static void solo_i2c_flush(struct solo_dev *solo_dev, int wr) in solo_i2c_flush() argument
74 ctrl = SOLO_IIC_CH_SET(solo_dev->i2c_id); in solo_i2c_flush()
76 if (solo_dev->i2c_state == IIC_STATE_START) in solo_i2c_flush()
83 if (!(solo_dev->i2c_msg->flags & I2C_M_NO_RD_ACK)) in solo_i2c_flush()
87 if (solo_dev->i2c_msg_ptr == solo_dev->i2c_msg->len) in solo_i2c_flush()
90 solo_reg_write(solo_dev, SOLO_IIC_CTRL, ctrl); in solo_i2c_flush()
[all …]
Dsolo6x10-disp.c38 static void solo_vin_config(struct solo_dev *solo_dev) in solo_vin_config() argument
40 solo_dev->vin_hstart = 8; in solo_vin_config()
41 solo_dev->vin_vstart = 2; in solo_vin_config()
43 solo_reg_write(solo_dev, SOLO_SYS_VCLK, in solo_vin_config()
54 solo_reg_write(solo_dev, SOLO_VI_ACT_I_P, in solo_vin_config()
55 SOLO_VI_H_START(solo_dev->vin_hstart) | in solo_vin_config()
56 SOLO_VI_V_START(solo_dev->vin_vstart) | in solo_vin_config()
57 SOLO_VI_V_STOP(solo_dev->vin_vstart + in solo_vin_config()
58 solo_dev->video_vsize)); in solo_vin_config()
60 solo_reg_write(solo_dev, SOLO_VI_ACT_I_S, in solo_vin_config()
[all …]
Dsolo6x10-enc.c33 static void solo_capture_config(struct solo_dev *solo_dev) in solo_capture_config() argument
40 solo_reg_write(solo_dev, SOLO_CAP_BASE, in solo_capture_config()
41 SOLO_CAP_MAX_PAGE((SOLO_CAP_EXT_SIZE(solo_dev) in solo_capture_config()
43 | SOLO_CAP_BASE_ADDR(SOLO_CAP_EXT_ADDR(solo_dev) >> 16)); in solo_capture_config()
46 if (solo_dev->type == SOLO_DEV_6110) { in solo_capture_config()
49 solo_reg_write(solo_dev, SOLO_CAP_BTW, in solo_capture_config()
53 solo_reg_write(solo_dev, SOLO_CAP_BTW, in solo_capture_config()
59 width = solo_dev->video_hsize; in solo_capture_config()
60 height = solo_dev->video_vsize; in solo_capture_config()
61 solo_reg_write(solo_dev, SOLO_DIM_SCALE1, in solo_capture_config()
[all …]
Dsolo6x10-core.c48 static void solo_set_time(struct solo_dev *solo_dev) in solo_set_time() argument
55 solo_reg_write(solo_dev, SOLO_TIMER_SEC, (u32)ts.tv_sec); in solo_set_time()
56 solo_reg_write(solo_dev, SOLO_TIMER_USEC, (u32)ts.tv_nsec / NSEC_PER_USEC); in solo_set_time()
59 static void solo_timer_sync(struct solo_dev *solo_dev) in solo_timer_sync() argument
65 if (solo_dev->type != SOLO_DEV_6110) in solo_timer_sync()
68 if (++solo_dev->time_sync < 60) in solo_timer_sync()
71 solo_dev->time_sync = 0; in solo_timer_sync()
73 sec = solo_reg_read(solo_dev, SOLO_TIMER_SEC); in solo_timer_sync()
74 usec = solo_reg_read(solo_dev, SOLO_TIMER_USEC); in solo_timer_sync()
83 solo_set_time(solo_dev); in solo_timer_sync()
[all …]
Dsolo6x10-gpio.c28 static void solo_gpio_mode(struct solo_dev *solo_dev, in solo_gpio_mode() argument
34 ret = solo_reg_read(solo_dev, SOLO_GPIO_CONFIG_0); in solo_gpio_mode()
45 solo_reg_write(solo_dev, SOLO_GPIO_CONFIG_0, ret); in solo_gpio_mode()
48 ret = solo_reg_read(solo_dev, SOLO_GPIO_CONFIG_1); in solo_gpio_mode()
63 solo_reg_write(solo_dev, SOLO_GPIO_CONFIG_1, ret); in solo_gpio_mode()
66 static void solo_gpio_set(struct solo_dev *solo_dev, unsigned int value) in solo_gpio_set() argument
68 solo_reg_write(solo_dev, SOLO_GPIO_DATA_OUT, in solo_gpio_set()
69 solo_reg_read(solo_dev, SOLO_GPIO_DATA_OUT) | value); in solo_gpio_set()
72 static void solo_gpio_clear(struct solo_dev *solo_dev, unsigned int value) in solo_gpio_clear() argument
74 solo_reg_write(solo_dev, SOLO_GPIO_DATA_OUT, in solo_gpio_clear()
[all …]
Dsolo6x10.h149 struct solo_dev *solo_dev; member
190 struct solo_dev { struct
284 static inline u32 solo_reg_read(struct solo_dev *solo_dev, int reg) in solo_reg_read() argument
286 return readl(solo_dev->reg_base + reg); in solo_reg_read()
289 static inline void solo_reg_write(struct solo_dev *solo_dev, int reg, in solo_reg_write() argument
294 writel(data, solo_dev->reg_base + reg); in solo_reg_write()
295 pci_read_config_word(solo_dev->pdev, PCI_STATUS, &val); in solo_reg_write()
298 static inline void solo_irq_on(struct solo_dev *dev, u32 mask) in solo_irq_on()
304 static inline void solo_irq_off(struct solo_dev *dev, u32 mask) in solo_irq_off()
311 int solo_disp_init(struct solo_dev *solo_dev);
[all …]
Dsolo6x10-tw28.c180 static u8 tw_readbyte(struct solo_dev *solo_dev, int chip_id, u8 tw6x_off, in tw_readbyte() argument
183 if (is_tw286x(solo_dev, chip_id)) in tw_readbyte()
184 return solo_i2c_readbyte(solo_dev, SOLO_I2C_TW, in tw_readbyte()
188 return solo_i2c_readbyte(solo_dev, SOLO_I2C_TW, in tw_readbyte()
193 static void tw_writebyte(struct solo_dev *solo_dev, int chip_id, in tw_writebyte() argument
196 if (is_tw286x(solo_dev, chip_id)) in tw_writebyte()
197 solo_i2c_writebyte(solo_dev, SOLO_I2C_TW, in tw_writebyte()
201 solo_i2c_writebyte(solo_dev, SOLO_I2C_TW, in tw_writebyte()
206 static void tw_write_and_verify(struct solo_dev *solo_dev, u8 addr, u8 off, in tw_write_and_verify() argument
212 u8 rval = solo_i2c_readbyte(solo_dev, SOLO_I2C_TW, addr, off); in tw_write_and_verify()
[all …]
Dsolo6x10-eeprom.c35 #define eeprom_delay() solo_reg_read(solo_dev, SOLO_EEPROM_CTRL)
40 ret = solo_eeprom_reg_read(solo_dev); \
52 static unsigned int solo_eeprom_reg_read(struct solo_dev *solo_dev) in solo_eeprom_reg_read() argument
54 return solo_reg_read(solo_dev, SOLO_EEPROM_CTRL) & EE_DATA_READ; in solo_eeprom_reg_read()
57 static void solo_eeprom_reg_write(struct solo_dev *solo_dev, u32 data) in solo_eeprom_reg_write() argument
59 solo_reg_write(solo_dev, SOLO_EEPROM_CTRL, data); in solo_eeprom_reg_write()
63 static void solo_eeprom_cmd(struct solo_dev *solo_dev, int cmd) in solo_eeprom_cmd() argument
67 solo_eeprom_reg_write(solo_dev, SOLO_EEPROM_ACCESS_EN); in solo_eeprom_cmd()
68 solo_eeprom_reg_write(solo_dev, SOLO_EEPROM_ENABLE); in solo_eeprom_cmd()
73 solo_eeprom_reg_write(solo_dev, SOLO_EEPROM_ENABLE | dataval); in solo_eeprom_cmd()
[all …]
Dsolo6x10-p2m.c37 int solo_p2m_dma(struct solo_dev *solo_dev, int wr, in solo_p2m_dma() argument
49 dma_addr = pci_map_single(solo_dev->pdev, sys_addr, size, in solo_p2m_dma()
51 if (pci_dma_mapping_error(solo_dev->pdev, dma_addr)) in solo_p2m_dma()
54 ret = solo_p2m_dma_t(solo_dev, wr, dma_addr, ext_addr, size, in solo_p2m_dma()
57 pci_unmap_single(solo_dev->pdev, dma_addr, size, in solo_p2m_dma()
64 int solo_p2m_dma_desc(struct solo_dev *solo_dev, in solo_p2m_dma_desc() argument
75 if (solo_dev->type != SOLO_DEV_6110 && multi_p2m) in solo_p2m_dma_desc()
76 p2m_id = atomic_inc_return(&solo_dev->p2m_count) % SOLO_NR_P2M; in solo_p2m_dma_desc()
78 p2m_dev = &solo_dev->p2m_dev[p2m_id]; in solo_p2m_dma_desc()
86 if (desc_cnt > 1 && solo_dev->type != SOLO_DEV_6110 && desc_mode) { in solo_p2m_dma_desc()
[all …]
Dsolo6x10-v4l2-enc.c104 struct solo_dev *solo_dev = solo_enc->solo_dev; in solo_is_motion_on() local
106 return (solo_dev->motion_mask >> solo_enc->ch) & 1; in solo_is_motion_on()
111 struct solo_dev *solo_dev = solo_enc->solo_dev; in solo_motion_detected() local
117 if (solo_reg_read(solo_dev, SOLO_VI_MOT_STATUS) & ch_mask) { in solo_motion_detected()
118 solo_reg_write(solo_dev, SOLO_VI_MOT_CLEAR, ch_mask); in solo_motion_detected()
128 struct solo_dev *solo_dev = solo_enc->solo_dev; in solo_motion_toggle() local
135 solo_dev->motion_mask |= mask; in solo_motion_toggle()
137 solo_dev->motion_mask &= ~mask; in solo_motion_toggle()
139 solo_reg_write(solo_dev, SOLO_VI_MOT_CLEAR, mask); in solo_motion_toggle()
141 solo_reg_write(solo_dev, SOLO_VI_MOT_ADR, in solo_motion_toggle()
[all …]
Dsolo6x10-g723.c57 struct solo_dev *solo_dev; member
62 static void solo_g723_config(struct solo_dev *solo_dev) in solo_g723_config() argument
66 clk_div = (solo_dev->clock_mhz * 1000000) in solo_g723_config()
69 solo_reg_write(solo_dev, SOLO_AUDIO_SAMPLE, in solo_g723_config()
73 solo_reg_write(solo_dev, SOLO_AUDIO_FDMA_INTR, in solo_g723_config()
76 | SOLO_AUDIO_FDMA_BASE(SOLO_G723_EXT_ADDR(solo_dev) >> 16)); in solo_g723_config()
78 solo_reg_write(solo_dev, SOLO_AUDIO_CONTROL, in solo_g723_config()
85 void solo_g723_isr(struct solo_dev *solo_dev) in solo_g723_isr() argument
88 &solo_dev->snd_pcm->streams[SNDRV_PCM_STREAM_CAPTURE]; in solo_g723_isr()
97 if (snd_pcm_substream_chip(ss) == solo_dev) in solo_g723_isr()
[all …]
Dsolo6x10-tw28.h50 int solo_tw28_init(struct solo_dev *solo_dev);
52 int tw28_set_ctrl_val(struct solo_dev *solo_dev, u32 ctrl, u8 ch, s32 val);
53 int tw28_get_ctrl_val(struct solo_dev *solo_dev, u32 ctrl, u8 ch, s32 *val);
54 bool tw28_has_sharpness(struct solo_dev *solo_dev, u8 ch);
56 u8 tw28_get_audio_gain(struct solo_dev *solo_dev, u8 ch);
57 void tw28_set_audio_gain(struct solo_dev *solo_dev, u8 ch, u8 val);
58 int tw28_get_video_status(struct solo_dev *solo_dev, u8 ch);