aboutsummaryrefslogtreecommitdiffstats
path: root/include/media/v4l2-subdev.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/media/v4l2-subdev.h')
-rw-r--r--include/media/v4l2-subdev.h16
1 files changed, 7 insertions, 9 deletions
diff --git a/include/media/v4l2-subdev.h b/include/media/v4l2-subdev.h
index a780cca185fd..bacd52568ef9 100644
--- a/include/media/v4l2-subdev.h
+++ b/include/media/v4l2-subdev.h
@@ -131,6 +131,11 @@ struct v4l2_subdev_io_pin_config {
131 131
132 s_power: puts subdevice in power saving mode (on == 0) or normal operation 132 s_power: puts subdevice in power saving mode (on == 0) or normal operation
133 mode (on == 1). 133 mode (on == 1).
134
135 interrupt_service_routine: Called by the bridge chip's interrupt service
136 handler, when an interrupt status has be raised due to this subdev,
137 so that this subdev can handle the details. It may schedule work to be
138 performed later. It must not sleep. *Called from an IRQ context*.
134 */ 139 */
135struct v4l2_subdev_core_ops { 140struct v4l2_subdev_core_ops {
136 int (*g_chip_ident)(struct v4l2_subdev *sd, struct v4l2_dbg_chip_ident *chip); 141 int (*g_chip_ident)(struct v4l2_subdev *sd, struct v4l2_dbg_chip_ident *chip);
@@ -156,6 +161,8 @@ struct v4l2_subdev_core_ops {
156 int (*s_register)(struct v4l2_subdev *sd, struct v4l2_dbg_register *reg); 161 int (*s_register)(struct v4l2_subdev *sd, struct v4l2_dbg_register *reg);
157#endif 162#endif
158 int (*s_power)(struct v4l2_subdev *sd, int on); 163 int (*s_power)(struct v4l2_subdev *sd, int on);
164 int (*interrupt_service_routine)(struct v4l2_subdev *sd,
165 u32 status, bool *handled);
159}; 166};
160 167
161/* s_mode: switch the tuner to a specific tuner mode. Replacement of s_radio. 168/* s_mode: switch the tuner to a specific tuner mode. Replacement of s_radio.
@@ -330,11 +337,6 @@ struct v4l2_subdev_sensor_ops {
330}; 337};
331 338
332/* 339/*
333 interrupt_service_routine: Called by the bridge chip's interrupt service
334 handler, when an IR interrupt status has be raised due to this subdev,
335 so that this subdev can handle the details. It may schedule work to be
336 performed later. It must not sleep. *Called from an IRQ context*.
337
338 [rt]x_g_parameters: Get the current operating parameters and state of the 340 [rt]x_g_parameters: Get the current operating parameters and state of the
339 the IR receiver or transmitter. 341 the IR receiver or transmitter.
340 342
@@ -392,10 +394,6 @@ struct v4l2_subdev_ir_parameters {
392}; 394};
393 395
394struct v4l2_subdev_ir_ops { 396struct v4l2_subdev_ir_ops {
395 /* Common to receiver and transmitter */
396 int (*interrupt_service_routine)(struct v4l2_subdev *sd,
397 u32 status, bool *handled);
398
399 /* Receiver */ 397 /* Receiver */
400 int (*rx_read)(struct v4l2_subdev *sd, u8 *buf, size_t count, 398 int (*rx_read)(struct v4l2_subdev *sd, u8 *buf, size_t count,
401 ssize_t *num); 399 ssize_t *num);