Preface

This document describes how to write an ALSA (Advanced Linux Sound Architecture) driver. The document focuses mainly on the PCI soundcard. In the case of other device types, the API might be different, too. However, at least the ALSA kernel API is consistent, and therefore it would be still a bit help for writing them.

The target of this document is ones who already have enough skill of C language and have the basic knowledge of linux kernel programming. This document doesn't explain the general topics of linux kernel codes and doesn't cover the detail of implementation of each low-level driver. It describes only how is the standard way to write a PCI sound driver on ALSA.

If you are already familiar with the older ALSA ver.0.5.x, you can check the drivers such as es1938.c or maestro3.c which have also almost the same code-base in the ALSA 0.5.x tree, so you can compare the differences.

This document is still a draft version. Any feedbacks and corrections, please!!