From patchwork Wed Aug 28 14:06:25 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Dominik_Karol_Pi=C4=85tkowski?= X-Patchwork-Id: 13781323 Received: from mail-4322.protonmail.ch (mail-4322.protonmail.ch [185.70.43.22]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D2328188CC2 for ; Wed, 28 Aug 2024 14:06:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.70.43.22 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1724853996; cv=none; b=bpv5S108uHpYDqiRJJ76MLynP7ILPHUeO/AS4BWBwomfdCelMKkZ9FkX2MXavqAwnDTPjAW5LsjOOFxGBOnMtLSuE2nIcoZ0hgbqmxw+p9WiKEI82ZxaO+I6WxSqG4d0Jq9MKkUkhtj77hcsf6ZvHjqjhbtbnk99yFfxfWZB5qo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1724853996; c=relaxed/simple; bh=otedDKXWRlErpy6D3v6S5UyI+6IgGWr+5u1rG34vxcQ=; h=Date:To:From:Cc:Subject:Message-ID:MIME-Version:Content-Type; b=Vc5L0mR+NF5xBYiXeWPGp5MmuReEQIZec9kJMoyV0UBExHUJg/eUUEhDmiOjCIbqtwAfA1aFNp4LJioTsVvGhHVoAFlk6NkoyxH9qp0PBqqEbASGMiElq5D4m8Z4WKEO6oWQuflW2E6xNEZko2rIQTP+M42jTaNFU9KhranDIsg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=protonmail.com; spf=pass smtp.mailfrom=protonmail.com; dkim=pass (2048-bit key) header.d=protonmail.com header.i=@protonmail.com header.b=Rh/pjDuJ; arc=none smtp.client-ip=185.70.43.22 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=protonmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=protonmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=protonmail.com header.i=@protonmail.com header.b="Rh/pjDuJ" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail3; t=1724853991; x=1725113191; bh=vPvncXPECDixTc76akVoXBodonoMLQRoRoMAD+A7dKQ=; h=Date:To:From:Cc:Subject:Message-ID:Feedback-ID:From:To:Cc:Date: Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector; b=Rh/pjDuJ9ib44eTecS/a14DMJLhWFnHamHzpPhlUQJKGwvoFITe+B+vXrlaGeNnYl ziLpJTLshwFo1sH8m59lH4Dfz5VrVi/ySpmZ65Z40Ra2zgcTO9JcmI70zZSy1w/qJ5 ruXkq80VTQI7DLo7izkHqP4IS4C+vBEzpNZ8R3Lux3F3a0ZZrn4M86OFErm1SMiq3L jIsHB75tEQ9OigsZ2ZnH92cTLI/hpdd7g7fj9X6uhtoXPaUh42w/wzQsv8KK21H7Ja hhJxAHndPdjKvUNWGK7SmUGHJqvdTBwoQnoQKhzzNkneVFdHeIFivR892G7PAHkfV2 dG7nKmHL4gYWQ== Date: Wed, 28 Aug 2024 14:06:25 +0000 To: perex@perex.cz, tiwai@suse.com From: =?utf-8?q?Dominik_Karol_Pi=C4=85tkowski?= Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, =?utf-8?q?Dom?= =?utf-8?q?inik_Karol_Pi=C4=85tkowski?= Subject: [PATCH] sound: core: Fix issues detected by checkpatch Message-ID: <20240828140555.68565-1-dominik.karol.piatkowski@protonmail.com> Feedback-ID: 117888567:user:proton X-Pm-Message-ID: 11801dcb88d86c23edff23e64d7df05fecee8e70 Precedence: bulk X-Mailing-List: linux-sound@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Running checkpatch.pl on sound_core.c resulted in: total: 75 errors, 37 warnings, 617 lines checked This patch fixes most of them, leaving two warnings: WARNING: Prefer [subsystem eg: netdev]_err([subsystem]dev, ... then dev_err(dev, ... then pr_err(... to printk(KERN_ERR ... + printk(KERN_ERR "Sound device %d went missing!\n", unit); WARNING: Prefer [subsystem eg: netdev]_err([subsystem]dev, ... then dev_err(dev, ... then pr_err(... to printk(KERN_ERR ... + printk(KERN_ERR "soundcore: sound device already in use.\n"); Signed-off-by: Dominik Karol PiÄ…tkowski --- sound/sound_core.c | 157 +++++++++++++++++++++------------------------ 1 file changed, 72 insertions(+), 85 deletions(-) diff --git a/sound/sound_core.c b/sound/sound_core.c index d81fed1c1226..875ab0257904 100644 --- a/sound/sound_core.c +++ b/sound/sound_core.c @@ -70,15 +70,15 @@ module_exit(cleanup_soundcore); #ifdef CONFIG_SOUND_OSS_CORE /* * OSS sound core handling. Breaks out sound functions to submodules - * + * * Author: Alan Cox * * Fixes: * * -------------------- - * + * * Top level handler for the sound subsystem. Various devices can - * plug into this. The fact they don't all go via OSS doesn't mean + * plug into this. The fact they don't all go via OSS doesn't mean * they don't have to implement the OSS API. There is a lot of logic * to keeping much of the OSS weight out of the code in a compatibility * module, but it's up to the driver to rember to load it... @@ -107,8 +107,7 @@ module_exit(cleanup_soundcore); #define SOUND_STEP 16 -struct sound_unit -{ +struct sound_unit { int unit_minor; const struct file_operations *unit_fops; struct sound_unit *next; @@ -143,8 +142,7 @@ module_param(preclaim_oss, int, 0444); static int soundcore_open(struct inode *, struct file *); -static const struct file_operations soundcore_fops = -{ +static const struct file_operations soundcore_fops = { /* We must have an owner or the module locking fails */ .owner = THIS_MODULE, .open = soundcore_open, @@ -156,70 +154,68 @@ static const struct file_operations soundcore_fops = * join into it. Called with the lock asserted */ -static int __sound_insert_unit(struct sound_unit * s, struct sound_unit **list, const struct file_operations *fops, int index, int low, int top) +static int __sound_insert_unit(struct sound_unit *s, struct sound_unit **list, const struct file_operations *fops, int index, int low, int top) { - int n=low; + int n = low; if (index < 0) { /* first free */ - while (*list && (*list)->unit_minornext); + while (*list && (*list)->unit_minor < n) + list = &((*list)->next); - while(nunit_minor>n) + if (*list == NULL || (*list)->unit_minor > n) break; - list=&((*list)->next); - n+=SOUND_STEP; + list = &((*list)->next); + n += SOUND_STEP; } - if(n>=top) + if (n >= top) return -ENOENT; } else { n = low+(index*16); while (*list) { - if ((*list)->unit_minor==n) + if ((*list)->unit_minor == n) return -EBUSY; - if ((*list)->unit_minor>n) + if ((*list)->unit_minor > n) break; - list=&((*list)->next); + list = &((*list)->next); } - } - + } + /* * Fill it in */ - - s->unit_minor=n; - s->unit_fops=fops; - + + s->unit_minor = n; + s->unit_fops = fops; + /* * Link it */ - - s->next=*list; - *list=s; - - + + s->next = *list; + *list = s; + + return n; } /* * Remove a node from the chain. Called with the lock asserted */ - + static struct sound_unit *__sound_remove_unit(struct sound_unit **list, int unit) { - while(*list) - { - struct sound_unit *p=*list; - if(p->unit_minor==unit) - { - *list=p->next; + while (*list) { + struct sound_unit *p = *list; + + if (p->unit_minor == unit) { + *list = p->next; return p; } - list=&(p->next); + list = &(p->next); } printk(KERN_ERR "Sound device %d went missing!\n", unit); return NULL; @@ -248,7 +244,7 @@ static int sound_insert_unit(struct sound_unit **list, const struct file_operati retry: r = __sound_insert_unit(s, list, fops, index, low, top); spin_unlock(&sound_loader_lock); - + if (r < 0) goto fail; else if (r < SOUND_STEP) @@ -291,7 +287,7 @@ static int sound_insert_unit(struct sound_unit **list, const struct file_operati * completed the removal before their file operations become * invalid. */ - + static void sound_remove_unit(struct sound_unit **list, int unit) { struct sound_unit *p; @@ -335,7 +331,7 @@ static struct sound_unit *chains[SOUND_STEP]; * register_sound_special_device - register a special sound node * @fops: File operations for the driver * @unit: Unit number to allocate - * @dev: device pointer + * @dev: device pointer * * Allocate a special sound device by minor number from the sound * subsystem. @@ -343,7 +339,7 @@ static struct sound_unit *chains[SOUND_STEP]; * Return: The allocated number is returned on success. On failure, * a negative error code is returned. */ - + int register_sound_special_device(const struct file_operations *fops, int unit, struct device *dev) { @@ -353,69 +349,66 @@ int register_sound_special_device(const struct file_operations *fops, int unit, char _name[16]; switch (chain) { - case 0: + case 0: name = "mixer"; break; - case 1: + case 1: name = "sequencer"; if (unit >= SOUND_STEP) goto __unknown; max_unit = unit + 1; break; - case 2: + case 2: name = "midi"; break; - case 3: + case 3: name = "dsp"; break; - case 4: + case 4: name = "audio"; break; - case 5: + case 5: name = "dspW"; break; - case 8: + case 8: name = "sequencer2"; if (unit >= SOUND_STEP) goto __unknown; max_unit = unit + 1; break; - case 9: + case 9: name = "dmmidi"; break; - case 10: + case 10: name = "dmfm"; break; - case 12: + case 12: name = "adsp"; break; - case 13: + case 13: name = "amidi"; break; - case 14: + case 14: name = "admmidi"; break; - default: - { - __unknown: + default: { +__unknown: sprintf(_name, "unknown%d", chain); - if (unit >= SOUND_STEP) - strcat(_name, "-"); - name = _name; + if (unit >= SOUND_STEP) + strcat(_name, "-"); + name = _name; } break; } return sound_insert_unit(&chains[chain], fops, -1, unit, max_unit, name, 0600, dev); } - EXPORT_SYMBOL(register_sound_special_device); int register_sound_special(const struct file_operations *fops, int unit) { return register_sound_special_device(fops, unit, NULL); } - EXPORT_SYMBOL(register_sound_special); /** @@ -435,14 +428,13 @@ int register_sound_mixer(const struct file_operations *fops, int dev) return sound_insert_unit(&chains[0], fops, dev, 0, 128, "mixer", 0600, NULL); } - EXPORT_SYMBOL(register_sound_mixer); /* * DSP's are registered as a triple. Register only one and cheat * in open - see below. */ - + /** * register_sound_dsp - register a DSP device * @fops: File operations for the driver @@ -463,7 +455,6 @@ int register_sound_dsp(const struct file_operations *fops, int dev) return sound_insert_unit(&chains[3], fops, dev, 3, 131, "dsp", 0600, NULL); } - EXPORT_SYMBOL(register_sound_dsp); /** @@ -480,7 +471,6 @@ void unregister_sound_special(int unit) { sound_remove_unit(&chains[unit % SOUND_STEP], unit); } - EXPORT_SYMBOL(unregister_sound_special); /** @@ -495,7 +485,6 @@ void unregister_sound_mixer(int unit) { sound_remove_unit(&chains[0], unit); } - EXPORT_SYMBOL(unregister_sound_mixer); /** @@ -512,20 +501,17 @@ void unregister_sound_dsp(int unit) { sound_remove_unit(&chains[3], unit); } - - EXPORT_SYMBOL(unregister_sound_dsp); static struct sound_unit *__look_for_unit(int chain, int unit) { struct sound_unit *s; - - s=chains[chain]; - while(s && s->unit_minor <= unit) - { - if(s->unit_minor==unit) + + s = chains[chain]; + while (s && s->unit_minor <= unit) { + if (s->unit_minor == unit) return s; - s=s->next; + s = s->next; } return NULL; } @@ -537,14 +523,13 @@ static int soundcore_open(struct inode *inode, struct file *file) struct sound_unit *s; const struct file_operations *new_fops = NULL; - chain=unit&0x0F; - if(chain==4 || chain==5) /* dsp/audio/dsp16 */ - { - unit&=0xF0; - unit|=3; - chain=3; + chain = unit&0x0F; + if (chain == 4 || chain == 5) { /* dsp/audio/dsp16 */ + unit &= 0xF0; + unit |= 3; + chain = 3; } - + spin_lock(&sound_loader_lock); s = __look_for_unit(chain, unit); if (s) @@ -598,8 +583,10 @@ MODULE_ALIAS_CHARDEV_MAJOR(SOUND_MAJOR); static void cleanup_oss_soundcore(void) { - /* We have nothing to really do here - we know the lists must be - empty */ + /* + * We have nothing to really do here - we know the lists must be + * empty + */ unregister_chrdev(SOUND_MAJOR, "sound"); }