1# 2# Copyright (c) 2026 Abdelkader Boudih <freebsd@seuros.com> 3# 4# SPDX-License-Identifier: BSD-2-Clause 5# 6 7#include <sys/bus.h> 8#include <dev/video/video.h> 9 10INTERFACE video; 11 12CODE { 13 static int 14 video_default_open(device_t dev __unused) 15 { 16 17 return (0); 18 } 19 20 static void 21 video_default_close(device_t dev __unused) 22 { 23 } 24 25 static int 26 video_default_frmsize(device_t dev __unused, 27 struct video_frmsizeenum *fs __unused) 28 { 29 30 return (ENOTTY); 31 } 32 33 static int 34 video_default_frmival(device_t dev __unused, 35 struct video_frmivalenum *fi __unused) 36 { 37 38 return (ENOTTY); 39 } 40 41 static int 42 video_default_format(device_t dev __unused, 43 struct video_format *fmt __unused) 44 { 45 46 return (ENOTTY); 47 } 48 49 static int 50 video_default_fract(device_t dev __unused, 51 struct video_fract *fr __unused) 52 { 53 54 return (ENOTTY); 55 } 56 57 static int 58 video_default_enum_input(device_t dev __unused, uint32_t index __unused, 59 struct video_input *inp __unused) 60 { 61 62 return (ENOTTY); 63 } 64 65 static int 66 video_default_get_input(device_t dev __unused, uint32_t *idx __unused) 67 { 68 69 return (ENOTTY); 70 } 71 72 static int 73 video_default_set_input(device_t dev __unused, uint32_t idx __unused) 74 { 75 76 return (ENOTTY); 77 } 78 79 static int 80 video_default_query_control(device_t dev __unused, 81 struct video_control_desc *d __unused) 82 { 83 84 return (ENOTTY); 85 } 86 87 static int 88 video_default_get_control(device_t dev __unused, 89 struct video_control *c __unused) 90 { 91 92 return (ENOTTY); 93 } 94 95 static int 96 video_default_set_control(device_t dev __unused, 97 const struct video_control *c __unused) 98 { 99 100 return (ENOTTY); 101 } 102}; 103 104METHOD int open { 105 device_t dev; 106} DEFAULT video_default_open; 107 108METHOD void close { 109 device_t dev; 110} DEFAULT video_default_close; 111 112METHOD int querycap { 113 device_t dev; 114 struct video_caps *caps; 115}; 116 117METHOD int enum_format { 118 device_t dev; 119 uint32_t index; 120 struct video_format *format; 121}; 122 123METHOD int enum_framesizes { 124 device_t dev; 125 struct video_frmsizeenum *fsize; 126} DEFAULT video_default_frmsize; 127 128METHOD int enum_frameintervals { 129 device_t dev; 130 struct video_frmivalenum *fival; 131} DEFAULT video_default_frmival; 132 133METHOD int try_format { 134 device_t dev; 135 struct video_format *format; 136} DEFAULT video_default_format; 137 138METHOD int set_format { 139 device_t dev; 140 const struct video_format *format; 141}; 142 143METHOD int get_format { 144 device_t dev; 145 struct video_format *format; 146}; 147 148METHOD int get_parm { 149 device_t dev; 150 struct video_fract *fract; 151} DEFAULT video_default_fract; 152 153METHOD int set_parm { 154 device_t dev; 155 struct video_fract *fract; 156} DEFAULT video_default_fract; 157 158METHOD int enum_input { 159 device_t dev; 160 uint32_t index; 161 struct video_input *input; 162} DEFAULT video_default_enum_input; 163 164METHOD int get_input { 165 device_t dev; 166 uint32_t *index; 167} DEFAULT video_default_get_input; 168 169METHOD int set_input { 170 device_t dev; 171 uint32_t index; 172} DEFAULT video_default_set_input; 173 174METHOD int query_control { 175 device_t dev; 176 struct video_control_desc *desc; 177} DEFAULT video_default_query_control; 178 179METHOD int get_control { 180 device_t dev; 181 struct video_control *control; 182} DEFAULT video_default_get_control; 183 184METHOD int set_control { 185 device_t dev; 186 const struct video_control *control; 187} DEFAULT video_default_set_control; 188 189# stop_stream must quiesce the provider before returning. 190METHOD int start_stream { 191 device_t dev; 192}; 193 194METHOD void stop_stream { 195 device_t dev; 196}; 197