Loading include/sound/hdaudio.h +1 −0 Original line number Diff line number Diff line Loading @@ -412,6 +412,7 @@ void snd_hdac_bus_init_cmd_io(struct hdac_bus *bus); void snd_hdac_bus_stop_cmd_io(struct hdac_bus *bus); void snd_hdac_bus_enter_link_reset(struct hdac_bus *bus); void snd_hdac_bus_exit_link_reset(struct hdac_bus *bus); int snd_hdac_bus_reset_link(struct hdac_bus *bus, bool full_reset); void snd_hdac_bus_update_rirb(struct hdac_bus *bus); int snd_hdac_bus_handle_stream_irq(struct hdac_bus *bus, unsigned int status, Loading sound/hda/hdac_controller.c +10 −5 Original line number Diff line number Diff line Loading @@ -40,6 +40,8 @@ static void azx_clear_corbrp(struct hdac_bus *bus) */ void snd_hdac_bus_init_cmd_io(struct hdac_bus *bus) { WARN_ON_ONCE(!bus->rb.area); spin_lock_irq(&bus->reg_lock); /* CORB set up */ bus->corb.addr = bus->rb.addr; Loading Loading @@ -383,7 +385,7 @@ void snd_hdac_bus_exit_link_reset(struct hdac_bus *bus) EXPORT_SYMBOL_GPL(snd_hdac_bus_exit_link_reset); /* reset codec link */ static int azx_reset(struct hdac_bus *bus, bool full_reset) int snd_hdac_bus_reset_link(struct hdac_bus *bus, bool full_reset) { if (!full_reset) goto skip_reset; Loading @@ -408,7 +410,7 @@ static int azx_reset(struct hdac_bus *bus, bool full_reset) skip_reset: /* check to see if controller is ready */ if (!snd_hdac_chip_readb(bus, GCTL)) { dev_dbg(bus->dev, "azx_reset: controller not ready!\n"); dev_dbg(bus->dev, "controller not ready!\n"); return -EBUSY; } Loading @@ -423,6 +425,7 @@ static int azx_reset(struct hdac_bus *bus, bool full_reset) return 0; } EXPORT_SYMBOL_GPL(snd_hdac_bus_reset_link); /* enable interrupts */ static void azx_int_enable(struct hdac_bus *bus) Loading Loading @@ -477,15 +480,17 @@ bool snd_hdac_bus_init_chip(struct hdac_bus *bus, bool full_reset) return false; /* reset controller */ azx_reset(bus, full_reset); snd_hdac_bus_reset_link(bus, full_reset); /* initialize interrupts */ /* clear interrupts */ azx_int_clear(bus); azx_int_enable(bus); /* initialize the codec command I/O */ snd_hdac_bus_init_cmd_io(bus); /* enable interrupts after CORB/RIRB buffers are initialized above */ azx_int_enable(bus); /* program the position buffer */ if (bus->use_posbuf && bus->posbuf.addr) { snd_hdac_chip_writel(bus, DPLBASE, (u32)bus->posbuf.addr); Loading sound/soc/codecs/rt5514-spi.c +8 −6 Original line number Diff line number Diff line Loading @@ -91,6 +91,14 @@ static void rt5514_spi_copy_work(struct work_struct *work) runtime = rt5514_dsp->substream->runtime; period_bytes = snd_pcm_lib_period_bytes(rt5514_dsp->substream); if (!period_bytes) { schedule_delayed_work(&rt5514_dsp->copy_work, 5); goto done; } if (rt5514_dsp->buf_size % period_bytes) rt5514_dsp->buf_size = (rt5514_dsp->buf_size / period_bytes) * period_bytes; if (rt5514_dsp->get_size >= rt5514_dsp->buf_size) { rt5514_spi_burst_read(RT5514_BUFFER_VOICE_WP, (u8 *)&buf, Loading Loading @@ -149,13 +157,11 @@ static void rt5514_spi_copy_work(struct work_struct *work) static void rt5514_schedule_copy(struct rt5514_dsp *rt5514_dsp) { size_t period_bytes; u8 buf[8]; if (!rt5514_dsp->substream) return; period_bytes = snd_pcm_lib_period_bytes(rt5514_dsp->substream); rt5514_dsp->get_size = 0; /** Loading Loading @@ -183,10 +189,6 @@ static void rt5514_schedule_copy(struct rt5514_dsp *rt5514_dsp) rt5514_dsp->buf_size = rt5514_dsp->buf_limit - rt5514_dsp->buf_base; if (rt5514_dsp->buf_size % period_bytes) rt5514_dsp->buf_size = (rt5514_dsp->buf_size / period_bytes) * period_bytes; if (rt5514_dsp->buf_base && rt5514_dsp->buf_limit && rt5514_dsp->buf_rp && rt5514_dsp->buf_size) schedule_delayed_work(&rt5514_dsp->copy_work, 0); Loading sound/soc/codecs/rt5682.c +0 −5 Original line number Diff line number Diff line Loading @@ -749,7 +749,6 @@ static bool rt5682_readable_register(struct device *dev, unsigned int reg) } } static const DECLARE_TLV_DB_SCALE(hp_vol_tlv, -2250, 150, 0); static const DECLARE_TLV_DB_SCALE(dac_vol_tlv, -6525, 75, 0); static const DECLARE_TLV_DB_SCALE(adc_vol_tlv, -1725, 75, 0); static const DECLARE_TLV_DB_SCALE(adc_bst_tlv, 0, 1200, 0); Loading Loading @@ -1108,10 +1107,6 @@ static void rt5682_jack_detect_handler(struct work_struct *work) } static const struct snd_kcontrol_new rt5682_snd_controls[] = { /* Headphone Output Volume */ SOC_DOUBLE_R_TLV("Headphone Playback Volume", RT5682_HPL_GAIN, RT5682_HPR_GAIN, RT5682_G_HP_SFT, 15, 1, hp_vol_tlv), /* DAC Digital Volume */ SOC_DOUBLE_TLV("DAC1 Playback Volume", RT5682_DAC1_DIG_VOL, RT5682_L_VOL_SFT + 1, RT5682_R_VOL_SFT + 1, 86, 0, dac_vol_tlv), Loading sound/soc/intel/skylake/skl.c +5 −7 Original line number Diff line number Diff line Loading @@ -908,11 +908,15 @@ static int skl_first_init(struct hdac_bus *bus) return -ENXIO; } skl_init_chip(bus, true); snd_hdac_bus_reset_link(bus, true); snd_hdac_bus_parse_capabilities(bus); if (skl_acquire_irq(bus, 0) < 0) return -EBUSY; pci_set_master(pci); synchronize_irq(bus->irq); gcap = snd_hdac_chip_readw(bus, GCAP); dev_dbg(bus->dev, "chipset global capabilities = 0x%x\n", gcap); Loading Loading @@ -945,12 +949,6 @@ static int skl_first_init(struct hdac_bus *bus) if (err < 0) return err; err = skl_acquire_irq(bus, 0); if (err < 0) return err; synchronize_irq(bus->irq); /* initialize chip */ skl_init_pci(skl); Loading Loading
include/sound/hdaudio.h +1 −0 Original line number Diff line number Diff line Loading @@ -412,6 +412,7 @@ void snd_hdac_bus_init_cmd_io(struct hdac_bus *bus); void snd_hdac_bus_stop_cmd_io(struct hdac_bus *bus); void snd_hdac_bus_enter_link_reset(struct hdac_bus *bus); void snd_hdac_bus_exit_link_reset(struct hdac_bus *bus); int snd_hdac_bus_reset_link(struct hdac_bus *bus, bool full_reset); void snd_hdac_bus_update_rirb(struct hdac_bus *bus); int snd_hdac_bus_handle_stream_irq(struct hdac_bus *bus, unsigned int status, Loading
sound/hda/hdac_controller.c +10 −5 Original line number Diff line number Diff line Loading @@ -40,6 +40,8 @@ static void azx_clear_corbrp(struct hdac_bus *bus) */ void snd_hdac_bus_init_cmd_io(struct hdac_bus *bus) { WARN_ON_ONCE(!bus->rb.area); spin_lock_irq(&bus->reg_lock); /* CORB set up */ bus->corb.addr = bus->rb.addr; Loading Loading @@ -383,7 +385,7 @@ void snd_hdac_bus_exit_link_reset(struct hdac_bus *bus) EXPORT_SYMBOL_GPL(snd_hdac_bus_exit_link_reset); /* reset codec link */ static int azx_reset(struct hdac_bus *bus, bool full_reset) int snd_hdac_bus_reset_link(struct hdac_bus *bus, bool full_reset) { if (!full_reset) goto skip_reset; Loading @@ -408,7 +410,7 @@ static int azx_reset(struct hdac_bus *bus, bool full_reset) skip_reset: /* check to see if controller is ready */ if (!snd_hdac_chip_readb(bus, GCTL)) { dev_dbg(bus->dev, "azx_reset: controller not ready!\n"); dev_dbg(bus->dev, "controller not ready!\n"); return -EBUSY; } Loading @@ -423,6 +425,7 @@ static int azx_reset(struct hdac_bus *bus, bool full_reset) return 0; } EXPORT_SYMBOL_GPL(snd_hdac_bus_reset_link); /* enable interrupts */ static void azx_int_enable(struct hdac_bus *bus) Loading Loading @@ -477,15 +480,17 @@ bool snd_hdac_bus_init_chip(struct hdac_bus *bus, bool full_reset) return false; /* reset controller */ azx_reset(bus, full_reset); snd_hdac_bus_reset_link(bus, full_reset); /* initialize interrupts */ /* clear interrupts */ azx_int_clear(bus); azx_int_enable(bus); /* initialize the codec command I/O */ snd_hdac_bus_init_cmd_io(bus); /* enable interrupts after CORB/RIRB buffers are initialized above */ azx_int_enable(bus); /* program the position buffer */ if (bus->use_posbuf && bus->posbuf.addr) { snd_hdac_chip_writel(bus, DPLBASE, (u32)bus->posbuf.addr); Loading
sound/soc/codecs/rt5514-spi.c +8 −6 Original line number Diff line number Diff line Loading @@ -91,6 +91,14 @@ static void rt5514_spi_copy_work(struct work_struct *work) runtime = rt5514_dsp->substream->runtime; period_bytes = snd_pcm_lib_period_bytes(rt5514_dsp->substream); if (!period_bytes) { schedule_delayed_work(&rt5514_dsp->copy_work, 5); goto done; } if (rt5514_dsp->buf_size % period_bytes) rt5514_dsp->buf_size = (rt5514_dsp->buf_size / period_bytes) * period_bytes; if (rt5514_dsp->get_size >= rt5514_dsp->buf_size) { rt5514_spi_burst_read(RT5514_BUFFER_VOICE_WP, (u8 *)&buf, Loading Loading @@ -149,13 +157,11 @@ static void rt5514_spi_copy_work(struct work_struct *work) static void rt5514_schedule_copy(struct rt5514_dsp *rt5514_dsp) { size_t period_bytes; u8 buf[8]; if (!rt5514_dsp->substream) return; period_bytes = snd_pcm_lib_period_bytes(rt5514_dsp->substream); rt5514_dsp->get_size = 0; /** Loading Loading @@ -183,10 +189,6 @@ static void rt5514_schedule_copy(struct rt5514_dsp *rt5514_dsp) rt5514_dsp->buf_size = rt5514_dsp->buf_limit - rt5514_dsp->buf_base; if (rt5514_dsp->buf_size % period_bytes) rt5514_dsp->buf_size = (rt5514_dsp->buf_size / period_bytes) * period_bytes; if (rt5514_dsp->buf_base && rt5514_dsp->buf_limit && rt5514_dsp->buf_rp && rt5514_dsp->buf_size) schedule_delayed_work(&rt5514_dsp->copy_work, 0); Loading
sound/soc/codecs/rt5682.c +0 −5 Original line number Diff line number Diff line Loading @@ -749,7 +749,6 @@ static bool rt5682_readable_register(struct device *dev, unsigned int reg) } } static const DECLARE_TLV_DB_SCALE(hp_vol_tlv, -2250, 150, 0); static const DECLARE_TLV_DB_SCALE(dac_vol_tlv, -6525, 75, 0); static const DECLARE_TLV_DB_SCALE(adc_vol_tlv, -1725, 75, 0); static const DECLARE_TLV_DB_SCALE(adc_bst_tlv, 0, 1200, 0); Loading Loading @@ -1108,10 +1107,6 @@ static void rt5682_jack_detect_handler(struct work_struct *work) } static const struct snd_kcontrol_new rt5682_snd_controls[] = { /* Headphone Output Volume */ SOC_DOUBLE_R_TLV("Headphone Playback Volume", RT5682_HPL_GAIN, RT5682_HPR_GAIN, RT5682_G_HP_SFT, 15, 1, hp_vol_tlv), /* DAC Digital Volume */ SOC_DOUBLE_TLV("DAC1 Playback Volume", RT5682_DAC1_DIG_VOL, RT5682_L_VOL_SFT + 1, RT5682_R_VOL_SFT + 1, 86, 0, dac_vol_tlv), Loading
sound/soc/intel/skylake/skl.c +5 −7 Original line number Diff line number Diff line Loading @@ -908,11 +908,15 @@ static int skl_first_init(struct hdac_bus *bus) return -ENXIO; } skl_init_chip(bus, true); snd_hdac_bus_reset_link(bus, true); snd_hdac_bus_parse_capabilities(bus); if (skl_acquire_irq(bus, 0) < 0) return -EBUSY; pci_set_master(pci); synchronize_irq(bus->irq); gcap = snd_hdac_chip_readw(bus, GCAP); dev_dbg(bus->dev, "chipset global capabilities = 0x%x\n", gcap); Loading Loading @@ -945,12 +949,6 @@ static int skl_first_init(struct hdac_bus *bus) if (err < 0) return err; err = skl_acquire_irq(bus, 0); if (err < 0) return err; synchronize_irq(bus->irq); /* initialize chip */ skl_init_pci(skl); Loading