diff mbox series

[2/2] ALSA: emu10k1: use high-level I/O in set_filterQ()

Message ID 20230422161021.1143967-2-oswald.buddenhagen@gmx.de (mailing list archive)
State Accepted
Commit 7002cbd625467084f1ef01b6e365e10b51fc4b9f
Headers show
Series [1/2] ALSA: emu10k1: fix SNDRV_EMU10K1_IOCTL_SINGLE_STEP | expand

Commit Message

Oswald Buddenhagen April 22, 2023, 4:10 p.m. UTC
Signed-off-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
---
 include/sound/emu10k1.h              | 3 ++-
 sound/pci/emu10k1/emu10k1_callback.c | 5 +----
 2 files changed, 3 insertions(+), 5 deletions(-)

Comments

Takashi Iwai April 23, 2023, 7:25 a.m. UTC | #1
On Sat, 22 Apr 2023 18:10:21 +0200,
Oswald Buddenhagen wrote:
> 
> Signed-off-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>

Again, you must have a bit more say here...
For example, you didn't write why this change is needed.
You thought it obvious?  No, readers don't know.

BTW, it would be really better if we define some macro for the
highlevel I/O definition.  It's cumbersome to decode and check
manually at review whether the conversion is correct, and it's
error-prone.


thanks,

Takashi
Takashi Iwai April 23, 2023, 2:30 p.m. UTC | #2
On Sun, 23 Apr 2023 10:51:38 +0200,
Oswald Buddenhagen wrote:
> 
> On Sun, Apr 23, 2023 at 09:25:39AM +0200, Takashi Iwai wrote:
> > Again, you must have a bit more say here...
> > For example, you didn't write why this change is needed.
> > You thought it obvious?  No, readers don't know.
> > 
> it is obvious from the patch - the code becomes much shorter and more
> legible.

It's not obvious unless you read the code changes.  Not obvious
whether it's a code refactoring without any functional change, etc.
Such info can be well put in the patch description.

> and someone who just reads the log/blame wouldn't care,
> because it doesn't actually explain anything. but whatever.

Someone already cared.  See?

> On Sun, Apr 23, 2023 at 09:35:46AM +0200, Takashi Iwai wrote:
> > On Sat, 22 Apr 2023 18:10:20 +0200,
> > Oswald Buddenhagen wrote:
> >> 
> >> ... and also use more pre-defined constants on the way (some of which
> >> required adjustment).
> >> 
> >> Signed-off-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
> > 
> > Applied this one, but skipped the patch 2.
> > 
> which is funny, because that commit message misses the obvious "why"
> part as well - it just mentions an additional thing that is unique to
> this patch.
> 
> so to be consistent, you should reject both patches and wait for an
> update.

Right, it was enough for me to reply the same thing again, so I wanted
just to reduce the pile of XXXX.  I'd reject all at the next time :)

> > BTW, it would be really better if we define some macro for the
> > highlevel I/O definition.  It's cumbersome to decode and check
> > manually at review whether the conversion is correct, and it's
> > error-prone.
> > 
> yes, i considered that.
> i also considered many more refactorings, and had to hold myself back -
> there are enough nice-to-have patches in this series as-is.
> i mean, 15 years ago it would have made sense to go crazy, but now the
> hardware is a bit too obsolete to go much beyond what i actually need
> for my project. i'm assuming some people outside the western sphere
> are still using our scrap with linux, but we rarely hear from them, so
> it's hard to know ...

Yeah, that's a dilemma of maintaining the old legacy stuff.


Takashi
diff mbox series

Patch

diff --git a/include/sound/emu10k1.h b/include/sound/emu10k1.h
index 05a09826eef0..8fe80dcee71b 100644
--- a/include/sound/emu10k1.h
+++ b/include/sound/emu10k1.h
@@ -429,7 +429,8 @@ 
 #define DSL_LOOPENDADDR		0x18000007
 
 #define CCCA			0x08		/* Filter Q, interp. ROM, byte size, cur. addr register */
-#define CCCA_RESONANCE		0xf0000000	/* Lowpass filter resonance (Q) height			*/
+#define CCCA_RESONANCE_MASK	0xf0000000	/* Lowpass filter resonance (Q) height			*/
+#define CCCA_RESONANCE		0x041c0008
 #define CCCA_INTERPROM_MASK	0x0e000000	/* Selects passband of interpolation ROM		*/
 						/* 1 == full band, 7 == lowpass				*/
 						/* ROM 0 is used when pitch shifting downward or less	*/
diff --git a/sound/pci/emu10k1/emu10k1_callback.c b/sound/pci/emu10k1/emu10k1_callback.c
index 44f2a61c6be8..9455df18f7b2 100644
--- a/sound/pci/emu10k1/emu10k1_callback.c
+++ b/sound/pci/emu10k1/emu10k1_callback.c
@@ -532,8 +532,5 @@  set_fm2frq2(struct snd_emu10k1 *hw, struct snd_emux_voice *vp)
 static void
 set_filterQ(struct snd_emu10k1 *hw, struct snd_emux_voice *vp)
 {
-	unsigned int val;
-	val = snd_emu10k1_ptr_read(hw, CCCA, vp->ch) & ~CCCA_RESONANCE;
-	val |= (vp->reg.parm.filterQ << 28);
-	snd_emu10k1_ptr_write(hw, CCCA, vp->ch, val);
+	snd_emu10k1_ptr_write(hw, CCCA_RESONANCE, vp->ch, vp->reg.parm.filterQ);
 }