diff options
Diffstat (limited to 'sound/isa')
-rw-r--r-- | sound/isa/gus/gus_io.c | 229 | ||||
-rw-r--r-- | sound/isa/gus/gus_main.c | 14 | ||||
-rw-r--r-- | sound/isa/gus/gus_reset.c | 16 | ||||
-rw-r--r-- | sound/isa/msnd/Makefile | 2 | ||||
-rw-r--r-- | sound/isa/msnd/msnd.h | 4 | ||||
-rw-r--r-- | sound/isa/msnd/msnd_midi.c | 163 | ||||
-rw-r--r-- | sound/isa/msnd/msnd_pinnacle.c | 5 | ||||
-rw-r--r-- | sound/isa/sb/emu8000.c | 3 | ||||
-rw-r--r-- | sound/isa/sb/jazz16.c | 5 | ||||
-rw-r--r-- | sound/isa/sb/sb16.c | 5 | ||||
-rw-r--r-- | sound/isa/sb/sb8.c | 5 | ||||
-rw-r--r-- | sound/isa/sb/sb8_midi.c | 3 | ||||
-rw-r--r-- | sound/isa/sb/sb_mixer.c | 5 |
13 files changed, 19 insertions, 440 deletions
diff --git a/sound/isa/gus/gus_io.c b/sound/isa/gus/gus_io.c index 1dc9e0edb3d9..f167eb8d516b 100644 --- a/sound/isa/gus/gus_io.c +++ b/sound/isa/gus/gus_io.c @@ -228,49 +228,6 @@ unsigned short snd_gf1_i_look16(struct snd_gus_card * gus, unsigned char reg) return res; } -#if 0 - -void snd_gf1_i_adlib_write(struct snd_gus_card * gus, - unsigned char reg, - unsigned char data) -{ - unsigned long flags; - - spin_lock_irqsave(&gus->reg_lock, flags); - __snd_gf1_adlib_write(gus, reg, data); - spin_unlock_irqrestore(&gus->reg_lock, flags); -} - -void snd_gf1_i_write_addr(struct snd_gus_card * gus, unsigned char reg, - unsigned int addr, short w_16bit) -{ - unsigned long flags; - - spin_lock_irqsave(&gus->reg_lock, flags); - __snd_gf1_write_addr(gus, reg, addr, w_16bit); - spin_unlock_irqrestore(&gus->reg_lock, flags); -} - -#endif /* 0 */ - -#ifdef CONFIG_SND_DEBUG -static unsigned int snd_gf1_i_read_addr(struct snd_gus_card * gus, - unsigned char reg, short w_16bit) -{ - unsigned int res; - unsigned long flags; - - spin_lock_irqsave(&gus->reg_lock, flags); - res = __snd_gf1_read_addr(gus, reg, w_16bit); - spin_unlock_irqrestore(&gus->reg_lock, flags); - return res; -} -#endif - -/* - - */ - void snd_gf1_dram_addr(struct snd_gus_card * gus, unsigned int addr) { outb(0x43, gus->gf1.reg_regsel); @@ -418,189 +375,3 @@ void snd_gf1_select_active_voices(struct snd_gus_card * gus) udelay(100); } } - -#ifdef CONFIG_SND_DEBUG - -void snd_gf1_print_voice_registers(struct snd_gus_card * gus) -{ - unsigned char mode; - int voice, ctrl; - - voice = gus->gf1.active_voice; - dev_info(gus->card->dev, - " -%i- GF1 voice ctrl, ramp ctrl = 0x%x, 0x%x\n", - voice, ctrl = snd_gf1_i_read8(gus, 0), snd_gf1_i_read8(gus, 0x0d)); - dev_info(gus->card->dev, - " -%i- GF1 frequency = 0x%x\n", - voice, snd_gf1_i_read16(gus, 1)); - dev_info(gus->card->dev, - " -%i- GF1 loop start, end = 0x%x (0x%x), 0x%x (0x%x)\n", - voice, snd_gf1_i_read_addr(gus, 2, ctrl & 4), - snd_gf1_i_read_addr(gus, 2, (ctrl & 4) ^ 4), - snd_gf1_i_read_addr(gus, 4, ctrl & 4), - snd_gf1_i_read_addr(gus, 4, (ctrl & 4) ^ 4)); - dev_info(gus->card->dev, - " -%i- GF1 ramp start, end, rate = 0x%x, 0x%x, 0x%x\n", - voice, snd_gf1_i_read8(gus, 7), snd_gf1_i_read8(gus, 8), - snd_gf1_i_read8(gus, 6)); - dev_info(gus->card->dev, - " -%i- GF1 volume = 0x%x\n", - voice, snd_gf1_i_read16(gus, 9)); - dev_info(gus->card->dev, - " -%i- GF1 position = 0x%x (0x%x)\n", - voice, snd_gf1_i_read_addr(gus, 0x0a, ctrl & 4), - snd_gf1_i_read_addr(gus, 0x0a, (ctrl & 4) ^ 4)); - if (gus->interwave && snd_gf1_i_read8(gus, 0x19) & 0x01) { /* enhanced mode */ - mode = snd_gf1_i_read8(gus, 0x15); - dev_info(gus->card->dev, - " -%i- GFA1 mode = 0x%x\n", - voice, mode); - if (mode & 0x01) { /* Effect processor */ - dev_info(gus->card->dev, - " -%i- GFA1 effect address = 0x%x\n", - voice, snd_gf1_i_read_addr(gus, 0x11, ctrl & 4)); - dev_info(gus->card->dev, - " -%i- GFA1 effect volume = 0x%x\n", - voice, snd_gf1_i_read16(gus, 0x16)); - dev_info(gus->card->dev, - " -%i- GFA1 effect volume final = 0x%x\n", - voice, snd_gf1_i_read16(gus, 0x1d)); - dev_info(gus->card->dev, - " -%i- GFA1 effect accumulator = 0x%x\n", - voice, snd_gf1_i_read8(gus, 0x14)); - } - if (mode & 0x20) { - dev_info(gus->card->dev, - " -%i- GFA1 left offset = 0x%x (%i)\n", - voice, snd_gf1_i_read16(gus, 0x13), - snd_gf1_i_read16(gus, 0x13) >> 4); - dev_info(gus->card->dev, - " -%i- GFA1 left offset final = 0x%x (%i)\n", - voice, snd_gf1_i_read16(gus, 0x1c), - snd_gf1_i_read16(gus, 0x1c) >> 4); - dev_info(gus->card->dev, - " -%i- GFA1 right offset = 0x%x (%i)\n", - voice, snd_gf1_i_read16(gus, 0x0c), - snd_gf1_i_read16(gus, 0x0c) >> 4); - dev_info(gus->card->dev, - " -%i- GFA1 right offset final = 0x%x (%i)\n", - voice, snd_gf1_i_read16(gus, 0x1b), - snd_gf1_i_read16(gus, 0x1b) >> 4); - } else - dev_info(gus->card->dev, - " -%i- GF1 pan = 0x%x\n", - voice, snd_gf1_i_read8(gus, 0x0c)); - } else - dev_info(gus->card->dev, - " -%i- GF1 pan = 0x%x\n", - voice, snd_gf1_i_read8(gus, 0x0c)); -} - -#if 0 - -void snd_gf1_print_global_registers(struct snd_gus_card * gus) -{ - unsigned char global_mode = 0x00; - - dev_info(gus->card->dev, - " -G- GF1 active voices = 0x%x\n", - snd_gf1_i_look8(gus, SNDRV_GF1_GB_ACTIVE_VOICES)); - if (gus->interwave) { - global_mode = snd_gf1_i_read8(gus, SNDRV_GF1_GB_GLOBAL_MODE); - dev_info(gus->card->dev, - " -G- GF1 global mode = 0x%x\n", - global_mode); - } - if (global_mode & 0x02) /* LFO enabled? */ - dev_info(gus->card->dev, - " -G- GF1 LFO base = 0x%x\n", - snd_gf1_i_look16(gus, SNDRV_GF1_GW_LFO_BASE)); - dev_info(gus->card->dev, - " -G- GF1 voices IRQ read = 0x%x\n", - snd_gf1_i_look8(gus, SNDRV_GF1_GB_VOICES_IRQ_READ)); - dev_info(gus->card->dev, - " -G- GF1 DRAM DMA control = 0x%x\n", - snd_gf1_i_look8(gus, SNDRV_GF1_GB_DRAM_DMA_CONTROL)); - dev_info(gus->card->dev, - " -G- GF1 DRAM DMA high/low = 0x%x/0x%x\n", - snd_gf1_i_look8(gus, SNDRV_GF1_GB_DRAM_DMA_HIGH), - snd_gf1_i_read16(gus, SNDRV_GF1_GW_DRAM_DMA_LOW)); - dev_info(gus->card->dev, - " -G- GF1 DRAM IO high/low = 0x%x/0x%x\n", - snd_gf1_i_look8(gus, SNDRV_GF1_GB_DRAM_IO_HIGH), - snd_gf1_i_read16(gus, SNDRV_GF1_GW_DRAM_IO_LOW)); - if (!gus->interwave) - dev_info(gus->card->dev, - " -G- GF1 record DMA control = 0x%x\n", - snd_gf1_i_look8(gus, SNDRV_GF1_GB_REC_DMA_CONTROL)); - dev_info(gus->card->dev, - " -G- GF1 DRAM IO 16 = 0x%x\n", - snd_gf1_i_look16(gus, SNDRV_GF1_GW_DRAM_IO16)); - if (gus->gf1.enh_mode) { - dev_info(gus->card->dev, - " -G- GFA1 memory config = 0x%x\n", - snd_gf1_i_look16(gus, SNDRV_GF1_GW_MEMORY_CONFIG)); - dev_info(gus->card->dev, - " -G- GFA1 memory control = 0x%x\n", - snd_gf1_i_look8(gus, SNDRV_GF1_GB_MEMORY_CONTROL)); - dev_info(gus->card->dev, - " -G- GFA1 FIFO record base = 0x%x\n", - snd_gf1_i_look16(gus, SNDRV_GF1_GW_FIFO_RECORD_BASE_ADDR)); - dev_info(gus->card->dev, - " -G- GFA1 FIFO playback base = 0x%x\n", - snd_gf1_i_look16(gus, SNDRV_GF1_GW_FIFO_PLAY_BASE_ADDR)); - dev_info(gus->card->dev, - " -G- GFA1 interleave control = 0x%x\n", - snd_gf1_i_look16(gus, SNDRV_GF1_GW_INTERLEAVE)); - } -} - -void snd_gf1_print_setup_registers(struct snd_gus_card * gus) -{ - dev_info(gus->card->dev, - " -S- mix control = 0x%x\n", - inb(GUSP(gus, MIXCNTRLREG))); - dev_info(gus->card->dev, - " -S- IRQ status = 0x%x\n", - inb(GUSP(gus, IRQSTAT))); - dev_info(gus->card->dev, - " -S- timer control = 0x%x\n", - inb(GUSP(gus, TIMERCNTRL))); - dev_info(gus->card->dev, - " -S- timer data = 0x%x\n", - inb(GUSP(gus, TIMERDATA))); - dev_info(gus->card->dev, - " -S- status read = 0x%x\n", - inb(GUSP(gus, REGCNTRLS))); - dev_info(gus->card->dev, - " -S- Sound Blaster control = 0x%x\n", - snd_gf1_i_look8(gus, SNDRV_GF1_GB_SOUND_BLASTER_CONTROL)); - dev_info(gus->card->dev, - " -S- AdLib timer 1/2 = 0x%x/0x%x\n", - snd_gf1_i_look8(gus, SNDRV_GF1_GB_ADLIB_TIMER_1), - snd_gf1_i_look8(gus, SNDRV_GF1_GB_ADLIB_TIMER_2)); - dev_info(gus->card->dev, - " -S- reset = 0x%x\n", - snd_gf1_i_look8(gus, SNDRV_GF1_GB_RESET)); - if (gus->interwave) { - dev_info(gus->card->dev, - " -S- compatibility = 0x%x\n", - snd_gf1_i_look8(gus, SNDRV_GF1_GB_COMPATIBILITY)); - dev_info(gus->card->dev, - " -S- decode control = 0x%x\n", - snd_gf1_i_look8(gus, SNDRV_GF1_GB_DECODE_CONTROL)); - dev_info(gus->card->dev, - " -S- version number = 0x%x\n", - snd_gf1_i_look8(gus, SNDRV_GF1_GB_VERSION_NUMBER)); - dev_info(gus->card->dev, - " -S- MPU-401 emul. control A/B = 0x%x/0x%x\n", - snd_gf1_i_look8(gus, SNDRV_GF1_GB_MPU401_CONTROL_A), - snd_gf1_i_look8(gus, SNDRV_GF1_GB_MPU401_CONTROL_B)); - dev_info(gus->card->dev, - " -S- emulation IRQ = 0x%x\n", - snd_gf1_i_look8(gus, SNDRV_GF1_GB_EMULATION_IRQ)); - } -} -#endif /* 0 */ - -#endif diff --git a/sound/isa/gus/gus_main.c b/sound/isa/gus/gus_main.c index 51ce405eba7a..7166869e423d 100644 --- a/sound/isa/gus/gus_main.c +++ b/sound/isa/gus/gus_main.c @@ -22,18 +22,6 @@ MODULE_LICENSE("GPL"); static int snd_gus_init_dma_irq(struct snd_gus_card * gus, int latches); -int snd_gus_use_inc(struct snd_gus_card * gus) -{ - if (!try_module_get(gus->card->module)) - return 0; - return 1; -} - -void snd_gus_use_dec(struct snd_gus_card * gus) -{ - module_put(gus->card->module); -} - static int snd_gus_joystick_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; @@ -443,8 +431,6 @@ EXPORT_SYMBOL(snd_gf1_new_mixer); /* gus_pcm.c */ EXPORT_SYMBOL(snd_gf1_pcm_new); /* gus.c */ -EXPORT_SYMBOL(snd_gus_use_inc); -EXPORT_SYMBOL(snd_gus_use_dec); EXPORT_SYMBOL(snd_gus_create); EXPORT_SYMBOL(snd_gus_initialize); /* gus_irq.c */ diff --git a/sound/isa/gus/gus_reset.c b/sound/isa/gus/gus_reset.c index ac5da1281042..326bc6028885 100644 --- a/sound/isa/gus/gus_reset.c +++ b/sound/isa/gus/gus_reset.c @@ -141,10 +141,6 @@ void snd_gf1_stop_voice(struct snd_gus_card * gus, unsigned short voice) if (gus->gf1.enh_mode) snd_gf1_write8(gus, SNDRV_GF1_VB_ACCUMULATOR, 0); spin_unlock_irqrestore(&gus->reg_lock, flags); -#if 0 - snd_gf1_lfo_shutdown(gus, voice, ULTRA_LFO_VIBRATO); - snd_gf1_lfo_shutdown(gus, voice, ULTRA_LFO_TREMOLO); -#endif } static void snd_gf1_clear_voices(struct snd_gus_card * gus, unsigned short v_min, @@ -182,10 +178,6 @@ static void snd_gf1_clear_voices(struct snd_gus_card * gus, unsigned short v_min snd_gf1_write16(gus, SNDRV_GF1_VW_EFFECT_VOLUME_FINAL, 0); } spin_unlock_irqrestore(&gus->reg_lock, flags); -#if 0 - snd_gf1_lfo_shutdown(gus, i, ULTRA_LFO_VIBRATO); - snd_gf1_lfo_shutdown(gus, i, ULTRA_LFO_TREMOLO); -#endif } } @@ -335,9 +327,7 @@ int snd_gf1_start(struct snd_gus_card * gus) } else { gus->gf1.sw_lfo = 1; } -#if 0 - snd_gf1_lfo_init(gus); -#endif + if (gus->gf1.memory > 0) for (i = 0; i < 4; i++) snd_gf1_poke(gus, gus->gf1.default_voice_address + i, 0); @@ -391,8 +381,6 @@ int snd_gf1_stop(struct snd_gus_card * gus) snd_gf1_i_write8(gus, SNDRV_GF1_GB_RESET, 1); /* disable IRQ & DAC */ snd_gf1_timers_done(gus); snd_gf1_mem_done(gus); -#if 0 - snd_gf1_lfo_done(gus); -#endif + return 0; } diff --git a/sound/isa/msnd/Makefile b/sound/isa/msnd/Makefile index 5f8d6b472722..d56412aae857 100644 --- a/sound/isa/msnd/Makefile +++ b/sound/isa/msnd/Makefile @@ -1,6 +1,6 @@ # SPDX-License-Identifier: GPL-2.0 -snd-msnd-lib-y := msnd.o msnd_midi.o msnd_pinnacle_mixer.o +snd-msnd-lib-y := msnd.o msnd_pinnacle_mixer.o snd-msnd-pinnacle-y := msnd_pinnacle.o snd-msnd-classic-y := msnd_classic.o diff --git a/sound/isa/msnd/msnd.h b/sound/isa/msnd/msnd.h index 533d71cee9ba..3d7810ed9186 100644 --- a/sound/isa/msnd/msnd.h +++ b/sound/isa/msnd/msnd.h @@ -216,7 +216,6 @@ struct snd_msnd { int captureLimit; int capturePeriods; struct snd_card *card; - void *msndmidi_mpu; struct snd_rawmidi *rmidi; /* Hardware resources */ @@ -286,9 +285,6 @@ int snd_msnd_DAPQ(struct snd_msnd *chip, int start); int snd_msnd_DARQ(struct snd_msnd *chip, int start); int snd_msnd_pcm(struct snd_card *card, int device); -int snd_msndmidi_new(struct snd_card *card, int device); -void snd_msndmidi_input_read(void *mpu); - void snd_msndmix_setup(struct snd_msnd *chip); int snd_msndmix_new(struct snd_card *card); int snd_msndmix_force_recsrc(struct snd_msnd *chip, int recsrc); diff --git a/sound/isa/msnd/msnd_midi.c b/sound/isa/msnd/msnd_midi.c deleted file mode 100644 index 3ffc8758bec2..000000000000 --- a/sound/isa/msnd/msnd_midi.c +++ /dev/null @@ -1,163 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-or-later -/* - * Copyright (c) by Jaroslav Kysela <perex@perex.cz> - * Copyright (c) 2009 by Krzysztof Helt - * Routines for control of MPU-401 in UART mode - * - * MPU-401 supports UART mode which is not capable generate transmit - * interrupts thus output is done via polling. Also, if irq < 0, then - * input is done also via polling. Do not expect good performance. - */ - -#include <linux/io.h> -#include <linux/slab.h> -#include <linux/delay.h> -#include <linux/ioport.h> -#include <linux/errno.h> -#include <linux/export.h> -#include <sound/core.h> -#include <sound/rawmidi.h> - -#include "msnd.h" - -#define MSNDMIDI_MODE_BIT_INPUT 0 -#define MSNDMIDI_MODE_BIT_OUTPUT 1 -#define MSNDMIDI_MODE_BIT_INPUT_TRIGGER 2 -#define MSNDMIDI_MODE_BIT_OUTPUT_TRIGGER 3 - -struct snd_msndmidi { - struct snd_msnd *dev; - - unsigned long mode; /* MSNDMIDI_MODE_XXXX */ - - struct snd_rawmidi_substream *substream_input; - - spinlock_t input_lock; -}; - -/* - * input/output open/close - protected by open_mutex in rawmidi.c - */ -static int snd_msndmidi_input_open(struct snd_rawmidi_substream *substream) -{ - struct snd_msndmidi *mpu; - - mpu = substream->rmidi->private_data; - - mpu->substream_input = substream; - - snd_msnd_enable_irq(mpu->dev); - - snd_msnd_send_dsp_cmd(mpu->dev, HDEX_MIDI_IN_START); - set_bit(MSNDMIDI_MODE_BIT_INPUT, &mpu->mode); - return 0; -} - -static int snd_msndmidi_input_close(struct snd_rawmidi_substream *substream) -{ - struct snd_msndmidi *mpu; - - mpu = substream->rmidi->private_data; - snd_msnd_send_dsp_cmd(mpu->dev, HDEX_MIDI_IN_STOP); - clear_bit(MSNDMIDI_MODE_BIT_INPUT, &mpu->mode); - mpu->substream_input = NULL; - snd_msnd_disable_irq(mpu->dev); - return 0; -} - -static void snd_msndmidi_input_drop(struct snd_msndmidi *mpu) -{ - u16 tail; - - tail = readw(mpu->dev->MIDQ + JQS_wTail); - writew(tail, mpu->dev->MIDQ + JQS_wHead); -} - -/* - * trigger input - */ -static void snd_msndmidi_input_trigger(struct snd_rawmidi_substream *substream, - int up) -{ - unsigned long flags; - struct snd_msndmidi *mpu; - - mpu = substream->rmidi->private_data; - spin_lock_irqsave(&mpu->input_lock, flags); - if (up) { - if (!test_and_set_bit(MSNDMIDI_MODE_BIT_INPUT_TRIGGER, - &mpu->mode)) - snd_msndmidi_input_drop(mpu); - } else { - clear_bit(MSNDMIDI_MODE_BIT_INPUT_TRIGGER, &mpu->mode); - } - spin_unlock_irqrestore(&mpu->input_lock, flags); - if (up) - snd_msndmidi_input_read(mpu); -} - -void snd_msndmidi_input_read(void *mpuv) -{ - unsigned long flags; - struct snd_msndmidi *mpu = mpuv; - void __iomem *pwMIDQData = mpu->dev->mappedbase + MIDQ_DATA_BUFF; - u16 head, tail, size; - - spin_lock_irqsave(&mpu->input_lock, flags); - head = readw(mpu->dev->MIDQ + JQS_wHead); - tail = readw(mpu->dev->MIDQ + JQS_wTail); - size = readw(mpu->dev->MIDQ + JQS_wSize); - if (head > size || tail > size) - goto out; - while (head != tail) { - unsigned char val = readw(pwMIDQData + 2 * head); - - if (test_bit(MSNDMIDI_MODE_BIT_INPUT_TRIGGER, &mpu->mode)) - snd_rawmidi_receive(mpu->substream_input, &val, 1); - if (++head > size) - head = 0; - writew(head, mpu->dev->MIDQ + JQS_wHead); - } - out: - spin_unlock_irqrestore(&mpu->input_lock, flags); -} -EXPORT_SYMBOL(snd_msndmidi_input_read); - -static const struct snd_rawmidi_ops snd_msndmidi_input = { - .open = snd_msndmidi_input_open, - .close = snd_msndmidi_input_close, - .trigger = snd_msndmidi_input_trigger, -}; - -static void snd_msndmidi_free(struct snd_rawmidi *rmidi) -{ - struct snd_msndmidi *mpu = rmidi->private_data; - kfree(mpu); -} - -int snd_msndmidi_new(struct snd_card *card, int device) -{ - struct snd_msnd *chip = card->private_data; - struct snd_msndmidi *mpu; - struct snd_rawmidi *rmidi; - int err; - - err = snd_rawmidi_new(card, "MSND-MIDI", device, 1, 1, &rmidi); - if (err < 0) - return err; - mpu = kzalloc(sizeof(*mpu), GFP_KERNEL); - if (mpu == NULL) { - snd_device_free(card, rmidi); - return -ENOMEM; - } - mpu->dev = chip; - chip->msndmidi_mpu = mpu; - rmidi->private_data = mpu; - rmidi->private_free = snd_msndmidi_free; - spin_lock_init(&mpu->input_lock); - strcpy(rmidi->name, "MSND MIDI"); - snd_rawmidi_set_ops(rmidi, SNDRV_RAWMIDI_STREAM_INPUT, - &snd_msndmidi_input); - rmidi->info_flags |= SNDRV_RAWMIDI_INFO_INPUT; - return 0; -} diff --git a/sound/isa/msnd/msnd_pinnacle.c b/sound/isa/msnd/msnd_pinnacle.c index 635403301a15..8caf431677e5 100644 --- a/sound/isa/msnd/msnd_pinnacle.c +++ b/sound/isa/msnd/msnd_pinnacle.c @@ -142,11 +142,6 @@ static void snd_msnd_eval_dsp_msg(struct snd_msnd *chip, u16 wMessage) } break; - case HIMT_MIDI_IN_UCHAR: - if (chip->msndmidi_mpu) - snd_msndmidi_input_read(chip->msndmidi_mpu); - break; - default: dev_dbg(chip->card->dev, LOGNAME ": HIMT message %d 0x%02x\n", HIBYTE(wMessage), HIBYTE(wMessage)); diff --git a/sound/isa/sb/emu8000.c b/sound/isa/sb/emu8000.c index 52884e6b9193..312b217491d4 100644 --- a/sound/isa/sb/emu8000.c +++ b/sound/isa/sb/emu8000.c @@ -14,6 +14,7 @@ #include <linux/export.h> #include <linux/delay.h> #include <linux/io.h> +#include <linux/string.h> #include <sound/core.h> #include <sound/emu8000.h> #include <sound/emu8000_reg.h> @@ -1096,7 +1097,7 @@ snd_emu8000_new(struct snd_card *card, int index, long port, int seq_ports, #if IS_ENABLED(CONFIG_SND_SEQUENCER) if (snd_seq_device_new(card, index, SNDRV_SEQ_DEV_ID_EMU8000, sizeof(struct snd_emu8000*), &awe) >= 0) { - strcpy(awe->name, "EMU-8000"); + strscpy(awe->name, "EMU-8000"); *(struct snd_emu8000 **)SNDRV_SEQ_DEVICE_ARGPTR(awe) = hw; } #else diff --git a/sound/isa/sb/jazz16.c b/sound/isa/sb/jazz16.c index b28490973892..69d9bfb6c14c 100644 --- a/sound/isa/sb/jazz16.c +++ b/sound/isa/sb/jazz16.c @@ -15,6 +15,7 @@ #include <linux/module.h> #include <linux/io.h> #include <linux/delay.h> +#include <linux/string.h> #include <asm/dma.h> #include <linux/isa.h> #include <sound/core.h> @@ -286,8 +287,8 @@ static int snd_jazz16_probe(struct device *devptr, unsigned int dev) jazz16->chip = chip; - strcpy(card->driver, "jazz16"); - strcpy(card->shortname, "Media Vision Jazz16"); + strscpy(card->driver, "jazz16"); + strscpy(card->shortname, "Media Vision Jazz16"); sprintf(card->longname, "Media Vision Jazz16 at 0x%lx, irq %d, dma8 %d, dma16 %d", port[dev], xirq, xdma8, xdma16); diff --git a/sound/isa/sb/sb16.c b/sound/isa/sb/sb16.c index 2f7505ad855c..752762117338 100644 --- a/sound/isa/sb/sb16.c +++ b/sound/isa/sb/sb16.c @@ -10,6 +10,7 @@ #include <linux/err.h> #include <linux/isa.h> #include <linux/module.h> +#include <linux/string.h> #include <sound/core.h> #include <sound/sb.h> #include <sound/sb16_csp.h> @@ -337,12 +338,12 @@ static int snd_sb16_probe(struct snd_card *card, int dev) if (err < 0) return err; - strcpy(card->driver, + strscpy(card->driver, #ifdef SNDRV_SBAWE_EMU8000 awe_port[dev] > 0 ? "SB AWE" : #endif "SB16"); - strcpy(card->shortname, chip->name); + strscpy(card->shortname, chip->name); sprintf(card->longname, "%s at 0x%lx, irq %i, dma ", chip->name, chip->port, diff --git a/sound/isa/sb/sb8.c b/sound/isa/sb/sb8.c index 8726778c815e..6d5131265913 100644 --- a/sound/isa/sb/sb8.c +++ b/sound/isa/sb/sb8.c @@ -9,6 +9,7 @@ #include <linux/isa.h> #include <linux/ioport.h> #include <linux/module.h> +#include <linux/string.h> #include <sound/core.h> #include <sound/sb.h> #include <sound/opl3.h> @@ -162,8 +163,8 @@ static int snd_sb8_probe(struct device *pdev, unsigned int dev) if (err < 0) return err; - strcpy(card->driver, chip->hardware == SB_HW_PRO ? "SB Pro" : "SB8"); - strcpy(card->shortname, chip->name); + strscpy(card->driver, chip->hardware == SB_HW_PRO ? "SB Pro" : "SB8"); + strscpy(card->shortname, chip->name); sprintf(card->longname, "%s at 0x%lx, irq %d, dma %d", chip->name, chip->port, diff --git a/sound/isa/sb/sb8_midi.c b/sound/isa/sb/sb8_midi.c index d2908fc280f8..57867e51d367 100644 --- a/sound/isa/sb/sb8_midi.c +++ b/sound/isa/sb/sb8_midi.c @@ -14,6 +14,7 @@ */ #include <linux/io.h> +#include <linux/string.h> #include <linux/time.h> #include <sound/core.h> #include <sound/sb.h> @@ -254,7 +255,7 @@ int snd_sb8dsp_midi(struct snd_sb *chip, int device) err = snd_rawmidi_new(chip->card, "SB8 MIDI", device, 1, 1, &rmidi); if (err < 0) return err; - strcpy(rmidi->name, "SB8 MIDI"); + strscpy(rmidi->name, "SB8 MIDI"); snd_rawmidi_set_ops(rmidi, SNDRV_RAWMIDI_STREAM_OUTPUT, &snd_sb8dsp_midi_output); snd_rawmidi_set_ops(rmidi, SNDRV_RAWMIDI_STREAM_INPUT, &snd_sb8dsp_midi_input); rmidi->info_flags |= SNDRV_RAWMIDI_INFO_OUTPUT | SNDRV_RAWMIDI_INFO_INPUT; diff --git a/sound/isa/sb/sb_mixer.c b/sound/isa/sb/sb_mixer.c index 9d23b7a4570b..b2709ed134b4 100644 --- a/sound/isa/sb/sb_mixer.c +++ b/sound/isa/sb/sb_mixer.c @@ -6,6 +6,7 @@ #include <linux/io.h> #include <linux/delay.h> +#include <linux/string.h> #include <linux/time.h> #include <sound/core.h> #include <sound/sb.h> @@ -718,7 +719,7 @@ static int snd_sbmixer_init(struct snd_sb *chip, return err; } snd_component_add(card, name); - strcpy(card->mixername, name); + strscpy(card->mixername, name); return 0; } @@ -799,7 +800,7 @@ int snd_sbmixer_new(struct snd_sb *chip) return err; break; default: - strcpy(card->mixername, "???"); + strscpy(card->mixername, "???"); } return 0; } |