| .. | .. |
|---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-or-later |
|---|
| 1 | 2 | /* |
|---|
| 2 | 3 | * Driver for audio on multifunction CS5535/6 companion device |
|---|
| 3 | 4 | * Copyright (C) Jaya Kumar |
|---|
| 4 | 5 | * |
|---|
| 5 | 6 | * Based on Jaroslav Kysela and Takashi Iwai's examples. |
|---|
| 6 | 7 | * This work was sponsored by CIS(M) Sdn Bhd. |
|---|
| 7 | | - * |
|---|
| 8 | | - * This program is free software; you can redistribute it and/or modify |
|---|
| 9 | | - * it under the terms of the GNU General Public License as published by |
|---|
| 10 | | - * the Free Software Foundation; either version 2 of the License, or |
|---|
| 11 | | - * (at your option) any later version. |
|---|
| 12 | | - * |
|---|
| 13 | | - * This program is distributed in the hope that it will be useful, |
|---|
| 14 | | - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|---|
| 15 | | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|---|
| 16 | | - * GNU General Public License for more details. |
|---|
| 17 | | - * |
|---|
| 18 | | - * You should have received a copy of the GNU General Public License |
|---|
| 19 | | - * along with this program; if not, write to the Free Software |
|---|
| 20 | | - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|---|
| 21 | | - * |
|---|
| 22 | 8 | */ |
|---|
| 23 | 9 | |
|---|
| 24 | 10 | #include <linux/delay.h> |
|---|
| .. | .. |
|---|
| 152 | 138 | struct snd_ac97_bus *pbus; |
|---|
| 153 | 139 | struct snd_ac97_template ac97; |
|---|
| 154 | 140 | int err; |
|---|
| 155 | | - static struct snd_ac97_bus_ops ops = { |
|---|
| 141 | + static const struct snd_ac97_bus_ops ops = { |
|---|
| 156 | 142 | .write = snd_cs5535audio_ac97_codec_write, |
|---|
| 157 | 143 | .read = snd_cs5535audio_ac97_codec_read, |
|---|
| 158 | 144 | }; |
|---|
| .. | .. |
|---|
| 251 | 237 | |
|---|
| 252 | 238 | static int snd_cs5535audio_free(struct cs5535audio *cs5535au) |
|---|
| 253 | 239 | { |
|---|
| 254 | | - synchronize_irq(cs5535au->irq); |
|---|
| 255 | 240 | pci_set_power_state(cs5535au->pci, PCI_D3hot); |
|---|
| 256 | 241 | |
|---|
| 257 | 242 | if (cs5535au->irq >= 0) |
|---|
| .. | .. |
|---|
| 276 | 261 | struct cs5535audio *cs5535au; |
|---|
| 277 | 262 | |
|---|
| 278 | 263 | int err; |
|---|
| 279 | | - static struct snd_device_ops ops = { |
|---|
| 264 | + static const struct snd_device_ops ops = { |
|---|
| 280 | 265 | .dev_free = snd_cs5535audio_dev_free, |
|---|
| 281 | 266 | }; |
|---|
| 282 | 267 | |
|---|
| .. | .. |
|---|
| 317 | 302 | } |
|---|
| 318 | 303 | |
|---|
| 319 | 304 | cs5535au->irq = pci->irq; |
|---|
| 305 | + card->sync_irq = cs5535au->irq; |
|---|
| 320 | 306 | pci_set_master(pci); |
|---|
| 321 | 307 | |
|---|
| 322 | 308 | if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, |
|---|