/* SPDX-License-Identifier: GPL-2.0 */
/*
* tveeprom - Contains structures and functions to work with Hauppauge
* eeproms .
*/
#include <uapi/linux/if_ether.h>
/**
* enum tveeprom_audio_processor - Specifies the type of audio processor
* used on a Hauppauge device .
*
* @ TVEEPROM_AUDPROC_NONE : No audio processor present
* @ TVEEPROM_AUDPROC_INTERNAL : The audio processor is internal to the
* video processor
* @ TVEEPROM_AUDPROC_MSP : The audio processor is a MSPXXXX device
* @ TVEEPROM_AUDPROC_OTHER : The audio processor is another device
*/
enum tveeprom_audio_processor {
TVEEPROM_AUDPROC_NONE,
TVEEPROM_AUDPROC_INTERNAL,
TVEEPROM_AUDPROC_MSP,
TVEEPROM_AUDPROC_OTHER,
};
/**
* struct tveeprom - Contains the fields parsed from Hauppauge eeproms
*
* @ has_radio : 1 if the device has radio ; 0 otherwise .
*
* @ has_ir : If has_ir = = 0 , then it is unknown what the IR
* capabilities are . Otherwise :
* bit 0 ) 1 ( = IR capabilities are known ) ;
* bit 1 ) IR receiver present ;
* bit 2 ) IR transmitter ( blaster ) present .
*
* @ has_MAC_address : 0 : no MAC , 1 : MAC present , 2 : unknown .
* @ tuner_type : type of the tuner ( TUNER_ * , as defined at
* include / media / tuner . h ) .
*
* @ tuner_formats : Supported analog TV standards ( V4L2_STD_ * ) .
* @ tuner_hauppauge_model : Hauppauge ' s code for the device model number .
* @ tuner2_type : type of the second tuner ( TUNER_ * , as defined
* at include / media / tuner . h ) .
*
* @ tuner2_formats : Tuner 2 supported analog TV standards
* ( V4L2_STD_ * ) .
*
* @ tuner2_hauppauge_model : tuner 2 Hauppauge ' s code for the device model
* number .
*
* @ audio_processor : analog audio decoder , as defined by enum
* tveeprom_audio_processor .
*
* @ decoder_processor : Hauppauge ' s code for the decoder chipset .
* Unused by the drivers , as they probe the
* decoder based on the PCI or USB ID .
*
* @ model : Hauppauge ' s model number
*
* @ revision : Card revision number
*
* @ serial_number : Card ' s serial number
*
* @ rev_str : Card revision converted to number
*
* @ MAC_address : MAC address for the network interface
*/
struct tveeprom {
u32 has_radio;
u32 has_ir;
u32 has_MAC_address;
u32 tuner_type;
u32 tuner_formats;
u32 tuner_hauppauge_model;
u32 tuner2_type;
u32 tuner2_formats;
u32 tuner2_hauppauge_model;
u32 audio_processor;
u32 decoder_processor;
u32 model;
u32 revision;
u32 serial_number;
char rev_str[5 ];
u8 MAC_address[ETH_ALEN];
};
/**
* tveeprom_hauppauge_analog - Fill struct tveeprom using the contents
* of the eeprom previously filled at
* @ eeprom_data field .
*
* @ tvee : Struct to where the eeprom parsed data will be filled ;
* @ eeprom_data : Array with the contents of the eeprom_data . It should
* contain 256 bytes filled with the contents of the
* eeprom read from the Hauppauge device .
*/
void tveeprom_hauppauge_analog(struct tveeprom *tvee,
unsigned char *eeprom_data);
/**
* tveeprom_read - Reads the contents of the eeprom found at the Hauppauge
* devices .
*
* @ c : I2C client struct
* @ eedata : Array where the eeprom content will be stored .
* @ len : Size of @ eedata array . If the eeprom content will be latter
* be parsed by tveeprom_hauppauge_analog ( ) , len should be , at
* least , 256 .
*/
int tveeprom_read(struct i2c_client *c, unsigned char *eedata, int len);
Messung V0.5 in Prozent C=96 H=100 G=97
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-10-11)
¤
*© Formatika GbR, Deutschland