Hardware

A 2-post collection

Dell laptops, ruining audio drivers in 2023

This is a "rant + fix" blog post. If you're looking for an interesting post, check out the other ones.

I own a Dell Latitude 3420. It works well, has good battery life, good keyboard, and lots of connectors (laptops today, ugh). I got the 1366x768 version though, so I bought a replacement 1080p display because 768p is... small.

Anyway.

From the beginning, there was a process constantly hogging up the CPU, idling at 25-30% usage, all the time. AC or battery, High Performance or High Efficiency mode, it was there. "WavesSysSvc":

WavesSysSvc Service Application

I looked around and found that it was part of the audio driver. Why the hell would my audio driver take up a third of my computing power?!

Additionally, the headphone jack would just... refuse to work. The only way to get it to work was to have my headphones/speakers plugged in when the computer started, but that's not viable, so for all intents and purposes it was broken.

I searched, browsed the Dell forums, saw that a lot of people were having that same problem, with no answer from Dell apart from "try updating your drivers using SupportAssist" (my drivers were up to date).

Then, stumbled onto

Crabs All the Way Down: Running Rust on Logic Gates

💡
This article will discuss many topics, from CPU architecture design to historical shenanigans. Take a drink, it's downhill from there.

Even though the number has steadily decreased since the 90s, there are still many different and incompatible CPU architectures in use nowadays. Most computers use x86_64 and pretty much all mobile devices and recent Macs use some kind of ARM64-based ISA (instruction set architecture).

In specific fields, though, there are more exotic ones: most routers still use MIPS (for historical reasons), a roomful of developers use RISC-V, the PS3 used PowerPC, some servers 20 years ago used Itanium, and of course IBM still sells their S/390-based mainframes (now rebranded as z/Architecture). The embedded world has even more: AVR (used in Arduino), SuperH (Saturn, Dreamcast, Casio 9860 calculators), and the venerable 8051, an Intel chip from 1980 which is still being produced, sold and even extended by third parties.

All these architectures differ on their defining characteristics, the main ones being:

  • word size: 8, 16, 31, 32, 64 bits, sometimes more
  • design style: RISC (few instructions, simple operations), CISC (many instructions, performing complex operations, VLIW (long instructions, doing many things at once in parallel)
  • memory architecture: Harvard (separate