Lines Matching defs:em28xx
3 * em28xx.h - driver for Empia EM2800/EM2820/2840 USB video capture devices
29 #define DRIVER_DESC "Empia em28xx device driver"
46 #include "em28xx-reg.h"
171 /* maximum number of em28xx boards */
172 #define EM28XX_MAXBOARDS DVB_MAX_ADAPTERS /* All adapters could be em28xx */
183 /* max number of I2C buses on em28xx devices */
218 struct em28xx;
251 int (*urb_data_copy)(struct em28xx *dev, struct urb *urb);
259 * @reg: em28xx register value to set it
337 * em28xx_amux - describes the type of audio input used by em28xx
340 * Used only on em28xx dev->map field, in order to mark an entry
349 * Only for devices with AC97. It means that em28xx should use "Line In"
362 * The em28xx chip itself has only two audio inputs: tuner and line in.
366 * usually connected to the em28xx tuner input (except for
540 /* em28xx extensions */
546 /* em28xx resource types (used for res_get/res_lock etc */
552 struct em28xx *dev;
630 struct em28xx;
639 struct em28xx *dev;
646 struct em28xx {
675 // Some older em28xx chips needs a waiting time after writing
712 struct mutex lock; /* protects em28xx struct */
727 spinlock_t slock; /* Protects em28xx video/vbi/dvb IRQ stream data */
756 int (*em28xx_write_regs)(struct em28xx *dev, u16 reg,
758 int (*em28xx_read_reg)(struct em28xx *dev, u16 reg);
759 int (*em28xx_read_reg_req_len)(struct em28xx *dev, u8 req, u16 reg,
761 int (*em28xx_write_regs_req)(struct em28xx *dev, u8 req, u16 reg,
763 int (*em28xx_read_reg_req)(struct em28xx *dev, u8 req, u16 reg);
783 struct em28xx *dev_next;
787 #define kref_to_dev(d) container_of(d, struct em28xx, ref)
793 int (*init)(struct em28xx *dev);
794 int (*fini)(struct em28xx *dev);
795 int (*suspend)(struct em28xx *dev);
796 int (*resume)(struct em28xx *dev);
799 /* Provided by em28xx-i2c.c */
800 void em28xx_do_i2c_scan(struct em28xx *dev, unsigned int bus);
801 int em28xx_i2c_register(struct em28xx *dev, unsigned int bus,
803 int em28xx_i2c_unregister(struct em28xx *dev, unsigned int bus);
805 /* Provided by em28xx-core.c */
806 int em28xx_read_reg_req_len(struct em28xx *dev, u8 req, u16 reg,
808 int em28xx_read_reg_req(struct em28xx *dev, u8 req, u16 reg);
809 int em28xx_read_reg(struct em28xx *dev, u16 reg);
810 int em28xx_write_regs_req(struct em28xx *dev, u8 req, u16 reg, char *buf,
812 int em28xx_write_regs(struct em28xx *dev, u16 reg, char *buf, int len);
813 int em28xx_write_reg(struct em28xx *dev, u16 reg, u8 val);
814 int em28xx_write_reg_bits(struct em28xx *dev, u16 reg, u8 val,
816 int em28xx_toggle_reg_bits(struct em28xx *dev, u16 reg, u8 bitmask);
818 int em28xx_read_ac97(struct em28xx *dev, u8 reg);
819 int em28xx_write_ac97(struct em28xx *dev, u8 reg, u16 val);
821 int em28xx_audio_analog_set(struct em28xx *dev);
822 int em28xx_audio_setup(struct em28xx *dev);
824 const struct em28xx_led *em28xx_find_led(struct em28xx *dev,
826 int em28xx_capture_start(struct em28xx *dev, int start);
827 int em28xx_alloc_urbs(struct em28xx *dev, enum em28xx_mode mode, int xfer_bulk,
829 int em28xx_init_usb_xfer(struct em28xx *dev, enum em28xx_mode mode,
833 (struct em28xx *dev, struct urb *urb));
834 void em28xx_uninit_usb_xfer(struct em28xx *dev, enum em28xx_mode mode);
835 void em28xx_stop_urbs(struct em28xx *dev);
836 int em28xx_set_mode(struct em28xx *dev, enum em28xx_mode set_mode);
837 int em28xx_gpio_set(struct em28xx *dev, const struct em28xx_reg_seq *gpio);
840 void em28xx_init_extension(struct em28xx *dev);
841 void em28xx_close_extension(struct em28xx *dev);
842 int em28xx_suspend_extension(struct em28xx *dev);
843 int em28xx_resume_extension(struct em28xx *dev);
845 /* Provided by em28xx-cards.c */
849 void em28xx_setup_xc3028(struct em28xx *dev, struct xc2028_ctrl *ctl);
852 /* Provided by em28xx-camera.c */
853 int em28xx_detect_sensor(struct em28xx *dev);
854 int em28xx_init_camera(struct em28xx *dev);