diff -Nru oem-audio-hda-daily-dkms-0.201808040308~ubuntu18.04.1/debian/bzr-builder.manifest oem-audio-hda-daily-dkms-0.201808050301~ubuntu18.04.1/debian/bzr-builder.manifest --- oem-audio-hda-daily-dkms-0.201808040308~ubuntu18.04.1/debian/bzr-builder.manifest 2018-08-04 03:09:03.000000000 +0000 +++ oem-audio-hda-daily-dkms-0.201808050301~ubuntu18.04.1/debian/bzr-builder.manifest 2018-08-05 03:01:18.000000000 +0000 @@ -1,5 +1,5 @@ -# bzr-builder format 0.3 deb-version 0.201808040308 -lp:~ubuntu-audio-dev/alsa-driver/dkms-packaging revid:hui.wang@canonical.com-20180731035700-zbd17thjqn2k3x1j +# bzr-builder format 0.3 deb-version 0.201808050301 +lp:~ubuntu-audio-dev/alsa-driver/dkms-packaging revid:hui.wang@canonical.com-20180804033838-zi0cknykxxufj5we nest-part upstream_pci_hda lp:~hui.wang/alsa-driver/tiwai-trunk-ffgit pci/hda hda-src-from-tree revid:git-v1:948206c2f13996acbb5beac73504d9148914438e nest-part upstream_hda_core lp:~hui.wang/alsa-driver/tiwai-trunk-ffgit hda hda-src-from-tree/hdacore revid:git-v1:948206c2f13996acbb5beac73504d9148914438e nest-part upstream_include lp:~hui.wang/alsa-driver/tiwai-trunk-ffgit include include-src-from-tree revid:git-v1:948206c2f13996acbb5beac73504d9148914438e diff -Nru oem-audio-hda-daily-dkms-0.201808040308~ubuntu18.04.1/debian/changelog oem-audio-hda-daily-dkms-0.201808050301~ubuntu18.04.1/debian/changelog --- oem-audio-hda-daily-dkms-0.201808040308~ubuntu18.04.1/debian/changelog 2018-08-04 03:09:03.000000000 +0000 +++ oem-audio-hda-daily-dkms-0.201808050301~ubuntu18.04.1/debian/changelog 2018-08-05 03:01:18.000000000 +0000 @@ -1,8 +1,8 @@ -oem-audio-hda-daily-dkms (0.201808040308~ubuntu18.04.1) bionic; urgency=low +oem-audio-hda-daily-dkms (0.201808050301~ubuntu18.04.1) bionic; urgency=low * Auto build. - -- Hui Wang Sat, 04 Aug 2018 03:09:03 +0000 + -- Launchpad Package Builder Sun, 05 Aug 2018 03:01:18 +0000 oem-audio-hda-daily-dkms (0.1) trusty; urgency=low diff -Nru oem-audio-hda-daily-dkms-0.201808040308~ubuntu18.04.1/patches-artful/drm_audio_component.patch oem-audio-hda-daily-dkms-0.201808050301~ubuntu18.04.1/patches-artful/drm_audio_component.patch --- oem-audio-hda-daily-dkms-0.201808040308~ubuntu18.04.1/patches-artful/drm_audio_component.patch 1970-01-01 00:00:00.000000000 +0000 +++ oem-audio-hda-daily-dkms-0.201808050301~ubuntu18.04.1/patches-artful/drm_audio_component.patch 2018-08-05 03:01:15.000000000 +0000 @@ -0,0 +1,265 @@ +Index: oem-audio-hda-daily-0.1/hdacore/hdac_component.c +=================================================================== +--- oem-audio-hda-daily-0.1.orig/hdacore/hdac_component.c ++++ oem-audio-hda-daily-0.1/hdacore/hdac_component.c +@@ -14,7 +14,7 @@ static void hdac_acomp_release(struct de + { + } + +-static struct drm_audio_component *hdac_get_acomp(struct device *dev) ++static struct i915_audio_component *hdac_get_acomp(struct device *dev) + { + return devres_find(dev, hdac_acomp_release, NULL, NULL); + } +@@ -34,7 +34,7 @@ static struct drm_audio_component *hdac_ + */ + int snd_hdac_set_codec_wakeup(struct hdac_bus *bus, bool enable) + { +- struct drm_audio_component *acomp = bus->audio_component; ++ struct i915_audio_component *acomp = bus->audio_component; + + if (!acomp || !acomp->ops) + return -ENODEV; +@@ -66,7 +66,7 @@ EXPORT_SYMBOL_GPL(snd_hdac_set_codec_wak + */ + int snd_hdac_display_power(struct hdac_bus *bus, bool enable) + { +- struct drm_audio_component *acomp = bus->audio_component; ++ struct i915_audio_component *acomp = bus->audio_component; + + if (!acomp || !acomp->ops) + return -ENODEV; +@@ -75,15 +75,15 @@ int snd_hdac_display_power(struct hdac_b + enable ? "enable" : "disable"); + + if (enable) { +- if (!bus->drm_power_refcount++) { ++ if (!bus->i915_power_refcount++) { + if (acomp->ops->get_power) + acomp->ops->get_power(acomp->dev); + snd_hdac_set_codec_wakeup(bus, true); + snd_hdac_set_codec_wakeup(bus, false); + } + } else { +- WARN_ON(!bus->drm_power_refcount); +- if (!--bus->drm_power_refcount) ++ WARN_ON(!bus->i915_power_refcount); ++ if (!--bus->i915_power_refcount) + if (acomp->ops->put_power) + acomp->ops->put_power(acomp->dev); + } +@@ -109,7 +109,7 @@ int snd_hdac_sync_audio_rate(struct hdac + int dev_id, int rate) + { + struct hdac_bus *bus = codec->bus; +- struct drm_audio_component *acomp = bus->audio_component; ++ struct i915_audio_component *acomp = bus->audio_component; + int port, pipe; + + if (!acomp || !acomp->ops || !acomp->ops->sync_audio_rate) +@@ -150,7 +150,7 @@ int snd_hdac_acomp_get_eld(struct hdac_d + bool *audio_enabled, char *buffer, int max_bytes) + { + struct hdac_bus *bus = codec->bus; +- struct drm_audio_component *acomp = bus->audio_component; ++ struct i915_audio_component *acomp = bus->audio_component; + int port, pipe; + + if (!acomp || !acomp->ops || !acomp->ops->get_eld) +@@ -170,7 +170,7 @@ EXPORT_SYMBOL_GPL(snd_hdac_acomp_get_eld + + static int hdac_component_master_bind(struct device *dev) + { +- struct drm_audio_component *acomp = hdac_get_acomp(dev); ++ struct i915_audio_component *acomp = hdac_get_acomp(dev); + int ret; + + if (WARN_ON(!acomp)) +@@ -209,7 +209,7 @@ out_unbind: + + static void hdac_component_master_unbind(struct device *dev) + { +- struct drm_audio_component *acomp = hdac_get_acomp(dev); ++ struct i915_audio_component *acomp = hdac_get_acomp(dev); + + if (acomp->audio_ops && acomp->audio_ops->master_unbind) + acomp->audio_ops->master_unbind(dev, acomp); +@@ -236,7 +236,7 @@ static const struct component_master_ops + * Returns zero for success or a negative error code. + */ + int snd_hdac_acomp_register_notifier(struct hdac_bus *bus, +- const struct drm_audio_component_audio_ops *aops) ++ const struct i915_audio_component_audio_ops *aops) + { + if (!bus->audio_component) + return -ENODEV; +@@ -265,13 +265,13 @@ EXPORT_SYMBOL_GPL(snd_hdac_acomp_registe + * Returns zero for success or a negative error code. + */ + int snd_hdac_acomp_init(struct hdac_bus *bus, +- const struct drm_audio_component_audio_ops *aops, ++ const struct i915_audio_component_audio_ops *aops, + int (*match_master)(struct device *, void *), + size_t extra_size) + { + struct component_match *match = NULL; + struct device *dev = bus->dev; +- struct drm_audio_component *acomp; ++ struct i915_audio_component *acomp; + int ret; + + if (WARN_ON(hdac_get_acomp(dev))) +@@ -316,13 +316,13 @@ EXPORT_SYMBOL_GPL(snd_hdac_acomp_init); + int snd_hdac_acomp_exit(struct hdac_bus *bus) + { + struct device *dev = bus->dev; +- struct drm_audio_component *acomp = bus->audio_component; ++ struct i915_audio_component *acomp = bus->audio_component; + + if (!acomp) + return 0; + +- WARN_ON(bus->drm_power_refcount); +- if (bus->drm_power_refcount > 0 && acomp->ops) ++ WARN_ON(bus->i915_power_refcount); ++ if (bus->i915_power_refcount > 0 && acomp->ops) + acomp->ops->put_power(acomp->dev); + + component_master_del(dev, &hdac_component_master_ops); +Index: oem-audio-hda-daily-0.1/hdacore/hdac_i915.c +=================================================================== +--- oem-audio-hda-daily-0.1.orig/hdacore/hdac_i915.c ++++ oem-audio-hda-daily-0.1/hdacore/hdac_i915.c +@@ -43,7 +43,7 @@ static struct completion bind_complete; + */ + void snd_hdac_i915_set_bclk(struct hdac_bus *bus) + { +- struct drm_audio_component *acomp = bus->audio_component; ++ struct i915_audio_component *acomp = bus->audio_component; + struct pci_dev *pci = to_pci_dev(bus->dev); + int cdclk_freq; + unsigned int bclk_m, bclk_n; +@@ -100,7 +100,7 @@ static bool i915_gfx_present(void) + } + + static int i915_master_bind(struct device *dev, +- struct drm_audio_component *acomp) ++ struct i915_audio_component *acomp) + { + complete_all(&bind_complete); + /* clear audio_ops here as it was needed only for completion call */ +@@ -108,8 +108,8 @@ static int i915_master_bind(struct devic + return 0; + } + +-static const struct drm_audio_component_audio_ops i915_init_ops = { +- .master_bind = i915_master_bind ++static const struct i915_audio_component_audio_ops i915_init_ops = { ++ /* .master_bind = i915_master_bind */ + }; + + /** +@@ -126,7 +126,7 @@ static const struct drm_audio_component_ + */ + int snd_hdac_i915_init(struct hdac_bus *bus) + { +- struct drm_audio_component *acomp; ++ struct i915_audio_component *acomp; + int err; + + if (!i915_gfx_present()) +Index: oem-audio-hda-daily-0.1/include/hda_component.h +=================================================================== +--- oem-audio-hda-daily-0.1.orig/include/hda_component.h ++++ oem-audio-hda-daily-0.1/include/hda_component.h +@@ -4,7 +4,7 @@ + #ifndef __SOUND_HDA_COMPONENT_H + #define __SOUND_HDA_COMPONENT_H + +-#include ++#include + + #ifdef CONFIG_SND_HDA_COMPONENT + int snd_hdac_set_codec_wakeup(struct hdac_bus *bus, bool enable); +@@ -14,12 +14,12 @@ int snd_hdac_sync_audio_rate(struct hdac + int snd_hdac_acomp_get_eld(struct hdac_device *codec, hda_nid_t nid, int dev_id, + bool *audio_enabled, char *buffer, int max_bytes); + int snd_hdac_acomp_init(struct hdac_bus *bus, +- const struct drm_audio_component_audio_ops *aops, ++ const struct i915_audio_component_audio_ops *aops, + int (*match_master)(struct device *, void *), + size_t extra_size); + int snd_hdac_acomp_exit(struct hdac_bus *bus); + int snd_hdac_acomp_register_notifier(struct hdac_bus *bus, +- const struct drm_audio_component_audio_ops *ops); ++ const struct i915_audio_component_audio_ops *ops); + #else + static inline int snd_hdac_set_codec_wakeup(struct hdac_bus *bus, bool enable) + { +@@ -41,7 +41,7 @@ static inline int snd_hdac_acomp_get_eld + return -ENODEV; + } + static inline int snd_hdac_acomp_init(struct hdac_bus *bus, +- const struct drm_audio_component_audio_ops *aops, ++ const struct i915_audio_component_audio_ops *aops, + int (*match_master)(struct device *, void *), + size_t extra_size) + { +@@ -52,7 +52,7 @@ static inline int snd_hdac_acomp_exit(st + return 0; + } + static inline int snd_hdac_acomp_register_notifier(struct hdac_bus *bus, +- const struct drm_audio_component_audio_ops *ops) ++ const struct i915_audio_component_audio_ops *ops) + { + return -ENODEV; + } +Index: oem-audio-hda-daily-0.1/include/hdaudio.h +=================================================================== +--- oem-audio-hda-daily-0.1.orig/include/hdaudio.h ++++ oem-audio-hda-daily-0.1/include/hdaudio.h +@@ -362,8 +362,8 @@ struct hdac_bus { + struct mutex cmd_mutex; + + /* DRM component interface */ +- struct drm_audio_component *audio_component; +- int drm_power_refcount; ++ struct i915_audio_component *audio_component; ++ int i915_power_refcount; + + /* parameters required for enhanced capabilities */ + int num_streams; +Index: oem-audio-hda-daily-0.1/patch_hdmi.c +=================================================================== +--- oem-audio-hda-daily-0.1.orig/patch_hdmi.c ++++ oem-audio-hda-daily-0.1/patch_hdmi.c +@@ -177,7 +177,7 @@ struct hdmi_spec { + + /* i915/powerwell (Haswell+/Valleyview+) specific */ + bool use_acomp_notifier; /* use i915 eld_notify callback for hotplug */ +- struct drm_audio_component_audio_ops drm_audio_ops; ++ struct i915_audio_component_audio_ops i915_audio_ops; + + struct hdac_chmap chmap; + hda_nid_t vendor_nid; +@@ -2533,16 +2533,16 @@ static void register_i915_notifier(struc + struct hdmi_spec *spec = codec->spec; + + spec->use_acomp_notifier = true; +- spec->drm_audio_ops.audio_ptr = codec; ++ spec->i915_audio_ops.audio_ptr = codec; + /* intel_audio_codec_enable() or intel_audio_codec_disable() + * will call pin_eld_notify with using audio_ptr pointer + * We need make sure audio_ptr is really setup + */ + wmb(); +- spec->drm_audio_ops.pin2port = intel_pin2port; +- spec->drm_audio_ops.pin_eld_notify = intel_pin_eld_notify; ++ /* spec->i915_audio_ops.pin2port = intel_pin2port; */ ++ spec->i915_audio_ops.pin_eld_notify = intel_pin_eld_notify; + snd_hdac_acomp_register_notifier(&codec->bus->core, +- &spec->drm_audio_ops); ++ &spec->i915_audio_ops); + } + + /* setup_stream ops override for HSW+ */ diff -Nru oem-audio-hda-daily-dkms-0.201808040308~ubuntu18.04.1/patches-artful/remove_hdacore_ext.patch oem-audio-hda-daily-dkms-0.201808050301~ubuntu18.04.1/patches-artful/remove_hdacore_ext.patch --- oem-audio-hda-daily-dkms-0.201808040308~ubuntu18.04.1/patches-artful/remove_hdacore_ext.patch 1970-01-01 00:00:00.000000000 +0000 +++ oem-audio-hda-daily-dkms-0.201808050301~ubuntu18.04.1/patches-artful/remove_hdacore_ext.patch 2018-08-05 03:01:15.000000000 +0000 @@ -0,0 +1,10 @@ +Index: oem-audio-hda-daily-0.1/hdacore/Makefile +=================================================================== +--- oem-audio-hda-daily-0.1.orig/hdacore/Makefile ++++ oem-audio-hda-daily-0.1/hdacore/Makefile +@@ -12,4 +12,4 @@ snd-hda-core-$(CONFIG_SND_HDA_I915) += h + obj-$(CONFIG_SND_HDA_CORE) += snd-hda-core.o + + #extended hda +-obj-$(CONFIG_SND_HDA_EXT_CORE) += ext/ ++#obj-$(CONFIG_SND_HDA_EXT_CORE) += ext/ diff -Nru oem-audio-hda-daily-dkms-0.201808040308~ubuntu18.04.1/patches-artful/series oem-audio-hda-daily-dkms-0.201808050301~ubuntu18.04.1/patches-artful/series --- oem-audio-hda-daily-dkms-0.201808040308~ubuntu18.04.1/patches-artful/series 2018-08-04 03:09:00.000000000 +0000 +++ oem-audio-hda-daily-dkms-0.201808050301~ubuntu18.04.1/patches-artful/series 2018-08-05 03:01:15.000000000 +0000 @@ -4,3 +4,6 @@ include_dir.patch add_PCI_CLASS_MULTIMEDIA_HD_AUDIO.patch fix_nospec_header.patch +drm_audio_component.patch +vga_switchroo.patch +remove_hdacore_ext.patch diff -Nru oem-audio-hda-daily-dkms-0.201808040308~ubuntu18.04.1/patches-artful/vga_switchroo.patch oem-audio-hda-daily-dkms-0.201808050301~ubuntu18.04.1/patches-artful/vga_switchroo.patch --- oem-audio-hda-daily-dkms-0.201808040308~ubuntu18.04.1/patches-artful/vga_switchroo.patch 1970-01-01 00:00:00.000000000 +0000 +++ oem-audio-hda-daily-dkms-0.201808050301~ubuntu18.04.1/patches-artful/vga_switchroo.patch 2018-08-05 03:01:15.000000000 +0000 @@ -0,0 +1,13 @@ +Index: oem-audio-hda-daily-0.1/hda_intel.c +=================================================================== +--- oem-audio-hda-daily-0.1.orig/hda_intel.c ++++ oem-audio-hda-daily-0.1/hda_intel.c +@@ -1328,7 +1328,7 @@ static int register_vga_switcheroo(struc + return 0; + + p = get_bound_vga(chip->pci); +- err = vga_switcheroo_register_audio_client(chip->pci, &azx_vs_ops, p); ++ err = vga_switcheroo_register_audio_client(chip->pci, &azx_vs_ops, VGA_SWITCHEROO_DIS); + pci_dev_put(p); + + if (err < 0) diff -Nru oem-audio-hda-daily-dkms-0.201808040308~ubuntu18.04.1/patches-xenial/call_i915_bpo_for_xenial.patch oem-audio-hda-daily-dkms-0.201808050301~ubuntu18.04.1/patches-xenial/call_i915_bpo_for_xenial.patch --- oem-audio-hda-daily-dkms-0.201808040308~ubuntu18.04.1/patches-xenial/call_i915_bpo_for_xenial.patch 2018-08-04 03:09:00.000000000 +0000 +++ oem-audio-hda-daily-dkms-0.201808050301~ubuntu18.04.1/patches-xenial/call_i915_bpo_for_xenial.patch 2018-08-05 03:01:15.000000000 +0000 @@ -2,7 +2,7 @@ =================================================================== --- oem-audio-hda-daily-0.1.orig/hda_intel.c +++ oem-audio-hda-daily-0.1/hda_intel.c -@@ -2207,6 +2207,10 @@ static int azx_probe_continue(struct azx +@@ -2253,6 +2253,10 @@ static int azx_probe_continue(struct azx /* bind with i915 if needed */ if (chip->driver_caps & AZX_DCAPS_I915_COMPONENT) { @@ -17,9 +17,9 @@ =================================================================== --- oem-audio-hda-daily-0.1.orig/hdacore/hdac_i915.c +++ oem-audio-hda-daily-0.1/hdacore/hdac_i915.c -@@ -312,6 +312,11 @@ static int hdac_component_master_match(s - return !strcmp(dev->driver->name, "i915"); - } +@@ -112,6 +112,11 @@ static const struct drm_audio_component_ + .master_bind = i915_master_bind + }; +static int hdac_component_master_match_bpo(struct device *dev, void *data) +{ @@ -27,24 +27,13 @@ +} + /** - * snd_hdac_i915_register_notifier - Register i915 audio component ops - * @aops: i915 audio component ops -@@ -395,9 +400,9 @@ int snd_hdac_i915_init(struct hdac_bus * - dev_dbg(dev, "bound to i915 component master\n"); - + * snd_hdac_i915_init - Initialize i915 audio component + * @bus: HDA core bus +@@ -154,3 +159,46 @@ int snd_hdac_i915_init(struct hdac_bus * return 0; --out_master_del: -+ out_master_del: - component_master_del(dev, &hdac_component_master_ops); --out_err: -+ out_err: - kfree(acomp); - bus->audio_component = NULL; - hdac_acomp = NULL; -@@ -407,6 +412,51 @@ out_err: } EXPORT_SYMBOL_GPL(snd_hdac_i915_init); - ++ +int snd_hdac_i915_init_bpo(struct hdac_bus *bus) +{ + struct component_match *match = NULL; @@ -77,9 +66,9 @@ + dev_dbg(dev, "bound to i915_bpo component master\n"); + + return 0; -+ out_master_del: ++out_master_del: + component_master_del(dev, &hdac_component_master_ops); -+ out_err: ++out_err: + kfree(acomp); + bus->audio_component = NULL; + dev_err(dev, "failed to add i915_bpo component master (%d)\n", ret); @@ -87,25 +76,19 @@ + return ret; +} +EXPORT_SYMBOL_GPL(snd_hdac_i915_init_bpo); -+ -+ -+ - /** - * snd_hdac_i915_exit - Finalize i915 audio component - * @bus: HDA core bus Index: oem-audio-hda-daily-0.1/include/hda_i915.h =================================================================== --- oem-audio-hda-daily-0.1.orig/include/hda_i915.h +++ oem-audio-hda-daily-0.1/include/hda_i915.h -@@ -15,6 +15,7 @@ int snd_hdac_sync_audio_rate(struct hdac - int snd_hdac_acomp_get_eld(struct hdac_device *codec, hda_nid_t nid, int dev_id, - bool *audio_enabled, char *buffer, int max_bytes); +@@ -10,6 +10,7 @@ + #ifdef CONFIG_SND_HDA_I915 + void snd_hdac_i915_set_bclk(struct hdac_bus *bus); int snd_hdac_i915_init(struct hdac_bus *bus); +int snd_hdac_i915_init_bpo(struct hdac_bus *bus); - int snd_hdac_i915_exit(struct hdac_bus *bus); - int snd_hdac_i915_register_notifier(const struct i915_audio_component_audio_ops *); #else -@@ -44,6 +45,10 @@ static inline int snd_hdac_i915_init(str + static inline void snd_hdac_i915_set_bclk(struct hdac_bus *bus) + { +@@ -18,6 +19,10 @@ static inline int snd_hdac_i915_init(str { return -ENODEV; } @@ -113,6 +96,6 @@ +{ + return -ENODEV; +} + #endif static inline int snd_hdac_i915_exit(struct hdac_bus *bus) { - return 0; diff -Nru oem-audio-hda-daily-dkms-0.201808040308~ubuntu18.04.1/patches-xenial/drm_audio_component.patch oem-audio-hda-daily-dkms-0.201808050301~ubuntu18.04.1/patches-xenial/drm_audio_component.patch --- oem-audio-hda-daily-dkms-0.201808040308~ubuntu18.04.1/patches-xenial/drm_audio_component.patch 1970-01-01 00:00:00.000000000 +0000 +++ oem-audio-hda-daily-dkms-0.201808050301~ubuntu18.04.1/patches-xenial/drm_audio_component.patch 2018-08-05 03:01:15.000000000 +0000 @@ -0,0 +1,265 @@ +Index: oem-audio-hda-daily-0.1/hdacore/hdac_component.c +=================================================================== +--- oem-audio-hda-daily-0.1.orig/hdacore/hdac_component.c ++++ oem-audio-hda-daily-0.1/hdacore/hdac_component.c +@@ -14,7 +14,7 @@ static void hdac_acomp_release(struct de + { + } + +-static struct drm_audio_component *hdac_get_acomp(struct device *dev) ++static struct i915_audio_component *hdac_get_acomp(struct device *dev) + { + return devres_find(dev, hdac_acomp_release, NULL, NULL); + } +@@ -34,7 +34,7 @@ static struct drm_audio_component *hdac_ + */ + int snd_hdac_set_codec_wakeup(struct hdac_bus *bus, bool enable) + { +- struct drm_audio_component *acomp = bus->audio_component; ++ struct i915_audio_component *acomp = bus->audio_component; + + if (!acomp || !acomp->ops) + return -ENODEV; +@@ -66,7 +66,7 @@ EXPORT_SYMBOL_GPL(snd_hdac_set_codec_wak + */ + int snd_hdac_display_power(struct hdac_bus *bus, bool enable) + { +- struct drm_audio_component *acomp = bus->audio_component; ++ struct i915_audio_component *acomp = bus->audio_component; + + if (!acomp || !acomp->ops) + return -ENODEV; +@@ -75,15 +75,15 @@ int snd_hdac_display_power(struct hdac_b + enable ? "enable" : "disable"); + + if (enable) { +- if (!bus->drm_power_refcount++) { ++ if (!bus->i915_power_refcount++) { + if (acomp->ops->get_power) + acomp->ops->get_power(acomp->dev); + snd_hdac_set_codec_wakeup(bus, true); + snd_hdac_set_codec_wakeup(bus, false); + } + } else { +- WARN_ON(!bus->drm_power_refcount); +- if (!--bus->drm_power_refcount) ++ WARN_ON(!bus->i915_power_refcount); ++ if (!--bus->i915_power_refcount) + if (acomp->ops->put_power) + acomp->ops->put_power(acomp->dev); + } +@@ -109,7 +109,7 @@ int snd_hdac_sync_audio_rate(struct hdac + int dev_id, int rate) + { + struct hdac_bus *bus = codec->bus; +- struct drm_audio_component *acomp = bus->audio_component; ++ struct i915_audio_component *acomp = bus->audio_component; + int port, pipe; + + if (!acomp || !acomp->ops || !acomp->ops->sync_audio_rate) +@@ -150,7 +150,7 @@ int snd_hdac_acomp_get_eld(struct hdac_d + bool *audio_enabled, char *buffer, int max_bytes) + { + struct hdac_bus *bus = codec->bus; +- struct drm_audio_component *acomp = bus->audio_component; ++ struct i915_audio_component *acomp = bus->audio_component; + int port, pipe; + + if (!acomp || !acomp->ops || !acomp->ops->get_eld) +@@ -170,7 +170,7 @@ EXPORT_SYMBOL_GPL(snd_hdac_acomp_get_eld + + static int hdac_component_master_bind(struct device *dev) + { +- struct drm_audio_component *acomp = hdac_get_acomp(dev); ++ struct i915_audio_component *acomp = hdac_get_acomp(dev); + int ret; + + if (WARN_ON(!acomp)) +@@ -209,7 +209,7 @@ out_unbind: + + static void hdac_component_master_unbind(struct device *dev) + { +- struct drm_audio_component *acomp = hdac_get_acomp(dev); ++ struct i915_audio_component *acomp = hdac_get_acomp(dev); + + if (acomp->audio_ops && acomp->audio_ops->master_unbind) + acomp->audio_ops->master_unbind(dev, acomp); +@@ -236,7 +236,7 @@ static const struct component_master_ops + * Returns zero for success or a negative error code. + */ + int snd_hdac_acomp_register_notifier(struct hdac_bus *bus, +- const struct drm_audio_component_audio_ops *aops) ++ const struct i915_audio_component_audio_ops *aops) + { + if (!bus->audio_component) + return -ENODEV; +@@ -265,13 +265,13 @@ EXPORT_SYMBOL_GPL(snd_hdac_acomp_registe + * Returns zero for success or a negative error code. + */ + int snd_hdac_acomp_init(struct hdac_bus *bus, +- const struct drm_audio_component_audio_ops *aops, ++ const struct i915_audio_component_audio_ops *aops, + int (*match_master)(struct device *, void *), + size_t extra_size) + { + struct component_match *match = NULL; + struct device *dev = bus->dev; +- struct drm_audio_component *acomp; ++ struct i915_audio_component *acomp; + int ret; + + if (WARN_ON(hdac_get_acomp(dev))) +@@ -316,13 +316,13 @@ EXPORT_SYMBOL_GPL(snd_hdac_acomp_init); + int snd_hdac_acomp_exit(struct hdac_bus *bus) + { + struct device *dev = bus->dev; +- struct drm_audio_component *acomp = bus->audio_component; ++ struct i915_audio_component *acomp = bus->audio_component; + + if (!acomp) + return 0; + +- WARN_ON(bus->drm_power_refcount); +- if (bus->drm_power_refcount > 0 && acomp->ops) ++ WARN_ON(bus->i915_power_refcount); ++ if (bus->i915_power_refcount > 0 && acomp->ops) + acomp->ops->put_power(acomp->dev); + + component_master_del(dev, &hdac_component_master_ops); +Index: oem-audio-hda-daily-0.1/hdacore/hdac_i915.c +=================================================================== +--- oem-audio-hda-daily-0.1.orig/hdacore/hdac_i915.c ++++ oem-audio-hda-daily-0.1/hdacore/hdac_i915.c +@@ -43,7 +43,7 @@ static struct completion bind_complete; + */ + void snd_hdac_i915_set_bclk(struct hdac_bus *bus) + { +- struct drm_audio_component *acomp = bus->audio_component; ++ struct i915_audio_component *acomp = bus->audio_component; + struct pci_dev *pci = to_pci_dev(bus->dev); + int cdclk_freq; + unsigned int bclk_m, bclk_n; +@@ -100,7 +100,7 @@ static bool i915_gfx_present(void) + } + + static int i915_master_bind(struct device *dev, +- struct drm_audio_component *acomp) ++ struct i915_audio_component *acomp) + { + complete_all(&bind_complete); + /* clear audio_ops here as it was needed only for completion call */ +@@ -108,8 +108,8 @@ static int i915_master_bind(struct devic + return 0; + } + +-static const struct drm_audio_component_audio_ops i915_init_ops = { +- .master_bind = i915_master_bind ++static const struct i915_audio_component_audio_ops i915_init_ops = { ++ /* .master_bind = i915_master_bind */ + }; + + /** +@@ -126,7 +126,7 @@ static const struct drm_audio_component_ + */ + int snd_hdac_i915_init(struct hdac_bus *bus) + { +- struct drm_audio_component *acomp; ++ struct i915_audio_component *acomp; + int err; + + if (!i915_gfx_present()) +Index: oem-audio-hda-daily-0.1/include/hda_component.h +=================================================================== +--- oem-audio-hda-daily-0.1.orig/include/hda_component.h ++++ oem-audio-hda-daily-0.1/include/hda_component.h +@@ -4,7 +4,7 @@ + #ifndef __SOUND_HDA_COMPONENT_H + #define __SOUND_HDA_COMPONENT_H + +-#include ++#include + + #ifdef CONFIG_SND_HDA_COMPONENT + int snd_hdac_set_codec_wakeup(struct hdac_bus *bus, bool enable); +@@ -14,12 +14,12 @@ int snd_hdac_sync_audio_rate(struct hdac + int snd_hdac_acomp_get_eld(struct hdac_device *codec, hda_nid_t nid, int dev_id, + bool *audio_enabled, char *buffer, int max_bytes); + int snd_hdac_acomp_init(struct hdac_bus *bus, +- const struct drm_audio_component_audio_ops *aops, ++ const struct i915_audio_component_audio_ops *aops, + int (*match_master)(struct device *, void *), + size_t extra_size); + int snd_hdac_acomp_exit(struct hdac_bus *bus); + int snd_hdac_acomp_register_notifier(struct hdac_bus *bus, +- const struct drm_audio_component_audio_ops *ops); ++ const struct i915_audio_component_audio_ops *ops); + #else + static inline int snd_hdac_set_codec_wakeup(struct hdac_bus *bus, bool enable) + { +@@ -41,7 +41,7 @@ static inline int snd_hdac_acomp_get_eld + return -ENODEV; + } + static inline int snd_hdac_acomp_init(struct hdac_bus *bus, +- const struct drm_audio_component_audio_ops *aops, ++ const struct i915_audio_component_audio_ops *aops, + int (*match_master)(struct device *, void *), + size_t extra_size) + { +@@ -52,7 +52,7 @@ static inline int snd_hdac_acomp_exit(st + return 0; + } + static inline int snd_hdac_acomp_register_notifier(struct hdac_bus *bus, +- const struct drm_audio_component_audio_ops *ops) ++ const struct i915_audio_component_audio_ops *ops) + { + return -ENODEV; + } +Index: oem-audio-hda-daily-0.1/include/hdaudio.h +=================================================================== +--- oem-audio-hda-daily-0.1.orig/include/hdaudio.h ++++ oem-audio-hda-daily-0.1/include/hdaudio.h +@@ -362,8 +362,8 @@ struct hdac_bus { + struct mutex cmd_mutex; + + /* DRM component interface */ +- struct drm_audio_component *audio_component; +- int drm_power_refcount; ++ struct i915_audio_component *audio_component; ++ int i915_power_refcount; + + /* parameters required for enhanced capabilities */ + int num_streams; +Index: oem-audio-hda-daily-0.1/patch_hdmi.c +=================================================================== +--- oem-audio-hda-daily-0.1.orig/patch_hdmi.c ++++ oem-audio-hda-daily-0.1/patch_hdmi.c +@@ -177,7 +177,7 @@ struct hdmi_spec { + + /* i915/powerwell (Haswell+/Valleyview+) specific */ + bool use_acomp_notifier; /* use i915 eld_notify callback for hotplug */ +- struct drm_audio_component_audio_ops drm_audio_ops; ++ struct i915_audio_component_audio_ops i915_audio_ops; + + struct hdac_chmap chmap; + hda_nid_t vendor_nid; +@@ -2533,16 +2533,16 @@ static void register_i915_notifier(struc + struct hdmi_spec *spec = codec->spec; + + spec->use_acomp_notifier = true; +- spec->drm_audio_ops.audio_ptr = codec; ++ spec->i915_audio_ops.audio_ptr = codec; + /* intel_audio_codec_enable() or intel_audio_codec_disable() + * will call pin_eld_notify with using audio_ptr pointer + * We need make sure audio_ptr is really setup + */ + wmb(); +- spec->drm_audio_ops.pin2port = intel_pin2port; +- spec->drm_audio_ops.pin_eld_notify = intel_pin_eld_notify; ++ /* spec->i915_audio_ops.pin2port = intel_pin2port; */ ++ spec->i915_audio_ops.pin_eld_notify = intel_pin_eld_notify; + snd_hdac_acomp_register_notifier(&codec->bus->core, +- &spec->drm_audio_ops); ++ &spec->i915_audio_ops); + } + + /* setup_stream ops override for HSW+ */ diff -Nru oem-audio-hda-daily-dkms-0.201808040308~ubuntu18.04.1/patches-xenial/remove_hdacore_ext.patch oem-audio-hda-daily-dkms-0.201808050301~ubuntu18.04.1/patches-xenial/remove_hdacore_ext.patch --- oem-audio-hda-daily-dkms-0.201808040308~ubuntu18.04.1/patches-xenial/remove_hdacore_ext.patch 1970-01-01 00:00:00.000000000 +0000 +++ oem-audio-hda-daily-dkms-0.201808050301~ubuntu18.04.1/patches-xenial/remove_hdacore_ext.patch 2018-08-05 03:01:15.000000000 +0000 @@ -0,0 +1,10 @@ +Index: oem-audio-hda-daily-0.1/hdacore/Makefile +=================================================================== +--- oem-audio-hda-daily-0.1.orig/hdacore/Makefile ++++ oem-audio-hda-daily-0.1/hdacore/Makefile +@@ -12,4 +12,4 @@ snd-hda-core-$(CONFIG_SND_HDA_I915) += h + obj-$(CONFIG_SND_HDA_CORE) += snd-hda-core.o + + #extended hda +-obj-$(CONFIG_SND_HDA_EXT_CORE) += ext/ ++#obj-$(CONFIG_SND_HDA_EXT_CORE) += ext/ diff -Nru oem-audio-hda-daily-dkms-0.201808040308~ubuntu18.04.1/patches-xenial/series oem-audio-hda-daily-dkms-0.201808050301~ubuntu18.04.1/patches-xenial/series --- oem-audio-hda-daily-dkms-0.201808040308~ubuntu18.04.1/patches-xenial/series 2018-08-04 03:09:00.000000000 +0000 +++ oem-audio-hda-daily-dkms-0.201808050301~ubuntu18.04.1/patches-xenial/series 2018-08-05 03:01:15.000000000 +0000 @@ -5,9 +5,12 @@ kbuild_modname_fix.patch acpi_dev_present.patch call_i915_bpo_for_xenial.patch -mst-sync-audio-rate-get-eld.patch +#mst-sync-audio-rate-get-eld.patch remove-para-pipe-for-mst.patch restore-cacheflush.patch restore-dell-led-wmi-helper.patch add_PCI_CLASS_MULTIMEDIA_HD_AUDIO.patch fix_nospec_header.patch +drm_audio_component.patch +vga_switchroo.patch +remove_hdacore_ext.patch diff -Nru oem-audio-hda-daily-dkms-0.201808040308~ubuntu18.04.1/patches-xenial/vga_switchroo.patch oem-audio-hda-daily-dkms-0.201808050301~ubuntu18.04.1/patches-xenial/vga_switchroo.patch --- oem-audio-hda-daily-dkms-0.201808040308~ubuntu18.04.1/patches-xenial/vga_switchroo.patch 1970-01-01 00:00:00.000000000 +0000 +++ oem-audio-hda-daily-dkms-0.201808050301~ubuntu18.04.1/patches-xenial/vga_switchroo.patch 2018-08-05 03:01:15.000000000 +0000 @@ -0,0 +1,13 @@ +Index: oem-audio-hda-daily-0.1/hda_intel.c +=================================================================== +--- oem-audio-hda-daily-0.1.orig/hda_intel.c ++++ oem-audio-hda-daily-0.1/hda_intel.c +@@ -1328,7 +1328,7 @@ static int register_vga_switcheroo(struc + return 0; + + p = get_bound_vga(chip->pci); +- err = vga_switcheroo_register_audio_client(chip->pci, &azx_vs_ops, p); ++ err = vga_switcheroo_register_audio_client(chip->pci, &azx_vs_ops, VGA_SWITCHEROO_DIS); + pci_dev_put(p); + + if (err < 0) diff -Nru oem-audio-hda-daily-dkms-0.201808040308~ubuntu18.04.1/patches-yakkety/drm_audio_component.patch oem-audio-hda-daily-dkms-0.201808050301~ubuntu18.04.1/patches-yakkety/drm_audio_component.patch --- oem-audio-hda-daily-dkms-0.201808040308~ubuntu18.04.1/patches-yakkety/drm_audio_component.patch 1970-01-01 00:00:00.000000000 +0000 +++ oem-audio-hda-daily-dkms-0.201808050301~ubuntu18.04.1/patches-yakkety/drm_audio_component.patch 2018-08-05 03:01:15.000000000 +0000 @@ -0,0 +1,265 @@ +Index: oem-audio-hda-daily-0.1/hdacore/hdac_component.c +=================================================================== +--- oem-audio-hda-daily-0.1.orig/hdacore/hdac_component.c ++++ oem-audio-hda-daily-0.1/hdacore/hdac_component.c +@@ -14,7 +14,7 @@ static void hdac_acomp_release(struct de + { + } + +-static struct drm_audio_component *hdac_get_acomp(struct device *dev) ++static struct i915_audio_component *hdac_get_acomp(struct device *dev) + { + return devres_find(dev, hdac_acomp_release, NULL, NULL); + } +@@ -34,7 +34,7 @@ static struct drm_audio_component *hdac_ + */ + int snd_hdac_set_codec_wakeup(struct hdac_bus *bus, bool enable) + { +- struct drm_audio_component *acomp = bus->audio_component; ++ struct i915_audio_component *acomp = bus->audio_component; + + if (!acomp || !acomp->ops) + return -ENODEV; +@@ -66,7 +66,7 @@ EXPORT_SYMBOL_GPL(snd_hdac_set_codec_wak + */ + int snd_hdac_display_power(struct hdac_bus *bus, bool enable) + { +- struct drm_audio_component *acomp = bus->audio_component; ++ struct i915_audio_component *acomp = bus->audio_component; + + if (!acomp || !acomp->ops) + return -ENODEV; +@@ -75,15 +75,15 @@ int snd_hdac_display_power(struct hdac_b + enable ? "enable" : "disable"); + + if (enable) { +- if (!bus->drm_power_refcount++) { ++ if (!bus->i915_power_refcount++) { + if (acomp->ops->get_power) + acomp->ops->get_power(acomp->dev); + snd_hdac_set_codec_wakeup(bus, true); + snd_hdac_set_codec_wakeup(bus, false); + } + } else { +- WARN_ON(!bus->drm_power_refcount); +- if (!--bus->drm_power_refcount) ++ WARN_ON(!bus->i915_power_refcount); ++ if (!--bus->i915_power_refcount) + if (acomp->ops->put_power) + acomp->ops->put_power(acomp->dev); + } +@@ -109,7 +109,7 @@ int snd_hdac_sync_audio_rate(struct hdac + int dev_id, int rate) + { + struct hdac_bus *bus = codec->bus; +- struct drm_audio_component *acomp = bus->audio_component; ++ struct i915_audio_component *acomp = bus->audio_component; + int port, pipe; + + if (!acomp || !acomp->ops || !acomp->ops->sync_audio_rate) +@@ -150,7 +150,7 @@ int snd_hdac_acomp_get_eld(struct hdac_d + bool *audio_enabled, char *buffer, int max_bytes) + { + struct hdac_bus *bus = codec->bus; +- struct drm_audio_component *acomp = bus->audio_component; ++ struct i915_audio_component *acomp = bus->audio_component; + int port, pipe; + + if (!acomp || !acomp->ops || !acomp->ops->get_eld) +@@ -170,7 +170,7 @@ EXPORT_SYMBOL_GPL(snd_hdac_acomp_get_eld + + static int hdac_component_master_bind(struct device *dev) + { +- struct drm_audio_component *acomp = hdac_get_acomp(dev); ++ struct i915_audio_component *acomp = hdac_get_acomp(dev); + int ret; + + if (WARN_ON(!acomp)) +@@ -209,7 +209,7 @@ out_unbind: + + static void hdac_component_master_unbind(struct device *dev) + { +- struct drm_audio_component *acomp = hdac_get_acomp(dev); ++ struct i915_audio_component *acomp = hdac_get_acomp(dev); + + if (acomp->audio_ops && acomp->audio_ops->master_unbind) + acomp->audio_ops->master_unbind(dev, acomp); +@@ -236,7 +236,7 @@ static const struct component_master_ops + * Returns zero for success or a negative error code. + */ + int snd_hdac_acomp_register_notifier(struct hdac_bus *bus, +- const struct drm_audio_component_audio_ops *aops) ++ const struct i915_audio_component_audio_ops *aops) + { + if (!bus->audio_component) + return -ENODEV; +@@ -265,13 +265,13 @@ EXPORT_SYMBOL_GPL(snd_hdac_acomp_registe + * Returns zero for success or a negative error code. + */ + int snd_hdac_acomp_init(struct hdac_bus *bus, +- const struct drm_audio_component_audio_ops *aops, ++ const struct i915_audio_component_audio_ops *aops, + int (*match_master)(struct device *, void *), + size_t extra_size) + { + struct component_match *match = NULL; + struct device *dev = bus->dev; +- struct drm_audio_component *acomp; ++ struct i915_audio_component *acomp; + int ret; + + if (WARN_ON(hdac_get_acomp(dev))) +@@ -316,13 +316,13 @@ EXPORT_SYMBOL_GPL(snd_hdac_acomp_init); + int snd_hdac_acomp_exit(struct hdac_bus *bus) + { + struct device *dev = bus->dev; +- struct drm_audio_component *acomp = bus->audio_component; ++ struct i915_audio_component *acomp = bus->audio_component; + + if (!acomp) + return 0; + +- WARN_ON(bus->drm_power_refcount); +- if (bus->drm_power_refcount > 0 && acomp->ops) ++ WARN_ON(bus->i915_power_refcount); ++ if (bus->i915_power_refcount > 0 && acomp->ops) + acomp->ops->put_power(acomp->dev); + + component_master_del(dev, &hdac_component_master_ops); +Index: oem-audio-hda-daily-0.1/hdacore/hdac_i915.c +=================================================================== +--- oem-audio-hda-daily-0.1.orig/hdacore/hdac_i915.c ++++ oem-audio-hda-daily-0.1/hdacore/hdac_i915.c +@@ -43,7 +43,7 @@ static struct completion bind_complete; + */ + void snd_hdac_i915_set_bclk(struct hdac_bus *bus) + { +- struct drm_audio_component *acomp = bus->audio_component; ++ struct i915_audio_component *acomp = bus->audio_component; + struct pci_dev *pci = to_pci_dev(bus->dev); + int cdclk_freq; + unsigned int bclk_m, bclk_n; +@@ -100,7 +100,7 @@ static bool i915_gfx_present(void) + } + + static int i915_master_bind(struct device *dev, +- struct drm_audio_component *acomp) ++ struct i915_audio_component *acomp) + { + complete_all(&bind_complete); + /* clear audio_ops here as it was needed only for completion call */ +@@ -108,8 +108,8 @@ static int i915_master_bind(struct devic + return 0; + } + +-static const struct drm_audio_component_audio_ops i915_init_ops = { +- .master_bind = i915_master_bind ++static const struct i915_audio_component_audio_ops i915_init_ops = { ++ /* .master_bind = i915_master_bind */ + }; + + /** +@@ -126,7 +126,7 @@ static const struct drm_audio_component_ + */ + int snd_hdac_i915_init(struct hdac_bus *bus) + { +- struct drm_audio_component *acomp; ++ struct i915_audio_component *acomp; + int err; + + if (!i915_gfx_present()) +Index: oem-audio-hda-daily-0.1/include/hda_component.h +=================================================================== +--- oem-audio-hda-daily-0.1.orig/include/hda_component.h ++++ oem-audio-hda-daily-0.1/include/hda_component.h +@@ -4,7 +4,7 @@ + #ifndef __SOUND_HDA_COMPONENT_H + #define __SOUND_HDA_COMPONENT_H + +-#include ++#include + + #ifdef CONFIG_SND_HDA_COMPONENT + int snd_hdac_set_codec_wakeup(struct hdac_bus *bus, bool enable); +@@ -14,12 +14,12 @@ int snd_hdac_sync_audio_rate(struct hdac + int snd_hdac_acomp_get_eld(struct hdac_device *codec, hda_nid_t nid, int dev_id, + bool *audio_enabled, char *buffer, int max_bytes); + int snd_hdac_acomp_init(struct hdac_bus *bus, +- const struct drm_audio_component_audio_ops *aops, ++ const struct i915_audio_component_audio_ops *aops, + int (*match_master)(struct device *, void *), + size_t extra_size); + int snd_hdac_acomp_exit(struct hdac_bus *bus); + int snd_hdac_acomp_register_notifier(struct hdac_bus *bus, +- const struct drm_audio_component_audio_ops *ops); ++ const struct i915_audio_component_audio_ops *ops); + #else + static inline int snd_hdac_set_codec_wakeup(struct hdac_bus *bus, bool enable) + { +@@ -41,7 +41,7 @@ static inline int snd_hdac_acomp_get_eld + return -ENODEV; + } + static inline int snd_hdac_acomp_init(struct hdac_bus *bus, +- const struct drm_audio_component_audio_ops *aops, ++ const struct i915_audio_component_audio_ops *aops, + int (*match_master)(struct device *, void *), + size_t extra_size) + { +@@ -52,7 +52,7 @@ static inline int snd_hdac_acomp_exit(st + return 0; + } + static inline int snd_hdac_acomp_register_notifier(struct hdac_bus *bus, +- const struct drm_audio_component_audio_ops *ops) ++ const struct i915_audio_component_audio_ops *ops) + { + return -ENODEV; + } +Index: oem-audio-hda-daily-0.1/include/hdaudio.h +=================================================================== +--- oem-audio-hda-daily-0.1.orig/include/hdaudio.h ++++ oem-audio-hda-daily-0.1/include/hdaudio.h +@@ -362,8 +362,8 @@ struct hdac_bus { + struct mutex cmd_mutex; + + /* DRM component interface */ +- struct drm_audio_component *audio_component; +- int drm_power_refcount; ++ struct i915_audio_component *audio_component; ++ int i915_power_refcount; + + /* parameters required for enhanced capabilities */ + int num_streams; +Index: oem-audio-hda-daily-0.1/patch_hdmi.c +=================================================================== +--- oem-audio-hda-daily-0.1.orig/patch_hdmi.c ++++ oem-audio-hda-daily-0.1/patch_hdmi.c +@@ -177,7 +177,7 @@ struct hdmi_spec { + + /* i915/powerwell (Haswell+/Valleyview+) specific */ + bool use_acomp_notifier; /* use i915 eld_notify callback for hotplug */ +- struct drm_audio_component_audio_ops drm_audio_ops; ++ struct i915_audio_component_audio_ops i915_audio_ops; + + struct hdac_chmap chmap; + hda_nid_t vendor_nid; +@@ -2533,16 +2533,16 @@ static void register_i915_notifier(struc + struct hdmi_spec *spec = codec->spec; + + spec->use_acomp_notifier = true; +- spec->drm_audio_ops.audio_ptr = codec; ++ spec->i915_audio_ops.audio_ptr = codec; + /* intel_audio_codec_enable() or intel_audio_codec_disable() + * will call pin_eld_notify with using audio_ptr pointer + * We need make sure audio_ptr is really setup + */ + wmb(); +- spec->drm_audio_ops.pin2port = intel_pin2port; +- spec->drm_audio_ops.pin_eld_notify = intel_pin_eld_notify; ++ /* spec->i915_audio_ops.pin2port = intel_pin2port; */ ++ spec->i915_audio_ops.pin_eld_notify = intel_pin_eld_notify; + snd_hdac_acomp_register_notifier(&codec->bus->core, +- &spec->drm_audio_ops); ++ &spec->i915_audio_ops); + } + + /* setup_stream ops override for HSW+ */ diff -Nru oem-audio-hda-daily-dkms-0.201808040308~ubuntu18.04.1/patches-yakkety/remove_hdacore_ext.patch oem-audio-hda-daily-dkms-0.201808050301~ubuntu18.04.1/patches-yakkety/remove_hdacore_ext.patch --- oem-audio-hda-daily-dkms-0.201808040308~ubuntu18.04.1/patches-yakkety/remove_hdacore_ext.patch 1970-01-01 00:00:00.000000000 +0000 +++ oem-audio-hda-daily-dkms-0.201808050301~ubuntu18.04.1/patches-yakkety/remove_hdacore_ext.patch 2018-08-05 03:01:15.000000000 +0000 @@ -0,0 +1,10 @@ +Index: oem-audio-hda-daily-0.1/hdacore/Makefile +=================================================================== +--- oem-audio-hda-daily-0.1.orig/hdacore/Makefile ++++ oem-audio-hda-daily-0.1/hdacore/Makefile +@@ -12,4 +12,4 @@ snd-hda-core-$(CONFIG_SND_HDA_I915) += h + obj-$(CONFIG_SND_HDA_CORE) += snd-hda-core.o + + #extended hda +-obj-$(CONFIG_SND_HDA_EXT_CORE) += ext/ ++#obj-$(CONFIG_SND_HDA_EXT_CORE) += ext/ diff -Nru oem-audio-hda-daily-dkms-0.201808040308~ubuntu18.04.1/patches-yakkety/series oem-audio-hda-daily-dkms-0.201808050301~ubuntu18.04.1/patches-yakkety/series --- oem-audio-hda-daily-dkms-0.201808040308~ubuntu18.04.1/patches-yakkety/series 2018-08-04 03:09:00.000000000 +0000 +++ oem-audio-hda-daily-dkms-0.201808050301~ubuntu18.04.1/patches-yakkety/series 2018-08-05 03:01:15.000000000 +0000 @@ -8,3 +8,6 @@ restore-dell-led-wmi-helper.patch add_PCI_CLASS_MULTIMEDIA_HD_AUDIO.patch fix_nospec_header.patch +drm_audio_component.patch +vga_switchroo.patch +remove_hdacore_ext.patch diff -Nru oem-audio-hda-daily-dkms-0.201808040308~ubuntu18.04.1/patches-yakkety/vga_switchroo.patch oem-audio-hda-daily-dkms-0.201808050301~ubuntu18.04.1/patches-yakkety/vga_switchroo.patch --- oem-audio-hda-daily-dkms-0.201808040308~ubuntu18.04.1/patches-yakkety/vga_switchroo.patch 1970-01-01 00:00:00.000000000 +0000 +++ oem-audio-hda-daily-dkms-0.201808050301~ubuntu18.04.1/patches-yakkety/vga_switchroo.patch 2018-08-05 03:01:15.000000000 +0000 @@ -0,0 +1,13 @@ +Index: oem-audio-hda-daily-0.1/hda_intel.c +=================================================================== +--- oem-audio-hda-daily-0.1.orig/hda_intel.c ++++ oem-audio-hda-daily-0.1/hda_intel.c +@@ -1328,7 +1328,7 @@ static int register_vga_switcheroo(struc + return 0; + + p = get_bound_vga(chip->pci); +- err = vga_switcheroo_register_audio_client(chip->pci, &azx_vs_ops, p); ++ err = vga_switcheroo_register_audio_client(chip->pci, &azx_vs_ops, VGA_SWITCHEROO_DIS); + pci_dev_put(p); + + if (err < 0) diff -Nru oem-audio-hda-daily-dkms-0.201808040308~ubuntu18.04.1/patches-zesty/drm_audio_component.patch oem-audio-hda-daily-dkms-0.201808050301~ubuntu18.04.1/patches-zesty/drm_audio_component.patch --- oem-audio-hda-daily-dkms-0.201808040308~ubuntu18.04.1/patches-zesty/drm_audio_component.patch 1970-01-01 00:00:00.000000000 +0000 +++ oem-audio-hda-daily-dkms-0.201808050301~ubuntu18.04.1/patches-zesty/drm_audio_component.patch 2018-08-05 03:01:15.000000000 +0000 @@ -0,0 +1,265 @@ +Index: oem-audio-hda-daily-0.1/hdacore/hdac_component.c +=================================================================== +--- oem-audio-hda-daily-0.1.orig/hdacore/hdac_component.c ++++ oem-audio-hda-daily-0.1/hdacore/hdac_component.c +@@ -14,7 +14,7 @@ static void hdac_acomp_release(struct de + { + } + +-static struct drm_audio_component *hdac_get_acomp(struct device *dev) ++static struct i915_audio_component *hdac_get_acomp(struct device *dev) + { + return devres_find(dev, hdac_acomp_release, NULL, NULL); + } +@@ -34,7 +34,7 @@ static struct drm_audio_component *hdac_ + */ + int snd_hdac_set_codec_wakeup(struct hdac_bus *bus, bool enable) + { +- struct drm_audio_component *acomp = bus->audio_component; ++ struct i915_audio_component *acomp = bus->audio_component; + + if (!acomp || !acomp->ops) + return -ENODEV; +@@ -66,7 +66,7 @@ EXPORT_SYMBOL_GPL(snd_hdac_set_codec_wak + */ + int snd_hdac_display_power(struct hdac_bus *bus, bool enable) + { +- struct drm_audio_component *acomp = bus->audio_component; ++ struct i915_audio_component *acomp = bus->audio_component; + + if (!acomp || !acomp->ops) + return -ENODEV; +@@ -75,15 +75,15 @@ int snd_hdac_display_power(struct hdac_b + enable ? "enable" : "disable"); + + if (enable) { +- if (!bus->drm_power_refcount++) { ++ if (!bus->i915_power_refcount++) { + if (acomp->ops->get_power) + acomp->ops->get_power(acomp->dev); + snd_hdac_set_codec_wakeup(bus, true); + snd_hdac_set_codec_wakeup(bus, false); + } + } else { +- WARN_ON(!bus->drm_power_refcount); +- if (!--bus->drm_power_refcount) ++ WARN_ON(!bus->i915_power_refcount); ++ if (!--bus->i915_power_refcount) + if (acomp->ops->put_power) + acomp->ops->put_power(acomp->dev); + } +@@ -109,7 +109,7 @@ int snd_hdac_sync_audio_rate(struct hdac + int dev_id, int rate) + { + struct hdac_bus *bus = codec->bus; +- struct drm_audio_component *acomp = bus->audio_component; ++ struct i915_audio_component *acomp = bus->audio_component; + int port, pipe; + + if (!acomp || !acomp->ops || !acomp->ops->sync_audio_rate) +@@ -150,7 +150,7 @@ int snd_hdac_acomp_get_eld(struct hdac_d + bool *audio_enabled, char *buffer, int max_bytes) + { + struct hdac_bus *bus = codec->bus; +- struct drm_audio_component *acomp = bus->audio_component; ++ struct i915_audio_component *acomp = bus->audio_component; + int port, pipe; + + if (!acomp || !acomp->ops || !acomp->ops->get_eld) +@@ -170,7 +170,7 @@ EXPORT_SYMBOL_GPL(snd_hdac_acomp_get_eld + + static int hdac_component_master_bind(struct device *dev) + { +- struct drm_audio_component *acomp = hdac_get_acomp(dev); ++ struct i915_audio_component *acomp = hdac_get_acomp(dev); + int ret; + + if (WARN_ON(!acomp)) +@@ -209,7 +209,7 @@ out_unbind: + + static void hdac_component_master_unbind(struct device *dev) + { +- struct drm_audio_component *acomp = hdac_get_acomp(dev); ++ struct i915_audio_component *acomp = hdac_get_acomp(dev); + + if (acomp->audio_ops && acomp->audio_ops->master_unbind) + acomp->audio_ops->master_unbind(dev, acomp); +@@ -236,7 +236,7 @@ static const struct component_master_ops + * Returns zero for success or a negative error code. + */ + int snd_hdac_acomp_register_notifier(struct hdac_bus *bus, +- const struct drm_audio_component_audio_ops *aops) ++ const struct i915_audio_component_audio_ops *aops) + { + if (!bus->audio_component) + return -ENODEV; +@@ -265,13 +265,13 @@ EXPORT_SYMBOL_GPL(snd_hdac_acomp_registe + * Returns zero for success or a negative error code. + */ + int snd_hdac_acomp_init(struct hdac_bus *bus, +- const struct drm_audio_component_audio_ops *aops, ++ const struct i915_audio_component_audio_ops *aops, + int (*match_master)(struct device *, void *), + size_t extra_size) + { + struct component_match *match = NULL; + struct device *dev = bus->dev; +- struct drm_audio_component *acomp; ++ struct i915_audio_component *acomp; + int ret; + + if (WARN_ON(hdac_get_acomp(dev))) +@@ -316,13 +316,13 @@ EXPORT_SYMBOL_GPL(snd_hdac_acomp_init); + int snd_hdac_acomp_exit(struct hdac_bus *bus) + { + struct device *dev = bus->dev; +- struct drm_audio_component *acomp = bus->audio_component; ++ struct i915_audio_component *acomp = bus->audio_component; + + if (!acomp) + return 0; + +- WARN_ON(bus->drm_power_refcount); +- if (bus->drm_power_refcount > 0 && acomp->ops) ++ WARN_ON(bus->i915_power_refcount); ++ if (bus->i915_power_refcount > 0 && acomp->ops) + acomp->ops->put_power(acomp->dev); + + component_master_del(dev, &hdac_component_master_ops); +Index: oem-audio-hda-daily-0.1/hdacore/hdac_i915.c +=================================================================== +--- oem-audio-hda-daily-0.1.orig/hdacore/hdac_i915.c ++++ oem-audio-hda-daily-0.1/hdacore/hdac_i915.c +@@ -43,7 +43,7 @@ static struct completion bind_complete; + */ + void snd_hdac_i915_set_bclk(struct hdac_bus *bus) + { +- struct drm_audio_component *acomp = bus->audio_component; ++ struct i915_audio_component *acomp = bus->audio_component; + struct pci_dev *pci = to_pci_dev(bus->dev); + int cdclk_freq; + unsigned int bclk_m, bclk_n; +@@ -100,7 +100,7 @@ static bool i915_gfx_present(void) + } + + static int i915_master_bind(struct device *dev, +- struct drm_audio_component *acomp) ++ struct i915_audio_component *acomp) + { + complete_all(&bind_complete); + /* clear audio_ops here as it was needed only for completion call */ +@@ -108,8 +108,8 @@ static int i915_master_bind(struct devic + return 0; + } + +-static const struct drm_audio_component_audio_ops i915_init_ops = { +- .master_bind = i915_master_bind ++static const struct i915_audio_component_audio_ops i915_init_ops = { ++ /* .master_bind = i915_master_bind */ + }; + + /** +@@ -126,7 +126,7 @@ static const struct drm_audio_component_ + */ + int snd_hdac_i915_init(struct hdac_bus *bus) + { +- struct drm_audio_component *acomp; ++ struct i915_audio_component *acomp; + int err; + + if (!i915_gfx_present()) +Index: oem-audio-hda-daily-0.1/include/hda_component.h +=================================================================== +--- oem-audio-hda-daily-0.1.orig/include/hda_component.h ++++ oem-audio-hda-daily-0.1/include/hda_component.h +@@ -4,7 +4,7 @@ + #ifndef __SOUND_HDA_COMPONENT_H + #define __SOUND_HDA_COMPONENT_H + +-#include ++#include + + #ifdef CONFIG_SND_HDA_COMPONENT + int snd_hdac_set_codec_wakeup(struct hdac_bus *bus, bool enable); +@@ -14,12 +14,12 @@ int snd_hdac_sync_audio_rate(struct hdac + int snd_hdac_acomp_get_eld(struct hdac_device *codec, hda_nid_t nid, int dev_id, + bool *audio_enabled, char *buffer, int max_bytes); + int snd_hdac_acomp_init(struct hdac_bus *bus, +- const struct drm_audio_component_audio_ops *aops, ++ const struct i915_audio_component_audio_ops *aops, + int (*match_master)(struct device *, void *), + size_t extra_size); + int snd_hdac_acomp_exit(struct hdac_bus *bus); + int snd_hdac_acomp_register_notifier(struct hdac_bus *bus, +- const struct drm_audio_component_audio_ops *ops); ++ const struct i915_audio_component_audio_ops *ops); + #else + static inline int snd_hdac_set_codec_wakeup(struct hdac_bus *bus, bool enable) + { +@@ -41,7 +41,7 @@ static inline int snd_hdac_acomp_get_eld + return -ENODEV; + } + static inline int snd_hdac_acomp_init(struct hdac_bus *bus, +- const struct drm_audio_component_audio_ops *aops, ++ const struct i915_audio_component_audio_ops *aops, + int (*match_master)(struct device *, void *), + size_t extra_size) + { +@@ -52,7 +52,7 @@ static inline int snd_hdac_acomp_exit(st + return 0; + } + static inline int snd_hdac_acomp_register_notifier(struct hdac_bus *bus, +- const struct drm_audio_component_audio_ops *ops) ++ const struct i915_audio_component_audio_ops *ops) + { + return -ENODEV; + } +Index: oem-audio-hda-daily-0.1/include/hdaudio.h +=================================================================== +--- oem-audio-hda-daily-0.1.orig/include/hdaudio.h ++++ oem-audio-hda-daily-0.1/include/hdaudio.h +@@ -362,8 +362,8 @@ struct hdac_bus { + struct mutex cmd_mutex; + + /* DRM component interface */ +- struct drm_audio_component *audio_component; +- int drm_power_refcount; ++ struct i915_audio_component *audio_component; ++ int i915_power_refcount; + + /* parameters required for enhanced capabilities */ + int num_streams; +Index: oem-audio-hda-daily-0.1/patch_hdmi.c +=================================================================== +--- oem-audio-hda-daily-0.1.orig/patch_hdmi.c ++++ oem-audio-hda-daily-0.1/patch_hdmi.c +@@ -177,7 +177,7 @@ struct hdmi_spec { + + /* i915/powerwell (Haswell+/Valleyview+) specific */ + bool use_acomp_notifier; /* use i915 eld_notify callback for hotplug */ +- struct drm_audio_component_audio_ops drm_audio_ops; ++ struct i915_audio_component_audio_ops i915_audio_ops; + + struct hdac_chmap chmap; + hda_nid_t vendor_nid; +@@ -2533,16 +2533,16 @@ static void register_i915_notifier(struc + struct hdmi_spec *spec = codec->spec; + + spec->use_acomp_notifier = true; +- spec->drm_audio_ops.audio_ptr = codec; ++ spec->i915_audio_ops.audio_ptr = codec; + /* intel_audio_codec_enable() or intel_audio_codec_disable() + * will call pin_eld_notify with using audio_ptr pointer + * We need make sure audio_ptr is really setup + */ + wmb(); +- spec->drm_audio_ops.pin2port = intel_pin2port; +- spec->drm_audio_ops.pin_eld_notify = intel_pin_eld_notify; ++ /* spec->i915_audio_ops.pin2port = intel_pin2port; */ ++ spec->i915_audio_ops.pin_eld_notify = intel_pin_eld_notify; + snd_hdac_acomp_register_notifier(&codec->bus->core, +- &spec->drm_audio_ops); ++ &spec->i915_audio_ops); + } + + /* setup_stream ops override for HSW+ */ diff -Nru oem-audio-hda-daily-dkms-0.201808040308~ubuntu18.04.1/patches-zesty/remove_hdacore_ext.patch oem-audio-hda-daily-dkms-0.201808050301~ubuntu18.04.1/patches-zesty/remove_hdacore_ext.patch --- oem-audio-hda-daily-dkms-0.201808040308~ubuntu18.04.1/patches-zesty/remove_hdacore_ext.patch 1970-01-01 00:00:00.000000000 +0000 +++ oem-audio-hda-daily-dkms-0.201808050301~ubuntu18.04.1/patches-zesty/remove_hdacore_ext.patch 2018-08-05 03:01:15.000000000 +0000 @@ -0,0 +1,10 @@ +Index: oem-audio-hda-daily-0.1/hdacore/Makefile +=================================================================== +--- oem-audio-hda-daily-0.1.orig/hdacore/Makefile ++++ oem-audio-hda-daily-0.1/hdacore/Makefile +@@ -12,4 +12,4 @@ snd-hda-core-$(CONFIG_SND_HDA_I915) += h + obj-$(CONFIG_SND_HDA_CORE) += snd-hda-core.o + + #extended hda +-obj-$(CONFIG_SND_HDA_EXT_CORE) += ext/ ++#obj-$(CONFIG_SND_HDA_EXT_CORE) += ext/ diff -Nru oem-audio-hda-daily-dkms-0.201808040308~ubuntu18.04.1/patches-zesty/series oem-audio-hda-daily-dkms-0.201808050301~ubuntu18.04.1/patches-zesty/series --- oem-audio-hda-daily-dkms-0.201808040308~ubuntu18.04.1/patches-zesty/series 2018-08-04 03:09:00.000000000 +0000 +++ oem-audio-hda-daily-dkms-0.201808050301~ubuntu18.04.1/patches-zesty/series 2018-08-05 03:01:15.000000000 +0000 @@ -6,3 +6,6 @@ restore-dell-led-wmi-helper.patch add_PCI_CLASS_MULTIMEDIA_HD_AUDIO.patch fix_nospec_header.patch +drm_audio_component.patch +vga_switchroo.patch +remove_hdacore_ext.patch diff -Nru oem-audio-hda-daily-dkms-0.201808040308~ubuntu18.04.1/patches-zesty/vga_switchroo.patch oem-audio-hda-daily-dkms-0.201808050301~ubuntu18.04.1/patches-zesty/vga_switchroo.patch --- oem-audio-hda-daily-dkms-0.201808040308~ubuntu18.04.1/patches-zesty/vga_switchroo.patch 1970-01-01 00:00:00.000000000 +0000 +++ oem-audio-hda-daily-dkms-0.201808050301~ubuntu18.04.1/patches-zesty/vga_switchroo.patch 2018-08-05 03:01:15.000000000 +0000 @@ -0,0 +1,13 @@ +Index: oem-audio-hda-daily-0.1/hda_intel.c +=================================================================== +--- oem-audio-hda-daily-0.1.orig/hda_intel.c ++++ oem-audio-hda-daily-0.1/hda_intel.c +@@ -1328,7 +1328,7 @@ static int register_vga_switcheroo(struc + return 0; + + p = get_bound_vga(chip->pci); +- err = vga_switcheroo_register_audio_client(chip->pci, &azx_vs_ops, p); ++ err = vga_switcheroo_register_audio_client(chip->pci, &azx_vs_ops, VGA_SWITCHEROO_DIS); + pci_dev_put(p); + + if (err < 0)