Lines Matching refs:skl

56 static void skl_init_pci(struct skl_dev *skl)  in skl_init_pci()  argument
58 struct hdac_bus *bus = skl_to_bus(skl); in skl_init_pci()
68 skl_update_pci_byte(skl->pci, AZX_PCIREG_TCSEL, 0x07, 0); in skl_init_pci()
260 struct skl_dev *skl = bus_to_skl(bus); in skl_acquire_irq() local
263 ret = request_threaded_irq(skl->pci->irq, skl_interrupt, in skl_acquire_irq()
270 skl->pci->irq); in skl_acquire_irq()
274 bus->irq = skl->pci->irq; in skl_acquire_irq()
275 pci_intx(skl->pci, 1); in skl_acquire_irq()
284 struct skl_dev *skl = bus_to_skl(bus); in skl_suspend_late() local
286 return skl_suspend_late_dsp(skl); in skl_suspend_late()
292 struct skl_dev *skl = bus_to_skl(bus); in _skl_suspend() local
298 ret = skl_suspend_dsp(skl); in _skl_suspend()
308 skl_cleanup_resources(skl); in _skl_suspend()
315 struct skl_dev *skl = bus_to_skl(bus); in _skl_resume() local
317 skl_init_pci(skl); in _skl_resume()
321 return skl_resume_dsp(skl); in _skl_resume()
333 struct skl_dev *skl = bus_to_skl(bus); in skl_suspend() local
340 if (skl->supend_active) { in skl_suspend()
353 skl->fw_loaded = false; in skl_suspend()
363 struct skl_dev *skl = bus_to_skl(bus); in skl_resume() local
371 if (skl->supend_active) { in skl_resume()
438 struct skl_dev *skl = bus_to_skl(bus); in skl_free() local
440 skl->init_done = 0; /* to be sure */ in skl_free()
453 pci_release_regions(skl->pci); in skl_free()
454 pci_disable_device(skl->pci); in skl_free()
483 static struct snd_soc_acpi_mach *skl_find_hda_machine(struct skl_dev *skl, in skl_find_hda_machine() argument
497 static int skl_find_machine(struct skl_dev *skl, void *driver_data) in skl_find_machine() argument
499 struct hdac_bus *bus = skl_to_bus(skl); in skl_find_machine()
506 mach = skl_find_hda_machine(skl, driver_data); in skl_find_machine()
513 skl->mach = mach; in skl_find_machine()
514 skl->fw_name = mach->fw_filename; in skl_find_machine()
518 skl->use_tplg_pcm = pdata->use_tplg_pcm; in skl_find_machine()
520 intel_nhlt_get_dmic_geo(&skl->pci->dev, in skl_find_machine()
521 skl->nhlt); in skl_find_machine()
527 static int skl_machine_device_register(struct skl_dev *skl) in skl_machine_device_register() argument
529 struct snd_soc_acpi_mach *mach = skl->mach; in skl_machine_device_register()
530 struct hdac_bus *bus = skl_to_bus(skl); in skl_machine_device_register()
558 skl->i2s_dev = pdev; in skl_machine_device_register()
563 static void skl_machine_device_unregister(struct skl_dev *skl) in skl_machine_device_unregister() argument
565 if (skl->i2s_dev) in skl_machine_device_unregister()
566 platform_device_unregister(skl->i2s_dev); in skl_machine_device_unregister()
569 static int skl_dmic_device_register(struct skl_dev *skl) in skl_dmic_device_register() argument
571 struct hdac_bus *bus = skl_to_bus(skl); in skl_dmic_device_register()
588 skl->dmic_dev = pdev; in skl_dmic_device_register()
593 static void skl_dmic_device_unregister(struct skl_dev *skl) in skl_dmic_device_unregister() argument
595 if (skl->dmic_dev) in skl_dmic_device_unregister()
596 platform_device_unregister(skl->dmic_dev); in skl_dmic_device_unregister()
631 static int skl_clock_device_register(struct skl_dev *skl) in skl_clock_device_register() argument
636 if (!skl->nhlt) in skl_clock_device_register()
639 clk_pdata = devm_kzalloc(&skl->pci->dev, sizeof(*clk_pdata), in skl_clock_device_register()
644 init_skl_xtal_rate(skl->pci->device); in skl_clock_device_register()
651 skl_get_clks(skl, clk_pdata->ssp_clks); in skl_clock_device_register()
652 clk_pdata->pvt_data = skl; in skl_clock_device_register()
655 pdevinfo.parent = &skl->pci->dev; in skl_clock_device_register()
660 skl->clk_dev = platform_device_register_full(&pdevinfo); in skl_clock_device_register()
661 return PTR_ERR_OR_ZERO(skl->clk_dev); in skl_clock_device_register()
664 static void skl_clock_device_unregister(struct skl_dev *skl) in skl_clock_device_unregister() argument
666 if (skl->clk_dev) in skl_clock_device_unregister()
667 platform_device_unregister(skl->clk_dev); in skl_clock_device_unregister()
700 struct skl_dev *skl = bus_to_skl(bus); in probe_codec() local
716 hda_codec = devm_kzalloc(&skl->pci->dev, sizeof(*hda_codec), in probe_codec()
721 hda_codec->codec.bus = skl_to_hbus(skl); in probe_codec()
735 hdev = devm_kzalloc(&skl->pci->dev, sizeof(*hdev), GFP_KERNEL); in probe_codec()
795 struct skl_dev *skl = container_of(work, struct skl_dev, probe_work); in skl_probe_work() local
796 struct hdac_bus *bus = skl_to_bus(skl); in skl_probe_work()
806 skl_init_pci(skl); in skl_probe_work()
829 err = skl_machine_device_register(skl); in skl_probe_work()
847 skl->init_done = 1; in skl_probe_work()
863 struct skl_dev *skl; in skl_create() local
874 skl = devm_kzalloc(&pci->dev, sizeof(*skl), GFP_KERNEL); in skl_create()
875 if (!skl) { in skl_create()
880 hbus = skl_to_hbus(skl); in skl_create()
881 bus = skl_to_bus(skl); in skl_create()
883 INIT_LIST_HEAD(&skl->ppl_list); in skl_create()
884 INIT_LIST_HEAD(&skl->bind_list); in skl_create()
891 skl->pci = pci; in skl_create()
892 INIT_WORK(&skl->probe_work, skl_probe_work); in skl_create()
900 *rskl = skl; in skl_create()
907 struct skl_dev *skl = bus_to_skl(bus); in skl_first_init() local
908 struct pci_dev *pci = skl->pci; in skl_first_init()
977 struct skl_dev *skl; in skl_probe() local
1000 err = skl_create(pci, &skl); in skl_probe()
1004 bus = skl_to_bus(skl); in skl_probe()
1012 skl->pci_id = pci->device; in skl_probe()
1016 skl->nhlt = intel_nhlt_init(bus->dev); in skl_probe()
1018 if (skl->nhlt == NULL) { in skl_probe()
1028 err = skl_nhlt_create_sysfs(skl); in skl_probe()
1034 skl_nhlt_update_topology_bin(skl); in skl_probe()
1037 err = skl_clock_device_register(skl); in skl_probe()
1044 pci_set_drvdata(skl->pci, bus); in skl_probe()
1047 err = skl_find_machine(skl, (void *)pci_id->driver_data); in skl_probe()
1053 err = skl_init_dsp(skl); in skl_probe()
1058 skl->enable_miscbdcge = skl_enable_miscbdcge; in skl_probe()
1059 skl->clock_power_gating = skl_clock_power_gating; in skl_probe()
1065 err = skl_dmic_device_register(skl); in skl_probe()
1071 schedule_work(&skl->probe_work); in skl_probe()
1076 skl_free_dsp(skl); in skl_probe()
1078 skl_clock_device_unregister(skl); in skl_probe()
1080 if (skl->nhlt) in skl_probe()
1081 intel_nhlt_free(skl->nhlt); in skl_probe()
1093 struct skl_dev *skl; in skl_shutdown() local
1098 skl = bus_to_skl(bus); in skl_shutdown()
1100 if (!skl->init_done) in skl_shutdown()
1115 struct skl_dev *skl = bus_to_skl(bus); in skl_remove() local
1117 cancel_work_sync(&skl->probe_work); in skl_remove()
1125 skl_free_dsp(skl); in skl_remove()
1126 skl_machine_device_unregister(skl); in skl_remove()
1127 skl_dmic_device_unregister(skl); in skl_remove()
1128 skl_clock_device_unregister(skl); in skl_remove()
1129 skl_nhlt_remove_sysfs(skl); in skl_remove()
1130 if (skl->nhlt) in skl_remove()
1131 intel_nhlt_free(skl->nhlt); in skl_remove()