Lines Matching full:hda
3 * ALSA driver for ACPI-based HDA Controllers.
51 struct hda_acpi *hda = container_of(azx, struct hda_acpi, azx); in hda_acpi_dev_free() local
53 cancel_work_sync(&hda->probe_work); in hda_acpi_dev_free()
66 static int hda_acpi_init(struct hda_acpi *hda) in hda_acpi_init() argument
68 struct hdac_bus *bus = azx_bus(&hda->azx); in hda_acpi_init()
69 struct snd_card *card = hda->azx.card; in hda_acpi_init()
70 struct device *dev = &hda->pdev->dev; in hda_acpi_init()
71 struct azx *azx = &hda->azx; in hda_acpi_init()
77 /* The base address for the HDA registers and the interrupt are wrapped in hda_acpi_init()
82 irq = platform_get_irq(hda->pdev, 0); in hda_acpi_init()
86 hda->regs = devm_platform_get_and_ioremap_resource(hda->pdev, 0, &res); in hda_acpi_init()
87 if (IS_ERR(hda->regs)) in hda_acpi_init()
88 return PTR_ERR(hda->regs); in hda_acpi_init()
90 bus->remap_addr = hda->regs; in hda_acpi_init()
135 strscpy(card->driver, "hda-acpi"); in hda_acpi_init()
137 sname = hda->data->short_name ? hda->data->short_name : KBUILD_MODNAME; in hda_acpi_init()
143 lname = hda->data->long_name ? hda->data->long_name : sname; in hda_acpi_init()
153 struct hda_acpi *hda = container_of(work, struct hda_acpi, probe_work); in hda_acpi_probe_work() local
154 struct azx *chip = &hda->azx; in hda_acpi_probe_work()
157 err = hda_acpi_init(hda); in hda_acpi_probe_work()
176 static int hda_acpi_create(struct hda_acpi *hda) in hda_acpi_create() argument
183 struct azx *azx = &hda->azx; in hda_acpi_create()
187 azx->card = hda->card; in hda_acpi_create()
191 azx->driver_caps = hda->data->flags; in hda_acpi_create()
192 azx->driver_type = hda->data->flags & 0xff; in hda_acpi_create()
199 err = snd_device_new(hda->card, SNDRV_DEV_LOWLEVEL, &hda->azx, &ops); in hda_acpi_create()
201 dev_err(&hda->pdev->dev, "Error creating device\n"); in hda_acpi_create()
210 struct hda_acpi *hda; in hda_acpi_probe() local
213 hda = devm_kzalloc(&pdev->dev, sizeof(*hda), GFP_KERNEL); in hda_acpi_probe()
214 if (!hda) in hda_acpi_probe()
217 hda->pdev = pdev; in hda_acpi_probe()
218 hda->data = acpi_device_get_match_data(&pdev->dev); in hda_acpi_probe()
221 if (!hda->data) in hda_acpi_probe()
222 hda->data = devm_kzalloc(&pdev->dev, sizeof(*hda->data), in hda_acpi_probe()
224 if (!hda->data) in hda_acpi_probe()
228 THIS_MODULE, 0, &hda->card); in hda_acpi_probe()
234 INIT_WORK(&hda->probe_work, hda_acpi_probe_work); in hda_acpi_probe()
236 err = hda_acpi_create(hda); in hda_acpi_probe()
239 hda->card->private_data = &hda->azx; in hda_acpi_probe()
241 dev_set_drvdata(&pdev->dev, hda->card); in hda_acpi_probe()
243 schedule_work(&hda->probe_work); in hda_acpi_probe()
248 snd_card_free(hda->card); in hda_acpi_probe()
301 .long_name = "NVIDIA HDA Controller",
324 MODULE_DESCRIPTION("Driver for ACPI-based HDA Controllers");