radeon_atpx_switch_i2c_mux(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’œ radeon_atpx_switch_i2c_mux(9)

okay so picture this: you're deep in the kernel API manual (section 9, bestie, the big-kid section) and you stumble onto radeon_atpx_switch_i2c_mux. Yeah. That one. Let's get into it 🫢


✨ NAME ✨

radeon_atpx_switch_i2c_mux β€” the little function that flips the i2c/hpd mux. that's it. that's the whole job. iconic behavior, honestly πŸ’…


🌸 SYNOPSIS 🌸

int radeon_atpx_switch_i2c_mux (struct radeon_atpx *atpx , u16 mux_id );

πŸ¦‹ DESCRIPTION πŸ¦‹

so what does it actually do? it executes the ATPX_FUNCTION_I2C_MUX_CONTROL ATPX function, which switches the i2c/hpd mux back and forth between the discrete GPU and the integrated GPU β€” and yes, this works on all asics, no gatekeeping πŸ’–

It returns 0 on success, and an error on failure. that's the whole vibe check: zero means slay, anything else means something went wrong 😭


πŸŽ€ ARGUMENTS πŸŽ€

  • atpx β€” the atpx info struct. the main character of this whole operation πŸ‘‘
  • mux_id β€” the mux state. 0 = integrated GPU, 1 = discrete GPU. pick your fighter 🌈

⭐ SEE ALSO ⭐

first up, the kernel file where all this lives, no cap:

  • ./drivers/gpu/drm/radeon/radeon_atpx_handler.c

and the whole friend group of related calls, because they literally all roll together:


and that's the page, bestie 🧚 sourced straight from ./drivers/gpu/drm/radeon, dated October 2026, and it's the radeon_atpx_switch_i2c_mux(9) manual page β€” go switch some muxes, you've got this πŸ’…βœ¨πŸ“

πŸ“¦ where this page comes from