Lines Matching refs:nvp6188

141 struct nvp6188 {  struct
174 #define to_nvp6188(sd) container_of(sd, struct nvp6188, subdev) argument
176 static int nvp6188_audio_init(struct nvp6188 *nvp6188);
177 static int __nvp6188_start_stream(struct nvp6188 *nvp6188);
178 static int __nvp6188_stop_stream(struct nvp6188 *nvp6188);
187 struct nvp6188 *nvp6188 = to_nvp6188(sd); in show_hotplug_status() local
189 return sprintf(buf, "%d\n", nvp6188->detect_status); in show_hotplug_status()
198 struct nvp6188 *nvp6188 = to_nvp6188(sd); in nvp6188_debug_func() local
200 nvp6188->disable_dump_register = (nvp6188->disable_dump_register) ? false : true; in nvp6188_debug_func()
201 return sprintf(buf, "switch disable_dump_register(%d)\n", nvp6188->disable_dump_register); in nvp6188_debug_func()
934 static int nv6188_read_htotal(struct nvp6188 *nvp6188, unsigned char ch) in nv6188_read_htotal() argument
938 struct i2c_client *client = nvp6188->client; in nv6188_read_htotal()
948 static unsigned char nv6188_read_vfc(struct nvp6188 *nvp6188, unsigned char ch) in nv6188_read_vfc() argument
951 struct i2c_client *client = nvp6188->client; in nv6188_read_vfc()
959 static __maybe_unused int nvp6188_auto_detect_hotplug(struct nvp6188 *nvp6188) in nvp6188_auto_detect_hotplug() argument
962 struct i2c_client *client = nvp6188->client; in nvp6188_auto_detect_hotplug()
964 nvp6188_read_reg(client, 0xa8, &nvp6188->detect_status); in nvp6188_auto_detect_hotplug()
977 nvp6188_find_best_fit(struct nvp6188 *nvp6188, in nvp6188_find_best_fit() argument
986 for (i = 0; i < nvp6188->cfg_num; i++) { in nvp6188_find_best_fit()
1002 struct nvp6188 *nvp6188 = to_nvp6188(sd); in nvp6188_set_fmt() local
1006 mutex_lock(&nvp6188->mutex); in nvp6188_set_fmt()
1008 mode = nvp6188_find_best_fit(nvp6188, fmt); in nvp6188_set_fmt()
1009 memcpy(&nvp6188->cur_mode, mode, sizeof(struct nvp6188_mode)); in nvp6188_set_fmt()
1021 mutex_unlock(&nvp6188->mutex); in nvp6188_set_fmt()
1025 __v4l2_ctrl_s_ctrl(nvp6188->link_freq, mode->mipi_freq_idx); in nvp6188_set_fmt()
1027 __v4l2_ctrl_s_ctrl_int64(nvp6188->pixel_rate, pixel_rate); in nvp6188_set_fmt()
1028 dev_info(&nvp6188->client->dev, "mipi_freq_idx %d\n", mode->mipi_freq_idx); in nvp6188_set_fmt()
1029 dev_info(&nvp6188->client->dev, "pixel_rate %lld\n", pixel_rate); in nvp6188_set_fmt()
1032 mutex_unlock(&nvp6188->mutex); in nvp6188_set_fmt()
1040 struct nvp6188 *nvp6188 = to_nvp6188(sd); in nvp6188_get_fmt() local
1041 struct i2c_client *client = nvp6188->client; in nvp6188_get_fmt()
1043 const struct nvp6188_mode *mode = &nvp6188->cur_mode; in nvp6188_get_fmt()
1045 mutex_lock(&nvp6188->mutex); in nvp6188_get_fmt()
1050 mutex_unlock(&nvp6188->mutex); in nvp6188_get_fmt()
1063 mutex_unlock(&nvp6188->mutex); in nvp6188_get_fmt()
1076 struct nvp6188 *nvp6188 = to_nvp6188(sd); in nvp6188_enum_mbus_code() local
1080 code->code = nvp6188->cur_mode.bus_fmt; in nvp6188_enum_mbus_code()
1104 struct nvp6188 *nvp6188 = to_nvp6188(sd); in nvp6188_enum_frame_sizes() local
1105 struct i2c_client *client = nvp6188->client; in nvp6188_enum_frame_sizes()
1109 if (fse->index >= nvp6188->cfg_num) in nvp6188_enum_frame_sizes()
1135 struct nvp6188 *nvp6188 = to_nvp6188(sd); in nvp6188_g_frame_interval() local
1136 const struct nvp6188_mode *mode = &nvp6188->cur_mode; in nvp6188_g_frame_interval()
1138 mutex_lock(&nvp6188->mutex); in nvp6188_g_frame_interval()
1140 mutex_unlock(&nvp6188->mutex); in nvp6188_g_frame_interval()
1145 static void nvp6188_get_module_inf(struct nvp6188 *nvp6188, in nvp6188_get_module_inf() argument
1150 strscpy(inf->base.module, nvp6188->module_name, in nvp6188_get_module_inf()
1152 strscpy(inf->base.lens, nvp6188->len_name, sizeof(inf->base.lens)); in nvp6188_get_module_inf()
1155 static void nvp6188_get_vc_fmt_inf(struct nvp6188 *nvp6188, in nvp6188_get_vc_fmt_inf() argument
1164 if (nvp6188->cur_mode.channel_reso[ch] != NVP_RESO_UNKOWN) in nvp6188_get_vc_fmt_inf()
1165 last_channel_reso[ch] = nvp6188->cur_mode.channel_reso[ch]; in nvp6188_get_vc_fmt_inf()
1223 static void nvp6188_get_vc_hotplug_inf(struct nvp6188 *nvp6188, in nvp6188_get_vc_hotplug_inf() argument
1228 inf->detect_status = nvp6188->detect_status; in nvp6188_get_vc_hotplug_inf()
1231 static void nvp6188_get_vicap_rst_inf(struct nvp6188 *nvp6188, in nvp6188_get_vicap_rst_inf() argument
1234 rst_info->is_reset = nvp6188->is_reset; in nvp6188_get_vicap_rst_inf()
1238 static void nvp6188_set_vicap_rst_inf(struct nvp6188 *nvp6188, in nvp6188_set_vicap_rst_inf() argument
1241 nvp6188->is_reset = rst_info.is_reset; in nvp6188_set_vicap_rst_inf()
1244 static void nvp6188_set_streaming(struct nvp6188 *nvp6188, int on) in nvp6188_set_streaming() argument
1246 struct i2c_client *client = nvp6188->client; in nvp6188_set_streaming()
1255 struct nvp6188 *nvp6188 = to_nvp6188(sd); in nvp6188_ioctl() local
1261 nvp6188_get_module_inf(nvp6188, (struct rkmodule_inf *)arg); in nvp6188_ioctl()
1264 nvp6188_get_vc_fmt_inf(nvp6188, (struct rkmodule_vc_fmt_info *)arg); in nvp6188_ioctl()
1267 nvp6188_get_vc_hotplug_inf(nvp6188, (struct rkmodule_vc_hotplug_info *)arg); in nvp6188_ioctl()
1270 nvp6188_get_vicap_rst_inf(nvp6188, (struct rkmodule_vicap_reset_info *)arg); in nvp6188_ioctl()
1273 nvp6188_set_vicap_rst_inf(nvp6188, *(struct rkmodule_vicap_reset_info *)arg); in nvp6188_ioctl()
1280 nvp6188_set_streaming(nvp6188, !!stream); in nvp6188_ioctl()
1422 static __maybe_unused void nv6188_set_chn_960p(struct nvp6188 *nvp6188, u8 ch, in nv6188_set_chn_960p() argument
1427 struct i2c_client *client = nvp6188->client; in nv6188_set_chn_960p()
1508 static __maybe_unused void nv6188_set_chn_960h(struct nvp6188 *nvp6188, u8 ch, in nv6188_set_chn_960h() argument
1512 struct i2c_client *client = nvp6188->client; in nv6188_set_chn_960h()
1594 static __maybe_unused void nv6188_set_chn_720p(struct nvp6188 *nvp6188, u8 ch, in nv6188_set_chn_720p() argument
1598 struct i2c_client *client = nvp6188->client; in nv6188_set_chn_720p()
1674 static __maybe_unused void nv6188_set_chn_1080p(struct nvp6188 *nvp6188, u8 ch, in nv6188_set_chn_1080p() argument
1678 struct i2c_client *client = nvp6188->client; in nv6188_set_chn_1080p()
1755 static void nv6188_set_chn_1300p(struct nvp6188 *nvp6188, unsigned char ch, unsigned char ntpal) in nv6188_set_chn_1300p() argument
1758 struct i2c_client *client = nvp6188->client; in nv6188_set_chn_1300p()
1844 static __maybe_unused void nvp6188_manual_mode(struct nvp6188 *nvp6188, u8 ch, u32 fmt) in nvp6188_manual_mode() argument
1847 struct i2c_client *client = nvp6188->client; in nvp6188_manual_mode()
1860 nv6188_set_chn_960h(nvp6188, ch, 1); in nvp6188_manual_mode()
1863 nv6188_set_chn_960p(nvp6188, ch, 1); in nvp6188_manual_mode()
1866 nv6188_set_chn_720p(nvp6188, ch, 1); in nvp6188_manual_mode()
1869 nv6188_set_chn_1080p(nvp6188, ch, 1); in nvp6188_manual_mode()
1872 nv6188_set_chn_1300p(nvp6188, ch, 1); in nvp6188_manual_mode()
1875 nv6188_set_chn_960h(nvp6188, ch, 0); in nvp6188_manual_mode()
1878 nv6188_set_chn_960p(nvp6188, ch, 0); in nvp6188_manual_mode()
1881 nv6188_set_chn_720p(nvp6188, ch, 0); in nvp6188_manual_mode()
1884 nv6188_set_chn_1080p(nvp6188, ch, 0); in nvp6188_manual_mode()
1887 nv6188_set_chn_1300p(nvp6188, ch, 0); in nvp6188_manual_mode()
1890 nv6188_set_chn_1080p(nvp6188, ch, 0); in nvp6188_manual_mode()
1904 nvp6188->cur_mode.unkown_reso_count[ch] = 0; in nvp6188_manual_mode()
1907 static __maybe_unused void nvp6188_auto_detect_fmt(struct nvp6188 *nvp6188) in nvp6188_auto_detect_fmt() argument
1913 struct i2c_client *client = nvp6188->client; in nvp6188_auto_detect_fmt()
1916 ch_vfc = nv6188_read_vfc(nvp6188, ch); in nvp6188_auto_detect_fmt()
1918 ch_htotal = nv6188_read_htotal(nvp6188, ch); in nvp6188_auto_detect_fmt()
1971 if (reso != nvp6188->cur_mode.channel_reso[ch]) { in nvp6188_auto_detect_fmt()
1972 if (nvp6188->cur_mode.channel_reso[ch] != NVP_RESO_UNKOWN && in nvp6188_auto_detect_fmt()
1974 (nvp6188->detect_status & (0x01 << ch)) == 0) { in nvp6188_auto_detect_fmt()
1976 ch, nvp6188->cur_mode.channel_reso[ch], ch_vfc); in nvp6188_auto_detect_fmt()
1977 if (nvp6188->cur_mode.unkown_reso_count[ch] < 5) { in nvp6188_auto_detect_fmt()
1982 nvp6188->cur_mode.unkown_reso_count[ch]++; in nvp6188_auto_detect_fmt()
1987 ch, nvp6188->cur_mode.channel_reso[ch], reso); in nvp6188_auto_detect_fmt()
1988 nvp6188_manual_mode(nvp6188, ch, reso); in nvp6188_auto_detect_fmt()
1989 nvp6188->cur_mode.channel_reso[ch] = reso; in nvp6188_auto_detect_fmt()
1994 static __maybe_unused void nvp6188_init_default_fmt(struct nvp6188 *nvp6188, u32 fmt) in nvp6188_init_default_fmt() argument
1999 nvp6188_manual_mode(nvp6188, ch, fmt); in nvp6188_init_default_fmt()
2000 nvp6188->cur_mode.channel_reso[ch] = fmt; in nvp6188_init_default_fmt()
2006 struct nvp6188 *nvp6188 = (struct nvp6188 *) data; in detect_thread_function() local
2007 struct i2c_client *client = nvp6188->client; in detect_thread_function()
2009 nvp6188->disable_dump_register = true; in detect_thread_function()
2010 if (nvp6188->power_on) { in detect_thread_function()
2011 nvp6188_auto_detect_hotplug(nvp6188); in detect_thread_function()
2012 nvp6188->last_detect_status = nvp6188->detect_status; in detect_thread_function()
2013 nvp6188->is_reset = 0; in detect_thread_function()
2016 if (nvp6188->disable_dump_register && nvp6188->power_on) { in detect_thread_function()
2017 mutex_lock(&nvp6188->mutex); in detect_thread_function()
2018 nvp6188_auto_detect_hotplug(nvp6188); in detect_thread_function()
2019 nvp6188_auto_detect_fmt(nvp6188); in detect_thread_function()
2021 mutex_unlock(&nvp6188->mutex); in detect_thread_function()
2022 if (nvp6188->last_detect_status != nvp6188->detect_status) { in detect_thread_function()
2024 nvp6188->last_detect_status, nvp6188->detect_status); in detect_thread_function()
2025 nvp6188->last_detect_status = nvp6188->detect_status; in detect_thread_function()
2026 input_event(nvp6188->input_dev, EV_MSC, MSC_RAW, nvp6188->detect_status); in detect_thread_function()
2027 input_sync(nvp6188->input_dev); in detect_thread_function()
2034 nvp6188->is_reset = 1; in detect_thread_function()
2044 static int __maybe_unused detect_thread_start(struct nvp6188 *nvp6188) in detect_thread_start() argument
2047 struct i2c_client *client = nvp6188->client; in detect_thread_start()
2048 nvp6188->detect_thread = kthread_create(detect_thread_function, in detect_thread_start()
2049 nvp6188, "nvp6188_kthread"); in detect_thread_start()
2051 if (IS_ERR(nvp6188->detect_thread)) { in detect_thread_start()
2053 ret = PTR_ERR(nvp6188->detect_thread); in detect_thread_start()
2054 nvp6188->detect_thread = NULL; in detect_thread_start()
2057 wake_up_process(nvp6188->detect_thread); in detect_thread_start()
2061 static int __maybe_unused detect_thread_stop(struct nvp6188 *nvp6188) in detect_thread_stop() argument
2063 if (nvp6188->detect_thread) in detect_thread_stop()
2064 kthread_stop(nvp6188->detect_thread); in detect_thread_stop()
2065 nvp6188->detect_thread = NULL; in detect_thread_stop()
2070 static int __maybe_unused nvp6188_reg_check(struct nvp6188 *nvp6188) in nvp6188_reg_check() argument
2074 struct i2c_client *client = nvp6188->client; in nvp6188_reg_check()
2106 static int nvp6188_auto_det_set(struct nvp6188 *nvp6188) in nvp6188_auto_det_set() argument
2108 struct i2c_client *client = nvp6188->client; in nvp6188_auto_det_set()
2129 static int nvp6188_video_init(struct nvp6188 *nvp6188) in nvp6188_video_init() argument
2133 struct i2c_client *client = nvp6188->client; in nvp6188_video_init()
2135 if (nvp6188->cur_mode.global_reg_list == common_setting_1458M_regs) { in nvp6188_video_init()
2137 } else if (nvp6188->cur_mode.global_reg_list == common_setting_756M_regs) { in nvp6188_video_init()
2143 ret = nvp6188_write_array(nvp6188->client, in nvp6188_video_init()
2144 nvp6188->cur_mode.global_reg_list, array_size); in nvp6188_video_init()
2150 nvp6188_init_default_fmt(nvp6188, NVP_RESO_UNKOWN); in nvp6188_video_init()
2151 nvp6188_auto_det_set(nvp6188); in nvp6188_video_init()
2153 nvp6188_auto_detect_fmt(nvp6188); in nvp6188_video_init()
2158 static int __nvp6188_start_stream(struct nvp6188 *nvp6188) in __nvp6188_start_stream() argument
2160 struct i2c_client *client = nvp6188->client; in __nvp6188_start_stream()
2162 if (nvp6188->detect_thread) { in __nvp6188_start_stream()
2168 nvp6188_audio_init(nvp6188); in __nvp6188_start_stream()
2169 nvp6188_reg_check(nvp6188); in __nvp6188_start_stream()
2170 detect_thread_start(nvp6188); in __nvp6188_start_stream()
2174 static int __nvp6188_stop_stream(struct nvp6188 *nvp6188) in __nvp6188_stop_stream() argument
2176 struct i2c_client *client = nvp6188->client; in __nvp6188_stop_stream()
2190 struct nvp6188 *nvp6188 = to_nvp6188(sd); in nvp6188_stream() local
2191 struct i2c_client *client = nvp6188->client; in nvp6188_stream()
2194 nvp6188->cur_mode.width, in nvp6188_stream()
2195 nvp6188->cur_mode.height); in nvp6188_stream()
2197 mutex_lock(&nvp6188->mutex); in nvp6188_stream()
2199 if (nvp6188->streaming == on) in nvp6188_stream()
2203 __nvp6188_start_stream(nvp6188); in nvp6188_stream()
2205 __nvp6188_stop_stream(nvp6188); in nvp6188_stream()
2208 nvp6188->streaming = on; in nvp6188_stream()
2211 mutex_unlock(&nvp6188->mutex); in nvp6188_stream()
2218 struct nvp6188 *nvp6188 = to_nvp6188(sd); in nvp6188_power() local
2219 struct i2c_client *client = nvp6188->client; in nvp6188_power()
2222 mutex_lock(&nvp6188->mutex); in nvp6188_power()
2225 if (nvp6188->power_on == !!on) in nvp6188_power()
2234 nvp6188->power_on = true; in nvp6188_power()
2237 nvp6188->power_on = false; in nvp6188_power()
2241 mutex_unlock(&nvp6188->mutex); in nvp6188_power()
2246 static int __nvp6188_power_on(struct nvp6188 *nvp6188) in __nvp6188_power_on() argument
2249 struct device *dev = &nvp6188->client->dev; in __nvp6188_power_on()
2251 if (!IS_ERR_OR_NULL(nvp6188->pins_default)) { in __nvp6188_power_on()
2252 ret = pinctrl_select_state(nvp6188->pinctrl, in __nvp6188_power_on()
2253 nvp6188->pins_default); in __nvp6188_power_on()
2260 if (!IS_ERR(nvp6188->power_gpio)) { in __nvp6188_power_on()
2261 gpiod_set_value_cansleep(nvp6188->power_gpio, 1); in __nvp6188_power_on()
2268 ret = clk_set_rate(nvp6188->xvclk, NVP6188_XVCLK_FREQ); in __nvp6188_power_on()
2271 if (clk_get_rate(nvp6188->xvclk) != NVP6188_XVCLK_FREQ) in __nvp6188_power_on()
2273 ret = clk_prepare_enable(nvp6188->xvclk); in __nvp6188_power_on()
2279 if (!IS_ERR(nvp6188->reset_gpio)) { in __nvp6188_power_on()
2280 gpiod_set_value_cansleep(nvp6188->reset_gpio, 1); in __nvp6188_power_on()
2282 gpiod_set_value_cansleep(nvp6188->reset_gpio, 0); in __nvp6188_power_on()
2284 gpiod_set_value_cansleep(nvp6188->reset_gpio, 1); in __nvp6188_power_on()
2288 nvp6188_audio_init(nvp6188); in __nvp6188_power_on()
2296 if (!IS_ERR(nvp6188->reset_gpio)) in __nvp6188_power_on()
2297 gpiod_set_value_cansleep(nvp6188->reset_gpio, 1); in __nvp6188_power_on()
2299 if (!IS_ERR_OR_NULL(nvp6188->pins_sleep)) in __nvp6188_power_on()
2300 pinctrl_select_state(nvp6188->pinctrl, nvp6188->pins_sleep); in __nvp6188_power_on()
2305 static void __nvp6188_power_off(struct nvp6188 *nvp6188) in __nvp6188_power_off() argument
2308 struct device *dev = &nvp6188->client->dev; in __nvp6188_power_off()
2310 if (!IS_ERR(nvp6188->reset_gpio)) in __nvp6188_power_off()
2311 gpiod_set_value_cansleep(nvp6188->reset_gpio, 1); in __nvp6188_power_off()
2312 clk_disable_unprepare(nvp6188->xvclk); in __nvp6188_power_off()
2314 if (!IS_ERR_OR_NULL(nvp6188->pins_sleep)) { in __nvp6188_power_off()
2315 ret = pinctrl_select_state(nvp6188->pinctrl, in __nvp6188_power_off()
2316 nvp6188->pins_sleep); in __nvp6188_power_off()
2323 if (!IS_ERR(nvp6188->power_gpio)) in __nvp6188_power_off()
2324 gpiod_set_value_cansleep(nvp6188->power_gpio, 0); in __nvp6188_power_off()
2328 static int nvp6188_initialize_controls(struct nvp6188 *nvp6188) in nvp6188_initialize_controls() argument
2335 handler = &nvp6188->ctrl_handler; in nvp6188_initialize_controls()
2336 mode = &nvp6188->cur_mode; in nvp6188_initialize_controls()
2340 handler->lock = &nvp6188->mutex; in nvp6188_initialize_controls()
2342 nvp6188->link_freq = v4l2_ctrl_new_int_menu(handler, NULL, in nvp6188_initialize_controls()
2346 __v4l2_ctrl_s_ctrl(nvp6188->link_freq, mode->mipi_freq_idx); in nvp6188_initialize_controls()
2350 nvp6188->pixel_rate = v4l2_ctrl_new_std(handler, NULL, in nvp6188_initialize_controls()
2354 dev_err(&nvp6188->client->dev, in nvp6188_initialize_controls()
2359 dev_dbg(&nvp6188->client->dev, "mipi_freq_idx %d\n", mode->mipi_freq_idx); in nvp6188_initialize_controls()
2360 dev_dbg(&nvp6188->client->dev, "pixel_rate %lld\n", pixel_rate); in nvp6188_initialize_controls()
2361 dev_dbg(&nvp6188->client->dev, "link_freq %lld\n", link_freq_items[mode->mipi_freq_idx]); in nvp6188_initialize_controls()
2363 nvp6188->subdev.ctrl_handler = handler; in nvp6188_initialize_controls()
2377 struct nvp6188 *nvp6188 = to_nvp6188(sd); in nvp6188_runtime_resume() local
2379 return __nvp6188_power_on(nvp6188); in nvp6188_runtime_resume()
2386 struct nvp6188 *nvp6188 = to_nvp6188(sd); in nvp6188_runtime_suspend() local
2388 __nvp6188_power_off(nvp6188); in nvp6188_runtime_suspend()
2396 struct nvp6188 *nvp6188 = to_nvp6188(sd); in nvp6188_open() local
2401 dev_dbg(&nvp6188->client->dev, "%s\n", __func__); in nvp6188_open()
2403 mutex_lock(&nvp6188->mutex); in nvp6188_open()
2410 mutex_unlock(&nvp6188->mutex); in nvp6188_open()
2458 struct nvp6188 *nvp6188 = to_nvp6188(sd); in nvp6188_codec_read() local
2459 struct i2c_client *client = nvp6188->client; in nvp6188_codec_read()
2463 mutex_lock(&nvp6188->mutex); in nvp6188_codec_read()
2467 mutex_unlock(&nvp6188->mutex); in nvp6188_codec_read()
2471 mutex_unlock(&nvp6188->mutex); in nvp6188_codec_read()
2479 struct nvp6188 *nvp6188 = to_nvp6188(sd); in nvp6188_codec_write() local
2480 struct i2c_client *client = nvp6188->client; in nvp6188_codec_write()
2483 mutex_lock(&nvp6188->mutex); in nvp6188_codec_write()
2487 mutex_unlock(&nvp6188->mutex); in nvp6188_codec_write()
2491 mutex_unlock(&nvp6188->mutex); in nvp6188_codec_write()
2509 struct nvp6188 *nvp6188 = to_nvp6188(sd); in nvp6188_pcm_set_dai_fmt() local
2510 struct i2c_client *client = nvp6188->client; in nvp6188_pcm_set_dai_fmt()
2514 mutex_lock(&nvp6188->mutex); in nvp6188_pcm_set_dai_fmt()
2571 mutex_unlock(&nvp6188->mutex); in nvp6188_pcm_set_dai_fmt()
2581 struct nvp6188 *nvp6188 = to_nvp6188(sd); in nvp6188_pcm_hw_params() local
2582 struct i2c_client *client = nvp6188->client; in nvp6188_pcm_hw_params()
2586 mutex_lock(&nvp6188->mutex); in nvp6188_pcm_hw_params()
2619 if (nvp6188->audio_out) { in nvp6188_pcm_hw_params()
2620 switch (nvp6188->audio_out->mclk_fs) { in nvp6188_pcm_hw_params()
2632 nvp6188->audio_out->mclk_fs); in nvp6188_pcm_hw_params()
2669 if (nvp6188->audio_in) { in nvp6188_pcm_hw_params()
2670 switch (nvp6188->audio_in->mclk_fs) { in nvp6188_pcm_hw_params()
2682 nvp6188->audio_in->mclk_fs); in nvp6188_pcm_hw_params()
2707 mutex_unlock(&nvp6188->mutex); in nvp6188_pcm_hw_params()
2765 struct nvp6188 *nvp6188 = to_nvp6188(sd); in nvp6188_codec_tlv_get() local
2766 struct i2c_client *client = nvp6188->client; in nvp6188_codec_tlv_get()
2768 mutex_lock(&nvp6188->mutex); in nvp6188_codec_tlv_get()
2770 mutex_unlock(&nvp6188->mutex); in nvp6188_codec_tlv_get()
2861 static int nvp6188_audio_init(struct nvp6188 *nvp6188) in nvp6188_audio_init() argument
2863 struct i2c_client *client = nvp6188->client; in nvp6188_audio_init()
2865 if (!nvp6188->audio_in && !nvp6188->audio_out) in nvp6188_audio_init()
2926 struct nvp6188 *nvp6188; in nvp6188_probe() local
2938 nvp6188 = devm_kzalloc(dev, sizeof(*nvp6188), GFP_KERNEL); in nvp6188_probe()
2939 if (!nvp6188) in nvp6188_probe()
2943 &nvp6188->module_index); in nvp6188_probe()
2945 &nvp6188->module_facing); in nvp6188_probe()
2947 &nvp6188->module_name); in nvp6188_probe()
2949 &nvp6188->len_name); in nvp6188_probe()
2955 nvp6188->client = client; in nvp6188_probe()
2956 nvp6188->cfg_num = ARRAY_SIZE(supported_modes); in nvp6188_probe()
2957 memcpy(&nvp6188->cur_mode, &supported_modes[0], sizeof(struct nvp6188_mode)); in nvp6188_probe()
2959 nvp6188->xvclk = devm_clk_get(dev, "xvclk"); in nvp6188_probe()
2960 if (IS_ERR(nvp6188->xvclk)) { in nvp6188_probe()
2965 nvp6188->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_HIGH); in nvp6188_probe()
2966 if (IS_ERR(nvp6188->reset_gpio)) in nvp6188_probe()
2969 nvp6188->power_gpio = devm_gpiod_get(dev, "power", GPIOD_OUT_HIGH); in nvp6188_probe()
2970 if (IS_ERR(nvp6188->power_gpio)) in nvp6188_probe()
2973 nvp6188->vi_gpio = devm_gpiod_get(dev, "vi", GPIOD_OUT_HIGH); in nvp6188_probe()
2974 if (IS_ERR(nvp6188->vi_gpio)) in nvp6188_probe()
2977 nvp6188->pinctrl = devm_pinctrl_get(dev); in nvp6188_probe()
2978 if (!IS_ERR(nvp6188->pinctrl)) { in nvp6188_probe()
2979 nvp6188->pins_default = in nvp6188_probe()
2980 pinctrl_lookup_state(nvp6188->pinctrl, in nvp6188_probe()
2982 if (IS_ERR(nvp6188->pins_default)) in nvp6188_probe()
2985 nvp6188->pins_sleep = in nvp6188_probe()
2986 pinctrl_lookup_state(nvp6188->pinctrl, in nvp6188_probe()
2988 if (IS_ERR(nvp6188->pins_sleep)) in nvp6188_probe()
2994 mutex_init(&nvp6188->mutex); in nvp6188_probe()
2996 sd = &nvp6188->subdev; in nvp6188_probe()
2998 ret = nvp6188_initialize_controls(nvp6188); in nvp6188_probe()
3004 ret = __nvp6188_power_on(nvp6188); in nvp6188_probe()
3022 nvp6188->pad.flags = MEDIA_PAD_FL_SOURCE; in nvp6188_probe()
3024 ret = media_entity_pads_init(&sd->entity, 1, &nvp6188->pad); in nvp6188_probe()
3030 if (strcmp(nvp6188->module_facing, "back") == 0) in nvp6188_probe()
3036 nvp6188->module_index, facing, in nvp6188_probe()
3046 nvp6188->audio_in = NULL; in nvp6188_probe()
3050 nvp6188->audio_in = devm_kzalloc(dev, sizeof(struct nvp6188_audio), GFP_KERNEL); in nvp6188_probe()
3051 if (!nvp6188->audio_in) { in nvp6188_probe()
3055 audio_stream = nvp6188->audio_in; in nvp6188_probe()
3083 nvp6188->audio_out = NULL; in nvp6188_probe()
3087 nvp6188->audio_out = devm_kzalloc(dev, sizeof(struct nvp6188_audio), GFP_KERNEL); in nvp6188_probe()
3088 if (!nvp6188->audio_out) { in nvp6188_probe()
3092 audio_stream = nvp6188->audio_out; in nvp6188_probe()
3121 if (nvp6188->audio_in || nvp6188->audio_out) { in nvp6188_probe()
3131 nvp6188_audio_init(nvp6188); in nvp6188_probe()
3137 nvp6188->input_dev = devm_input_allocate_device(dev); in nvp6188_probe()
3138 if (nvp6188->input_dev == NULL) { in nvp6188_probe()
3142 nvp6188->input_dev->name = "nvp6188_input_event"; in nvp6188_probe()
3143 set_bit(EV_MSC, nvp6188->input_dev->evbit); in nvp6188_probe()
3144 set_bit(MSC_RAW, nvp6188->input_dev->mscbit); in nvp6188_probe()
3146 ret = input_register_device(nvp6188->input_dev); in nvp6188_probe()
3156 nvp6188_video_init(nvp6188); in nvp6188_probe()
3165 __nvp6188_power_off(nvp6188); in nvp6188_probe()
3167 v4l2_ctrl_handler_free(&nvp6188->ctrl_handler); in nvp6188_probe()
3169 mutex_destroy(&nvp6188->mutex); in nvp6188_probe()
3177 struct nvp6188 *nvp6188 = to_nvp6188(sd); in nvp6188_remove() local
3183 v4l2_ctrl_handler_free(&nvp6188->ctrl_handler); in nvp6188_remove()
3184 mutex_destroy(&nvp6188->mutex); in nvp6188_remove()
3188 __nvp6188_power_off(nvp6188); in nvp6188_remove()