For the past decade, our usage of mobile and embedded devices has exploded. Checking our mails, watching a video or playing a game are actions we do or witness all the time. Over time, the users expectations have also increased. Looking at a 4k video with a 60Hz frame rate is now the norm. Being able to decode and display such a video needs a significant amount of processing power. As such, every device has dedicated hardware units to assist in those operations. We’ll have a look at what these units are, and what mechanisms Linux has to drive them in the most optimized way.