dvb_module_probe(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– dvb_module_probe(9) β€” like, the manual manual, bestie πŸ’–

okay so real talk, this is a page from the Kernel API Manual, and it's all about dvb_module_probe(9) β€” the little helper that goes "hiiii πŸ‘‹" to an I2C module for you. it's giving matchmaker energy fr fr. let's get into it 🫢


✨ NAME ✨

dvb_module_probe β€” a helper routine that probes an I2C module. that's it. that's the whole job. iconic. πŸ’…


🌸 SYNOPSIS 🌸

struct i2c_client * dvb_module_probe (const char *module_name , const
       char *name , struct i2c_adapter *adap , unsigned char addr , void
       *platform_data );

like, look at all those parameters. she's got range. 😭 keep reading, i'll introduce you to each one πŸ’œ


πŸŽ€ ARGUMENTS πŸŽ€

  • module_name β€” the name of the I2C module you're probing. this is the who of the whole operation πŸ’«
  • name β€” an optional name for the I2C module, and it's used for debug purposes only (so, vibes and logging). if it's NULL, it just defaults to module_name. so you're never left empty-handed, bestie 🫢
  • adap β€” pointer to struct i2c_adapter, which describes the I2C adapter where the module is gonna be bound. basically the address of the friend group the module is joining 🏠
  • addr β€” the I2C address of the adapter, in 7-bit notation. seven bits, no cap. don't go adding extra bits, i'm watching you πŸ‘€
  • platform_data β€” the platform data that gets passed along to the I2C module being probed. it's the little gift bag you hand over at the door 🎁

πŸ¦‹ DESCRIPTION πŸ¦‹

so here's the tea β˜• β€” this function binds an I2C device into the DVB core. and it should be used by all drivers that use the I2C bus to control the hardware. all of them. no exceptions, no shortcuts, i don't make the rules (okay, the kernel makes the rules, but still). πŸ”₯

and listen β€” a module that you bound with dvb_module_probe should use dvb_module_release to unbind. you can't just ghost it, that's not how healthy relationships work πŸ’”

NOTE: 🚨 okay so storytime 🚨 β€” in the past, DVB modules (mainly frontends) were bound via the dvb_attach macro, which does an ugly hack using I2C low level functions. i said what i said. 😬 such usage is deprecated and will be removed soon. so instead of that mess, use this routine. glow-up era, periodt. ✨

πŸ’€ RETURN πŸ’€

  • on success, it returns a struct i2c_client pointing to the bound I2C device. slay πŸ’…
  • NULL otherwise. (and yes, you do have to check. don't be out here dereferencing NULL, that's not the flex you think it is 😭)

🌈 SEE ALSO 🌈

everything's connected, iykyk β€” here's the whole friend group, all from the kernel file ./include/media/dvbdev.h:


aaaand that's the page!! πŸŽ€ this one lives under ./include/media, and the version is dated October 2026 β€” so yes, she's a little futuristic, we love that for her. mwah, go probe responsibly, bestie πŸ’–βœ¨πŸ§š

πŸ“¦ where this page comes from