ALSA: hda - Clean up jackpoll_ms option handling
authorTakashi Iwai <tiwai@suse.de>
Thu, 30 Aug 2018 05:58:50 +0000 (07:58 +0200)
committerTakashi Iwai <tiwai@suse.de>
Thu, 30 Aug 2018 06:05:58 +0000 (08:05 +0200)
Currently the jackpoll_ms option value is passed indirectly by
referring to an array in chip->jackpoll_ms although each card needs to
see only the assigned value.  Also, the sanity check is done at each
time in get_jackpoll_interval() although basically jackpoll_ms option
is a read-only, hence we need to evaluate only once at probe time.

This patch is the code simplification about the above points: the jack
polling interval is directly set to chip->jackpoll_interval so that it
can be simply copied to each codec.

No functional change but only code reduction.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/hda_controller.c
sound/pci/hda/hda_controller.h
sound/pci/hda/hda_intel.c

index 53bdf76..fe25066 100644 (file)
@@ -1223,27 +1223,6 @@ void snd_hda_bus_reset(struct hda_bus *bus)
        bus->in_reset = 0;
 }
 
-static int get_jackpoll_interval(struct azx *chip)
-{
-       int i;
-       unsigned int j;
-
-       if (!chip->jackpoll_ms)
-               return 0;
-
-       i = chip->jackpoll_ms[chip->dev_index];
-       if (i == 0)
-               return 0;
-       if (i < 50 || i > 60000)
-               j = 0;
-       else
-               j = msecs_to_jiffies(i);
-       if (j == 0)
-               dev_warn(chip->card->dev,
-                        "jackpoll_ms value out of range: %d\n", i);
-       return j;
-}
-
 /* HD-audio bus initialization */
 int azx_bus_init(struct azx *chip, const char *model,
                 const struct hdac_io_ops *io_ops)
@@ -1326,7 +1305,7 @@ int azx_probe_codecs(struct azx *chip, unsigned int max_slots)
                        err = snd_hda_codec_new(&chip->bus, chip->card, c, &codec);
                        if (err < 0)
                                continue;
-                       codec->jackpoll_interval = get_jackpoll_interval(chip);
+                       codec->jackpoll_interval = chip->jackpoll_interval;
                        codec->beep_mode = chip->beep_mode;
                        codecs++;
                }
index 3c9a2f8..33b9983 100644 (file)
@@ -121,7 +121,7 @@ struct azx {
        int capture_streams;
        int capture_index_offset;
        int num_streams;
-       const int *jackpoll_ms; /* per-card jack poll interval */
+       int jackpoll_interval; /* jack poll interval in jiffies */
 
        /* Register interaction. */
        const struct hda_controller_ops *ops;
index 0a3ce9c..12647de 100644 (file)
@@ -1676,7 +1676,8 @@ static int azx_create(struct snd_card *card, struct pci_dev *pci,
        chip->driver_type = driver_caps & 0xff;
        check_msi(chip);
        chip->dev_index = dev;
-       chip->jackpoll_ms = jackpoll_ms;
+       if (jackpoll_ms[dev] >= 50 && jackpoll_ms[dev] <= 60000)
+               chip->jackpoll_interval = msecs_to_jiffies(jackpoll_ms[dev]);
        INIT_LIST_HEAD(&chip->pcm_list);
        INIT_WORK(&hda->irq_pending_work, azx_irq_pending_work);
        INIT_LIST_HEAD(&hda->list);