Home
last modified time | relevance | path

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

/Linux-v6.1/drivers/media/pci/solo6x10/
Dsolo6x10-v4l2.c35 static inline void erase_on(struct solo_dev *solo_dev) in erase_on() argument
37 solo_reg_write(solo_dev, SOLO_VO_DISP_ERASE, SOLO_VO_DISP_ERASE_ON); in erase_on()
38 solo_dev->erasing = 1; in erase_on()
39 solo_dev->frame_blank = 0; in erase_on()
42 static inline int erase_off(struct solo_dev *solo_dev) in erase_off() argument
44 if (!solo_dev->erasing) in erase_off()
48 if (!solo_dev->frame_blank) in erase_off()
49 solo_reg_write(solo_dev, SOLO_VO_DISP_ERASE, 0); in erase_off()
51 if (solo_dev->frame_blank++ >= 8) in erase_off()
52 solo_dev->erasing = 0; in erase_off()
[all …]
Dsolo6x10-i2c.c25 u8 solo_i2c_readbyte(struct solo_dev *solo_dev, int id, u8 addr, u8 off) in solo_i2c_readbyte() argument
40 i2c_transfer(&solo_dev->i2c_adap[id], msgs, 2); in solo_i2c_readbyte()
45 void solo_i2c_writebyte(struct solo_dev *solo_dev, int id, u8 addr, in solo_i2c_writebyte() argument
58 i2c_transfer(&solo_dev->i2c_adap[id], &msgs, 1); in solo_i2c_writebyte()
61 static void solo_i2c_flush(struct solo_dev *solo_dev, int wr) in solo_i2c_flush() argument
65 ctrl = SOLO_IIC_CH_SET(solo_dev->i2c_id); in solo_i2c_flush()
67 if (solo_dev->i2c_state == IIC_STATE_START) in solo_i2c_flush()
74 if (!(solo_dev->i2c_msg->flags & I2C_M_NO_RD_ACK)) in solo_i2c_flush()
78 if (solo_dev->i2c_msg_ptr == solo_dev->i2c_msg->len) in solo_i2c_flush()
81 solo_reg_write(solo_dev, SOLO_IIC_CTRL, ctrl); in solo_i2c_flush()
[all …]
Dsolo6x10-disp.c29 static void solo_vin_config(struct solo_dev *solo_dev) in solo_vin_config() argument
31 solo_dev->vin_hstart = 8; in solo_vin_config()
32 solo_dev->vin_vstart = 2; in solo_vin_config()
34 solo_reg_write(solo_dev, SOLO_SYS_VCLK, in solo_vin_config()
45 solo_reg_write(solo_dev, SOLO_VI_ACT_I_P, in solo_vin_config()
46 SOLO_VI_H_START(solo_dev->vin_hstart) | in solo_vin_config()
47 SOLO_VI_V_START(solo_dev->vin_vstart) | in solo_vin_config()
48 SOLO_VI_V_STOP(solo_dev->vin_vstart + in solo_vin_config()
49 solo_dev->video_vsize)); in solo_vin_config()
51 solo_reg_write(solo_dev, SOLO_VI_ACT_I_S, in solo_vin_config()
[all …]
Dsolo6x10-enc.c24 static void solo_capture_config(struct solo_dev *solo_dev) in solo_capture_config() argument
31 solo_reg_write(solo_dev, SOLO_CAP_BASE, in solo_capture_config()
32 SOLO_CAP_MAX_PAGE((SOLO_CAP_EXT_SIZE(solo_dev) in solo_capture_config()
34 | SOLO_CAP_BASE_ADDR(SOLO_CAP_EXT_ADDR(solo_dev) >> 16)); in solo_capture_config()
37 if (solo_dev->type == SOLO_DEV_6110) { in solo_capture_config()
40 solo_reg_write(solo_dev, SOLO_CAP_BTW, in solo_capture_config()
44 solo_reg_write(solo_dev, SOLO_CAP_BTW, in solo_capture_config()
50 width = solo_dev->video_hsize; in solo_capture_config()
51 height = solo_dev->video_vsize; in solo_capture_config()
52 solo_reg_write(solo_dev, SOLO_DIM_SCALE1, in solo_capture_config()
[all …]
Dsolo6x10-core.c39 static void solo_set_time(struct solo_dev *solo_dev) in solo_set_time() argument
46 solo_reg_write(solo_dev, SOLO_TIMER_SEC, (u32)ts.tv_sec); in solo_set_time()
47 solo_reg_write(solo_dev, SOLO_TIMER_USEC, (u32)ts.tv_nsec / NSEC_PER_USEC); in solo_set_time()
50 static void solo_timer_sync(struct solo_dev *solo_dev) in solo_timer_sync() argument
56 if (solo_dev->type != SOLO_DEV_6110) in solo_timer_sync()
59 if (++solo_dev->time_sync < 60) in solo_timer_sync()
62 solo_dev->time_sync = 0; in solo_timer_sync()
64 sec = solo_reg_read(solo_dev, SOLO_TIMER_SEC); in solo_timer_sync()
65 usec = solo_reg_read(solo_dev, SOLO_TIMER_USEC); in solo_timer_sync()
74 solo_set_time(solo_dev); in solo_timer_sync()
[all …]
Dsolo6x10-gpio.c19 static void solo_gpio_mode(struct solo_dev *solo_dev, in solo_gpio_mode() argument
25 ret = solo_reg_read(solo_dev, SOLO_GPIO_CONFIG_0); in solo_gpio_mode()
36 solo_reg_write(solo_dev, SOLO_GPIO_CONFIG_0, ret); in solo_gpio_mode()
39 ret = solo_reg_read(solo_dev, SOLO_GPIO_CONFIG_1); in solo_gpio_mode()
54 solo_reg_write(solo_dev, SOLO_GPIO_CONFIG_1, ret); in solo_gpio_mode()
57 static void solo_gpio_set(struct solo_dev *solo_dev, unsigned int value) in solo_gpio_set() argument
59 solo_reg_write(solo_dev, SOLO_GPIO_DATA_OUT, in solo_gpio_set()
60 solo_reg_read(solo_dev, SOLO_GPIO_DATA_OUT) | value); in solo_gpio_set()
63 static void solo_gpio_clear(struct solo_dev *solo_dev, unsigned int value) in solo_gpio_clear() argument
65 solo_reg_write(solo_dev, SOLO_GPIO_DATA_OUT, in solo_gpio_clear()
[all …]
Dsolo6x10.h140 struct solo_dev *solo_dev; member
181 struct solo_dev { struct
275 static inline u32 solo_reg_read(struct solo_dev *solo_dev, int reg) in solo_reg_read() argument
277 return readl(solo_dev->reg_base + reg); in solo_reg_read()
280 static inline void solo_reg_write(struct solo_dev *solo_dev, int reg, in solo_reg_write() argument
285 writel(data, solo_dev->reg_base + reg); in solo_reg_write()
286 pci_read_config_word(solo_dev->pdev, PCI_STATUS, &val); in solo_reg_write()
289 static inline void solo_irq_on(struct solo_dev *dev, u32 mask) in solo_irq_on()
295 static inline void solo_irq_off(struct solo_dev *dev, u32 mask) in solo_irq_off()
302 int solo_disp_init(struct solo_dev *solo_dev);
[all …]
Dsolo6x10-tw28.c171 static u8 tw_readbyte(struct solo_dev *solo_dev, int chip_id, u8 tw6x_off, in tw_readbyte() argument
174 if (is_tw286x(solo_dev, chip_id)) in tw_readbyte()
175 return solo_i2c_readbyte(solo_dev, SOLO_I2C_TW, in tw_readbyte()
179 return solo_i2c_readbyte(solo_dev, SOLO_I2C_TW, in tw_readbyte()
184 static void tw_writebyte(struct solo_dev *solo_dev, int chip_id, in tw_writebyte() argument
187 if (is_tw286x(solo_dev, chip_id)) in tw_writebyte()
188 solo_i2c_writebyte(solo_dev, SOLO_I2C_TW, in tw_writebyte()
192 solo_i2c_writebyte(solo_dev, SOLO_I2C_TW, in tw_writebyte()
197 static void tw_write_and_verify(struct solo_dev *solo_dev, u8 addr, u8 off, in tw_write_and_verify() argument
203 u8 rval = solo_i2c_readbyte(solo_dev, SOLO_I2C_TW, addr, off); in tw_write_and_verify()
[all …]
Dsolo6x10-eeprom.c26 #define eeprom_delay() solo_reg_read(solo_dev, SOLO_EEPROM_CTRL)
31 ret = solo_eeprom_reg_read(solo_dev); \
43 static unsigned int solo_eeprom_reg_read(struct solo_dev *solo_dev) in solo_eeprom_reg_read() argument
45 return solo_reg_read(solo_dev, SOLO_EEPROM_CTRL) & EE_DATA_READ; in solo_eeprom_reg_read()
48 static void solo_eeprom_reg_write(struct solo_dev *solo_dev, u32 data) in solo_eeprom_reg_write() argument
50 solo_reg_write(solo_dev, SOLO_EEPROM_CTRL, data); in solo_eeprom_reg_write()
54 static void solo_eeprom_cmd(struct solo_dev *solo_dev, int cmd) in solo_eeprom_cmd() argument
58 solo_eeprom_reg_write(solo_dev, SOLO_EEPROM_ACCESS_EN); in solo_eeprom_cmd()
59 solo_eeprom_reg_write(solo_dev, SOLO_EEPROM_ENABLE); in solo_eeprom_cmd()
64 solo_eeprom_reg_write(solo_dev, SOLO_EEPROM_ENABLE | dataval); in solo_eeprom_cmd()
[all …]
Dsolo6x10-p2m.c28 int solo_p2m_dma(struct solo_dev *solo_dev, int wr, in solo_p2m_dma() argument
40 dma_addr = dma_map_single(&solo_dev->pdev->dev, sys_addr, size, in solo_p2m_dma()
42 if (dma_mapping_error(&solo_dev->pdev->dev, dma_addr)) in solo_p2m_dma()
45 ret = solo_p2m_dma_t(solo_dev, wr, dma_addr, ext_addr, size, in solo_p2m_dma()
48 dma_unmap_single(&solo_dev->pdev->dev, dma_addr, size, in solo_p2m_dma()
55 int solo_p2m_dma_desc(struct solo_dev *solo_dev, in solo_p2m_dma_desc() argument
66 if (solo_dev->type != SOLO_DEV_6110 && multi_p2m) in solo_p2m_dma_desc()
67 p2m_id = atomic_inc_return(&solo_dev->p2m_count) % SOLO_NR_P2M; in solo_p2m_dma_desc()
69 p2m_dev = &solo_dev->p2m_dev[p2m_id]; in solo_p2m_dma_desc()
77 if (desc_cnt > 1 && solo_dev->type != SOLO_DEV_6110 && desc_mode) { in solo_p2m_dma_desc()
[all …]
Dsolo6x10-v4l2-enc.c95 struct solo_dev *solo_dev = solo_enc->solo_dev; in solo_is_motion_on() local
97 return (solo_dev->motion_mask >> solo_enc->ch) & 1; in solo_is_motion_on()
102 struct solo_dev *solo_dev = solo_enc->solo_dev; in solo_motion_detected() local
108 if (solo_reg_read(solo_dev, SOLO_VI_MOT_STATUS) & ch_mask) { in solo_motion_detected()
109 solo_reg_write(solo_dev, SOLO_VI_MOT_CLEAR, ch_mask); in solo_motion_detected()
119 struct solo_dev *solo_dev = solo_enc->solo_dev; in solo_motion_toggle() local
126 solo_dev->motion_mask |= mask; in solo_motion_toggle()
128 solo_dev->motion_mask &= ~mask; in solo_motion_toggle()
130 solo_reg_write(solo_dev, SOLO_VI_MOT_CLEAR, mask); in solo_motion_toggle()
132 solo_reg_write(solo_dev, SOLO_VI_MOT_ADR, in solo_motion_toggle()
[all …]
Dsolo6x10-g723.c48 struct solo_dev *solo_dev; member
53 static void solo_g723_config(struct solo_dev *solo_dev) in solo_g723_config() argument
57 clk_div = (solo_dev->clock_mhz * 1000000) in solo_g723_config()
60 solo_reg_write(solo_dev, SOLO_AUDIO_SAMPLE, in solo_g723_config()
64 solo_reg_write(solo_dev, SOLO_AUDIO_FDMA_INTR, in solo_g723_config()
67 | SOLO_AUDIO_FDMA_BASE(SOLO_G723_EXT_ADDR(solo_dev) >> 16)); in solo_g723_config()
69 solo_reg_write(solo_dev, SOLO_AUDIO_CONTROL, in solo_g723_config()
76 void solo_g723_isr(struct solo_dev *solo_dev) in solo_g723_isr() argument
79 &solo_dev->snd_pcm->streams[SNDRV_PCM_STREAM_CAPTURE]; in solo_g723_isr()
88 if (snd_pcm_substream_chip(ss) == solo_dev) in solo_g723_isr()
[all …]
Dsolo6x10-tw28.h41 int solo_tw28_init(struct solo_dev *solo_dev);
43 int tw28_set_ctrl_val(struct solo_dev *solo_dev, u32 ctrl, u8 ch, s32 val);
44 int tw28_get_ctrl_val(struct solo_dev *solo_dev, u32 ctrl, u8 ch, s32 *val);
45 bool tw28_has_sharpness(struct solo_dev *solo_dev, u8 ch);
47 u8 tw28_get_audio_gain(struct solo_dev *solo_dev, u8 ch);
48 void tw28_set_audio_gain(struct solo_dev *solo_dev, u8 ch, u8 val);
49 int tw28_get_video_status(struct solo_dev *solo_dev, u8 ch);