STRUCT TUNER_SETUP(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct tuner_setup(9) πŸ’–

okay bestie, welcome to the Kernel API Manual page for struct tuner_setup(9) β€” literally the setup page for tuner chipsets, and yes we're gonna make it make sense 🫢


✨ NAME ✨

struct tuner_setup β€” setup the tuner chipsets πŸŽ€


🌸 SYNOPSIS 🌸

struct tuner_setup {
    unsigned short  addr;
    unsigned int    type;
    unsigned int    mode_mask;
    void *config;
    int (*tuner_callback)(void *dev, int component, int cmd, int arg);
 };

🫢 Members 🫢

  • addr β€” the I2C address used to control the tuner device/chipset. slay, that's literally its whole job πŸ’…
  • type β€” the type of the tuner, as defined at the TUNER_* macros. every different tuner model should have its own unique identifier, fr fr πŸ¦‹
  • mode_mask β€” a mask with the allowed tuner modes: V4L2_TUNER_RADIO, V4L2_TUNER_ANALOG_TV and/or V4L2_TUNER_DIGITAL_TV, describing if the tuner should be used to support Radio, analog TV and/or digital TV πŸ‘‘
  • config β€” used to send tuner-specific configuration for complex tuners that require extra parameters to be set.
⚠️ only a very few tuners require it, and its usage on newer tuners should be avoided. like, do not make this a habit bestie 😭
  • tuner_callback β€” some tuners require calling back the bridge driver, in order to do some tasks like rising a GPIO at the bridge chipset, in order to do things like resetting the device 🌈

πŸ’œ Description πŸ’œ

older boards only had a single tuner device. nowadays multiple tuner devices may be present on a single board. using TUNER_SET_TYPE_ADDR to pass the tuner_setup structure, it is possible to setup each tuner device in turn ✨

since multiple devices may be present, it is no longer sufficient to send a command to a single i2c device. instead you should broadcast the command to all i2c devices. periodt πŸ“£

by setting the mode_mask correctly you can select which commands are accepted by a specific tuner device. for example, set mode_mask to T_RADIO if the device is a radio-only tuner. that specific tuner will only accept commands when the tuner is in radio mode and ignore them when the tuner is set to TV mode πŸ’…


πŸ¦‹ SEE ALSO πŸ¦‹

kernel file ./include/media/tuner.h and enum tuner_mode(9) β€” go check them out, iykyk πŸ‘€


mwah πŸ’‹ β€” this page's source/version is ./include/media, and it's dated October 2026. bye bestie, go tune those chipsets! πŸŽ€πŸ”₯

πŸ“¦ where this page comes from