Devices identify themselves. Drivers probe matched devices for compatibility.
What appears straight forward on the outset, can be quite serpentine on the everyday System-on-Chip: Devices may refuse to self-identify, require interaction to be addressable, or have - possibly circular - dependencies on other devices. Failure to account for this leads to unchaperoned devices, probe deferrals, and if one is very unlucky, runtime issues up to a bricked system.
Ahmad has debugged a fair share of such issues, either during initial hardware bring-up, after kernel updates or when porting Linux drivers to the barebox bootloader. In his talk, he will introduce the Linux driver model with a focus on tracking dependencies and discuss how to debug and address common issues with tools like ftrace, dev_err_probe and fw_devlink.