8 Jun
2015
8 Jun
'15
11:03 a.m.
One thing forgot...
At Thu, 4 Jun 2015 15:23:20 +0530, Vinod Koul wrote:
+/**
- snd_hdac_ext_device_init - initialize the HDA extended codec base device
- @sbus: hdac extended bus to attach to
- @addr: codec address
- Returns zero for success or a negative error code.
- */
+int snd_hdac_ext_bus_device_init(struct hdac_ext_bus *sbus, int addr) +{
- struct hdac_device *hdev = NULL;
- struct hdac_bus *bus = hdac_bus(sbus);
- char name[15];
- int ret;
- hdev = kzalloc(sizeof(*hdev), GFP_KERNEL);
- if (!hdev)
return -ENOMEM;
- snprintf(name, sizeof(name), "hda-codec#%03x", addr);
- ret = snd_hdac_device_init(hdev, bus, name, addr);
The device name must be unique to the whole system. Using only the codec address as an id would conflict if there are multiple cards. The legacy HDA device consists of "hdaudioC%dD%d" indicating both the card number and the codec address, for example.
Takashi