From: Stuart Brady <sdbrady@ntlworld.com>
To: Thibaut VARENE <varenet@esiee.fr>
Cc: parisc-linux@lists.parisc-linux.org
Subject: [parisc-linux] [PATCH] Harmony fixes
Date: Sat, 5 Jun 2004 19:45:26 +0100 [thread overview]
Message-ID: <20040605184526.GA1317@calypso> (raw)
In-Reply-To: <20040527151731.633A93658BE@mail.esiee.fr>
[-- Attachment #1: Type: text/plain, Size: 826 bytes --]
Hi,
Here's the next set of fixes. I should point out an annoyance with the
harmony-s16le patch though: apps that use AFMT_S16_NE are broken by this
patch, because the kernel headers incorrectly define AFMT_S16_NE as
AFMT_S16_LE, when it should be AFMT_S16_BE.
harmony-levellimit.patch:
Volume levels passed to the MIXER_WRITE ioctls are now limited to 100,
which prevents bogus levels from interferring with other mixer channels.
harmony-stereolevels.patch:
The MIXER_READ ioctls now return a right_level for the monophonic mixer
channels that is the same as the left_level.
harmony-s16le.patch:
The AFMT_S16_LE format is now rejected, just as all other unsupported
formats are rejected. As a result, applications which write big-endian
samples with AFMT_S16_LE format set will no longer work.
Thanks,
--
Stuart Brady
[-- Attachment #2: harmony-levellimit.patch --]
[-- Type: text/plain, Size: 372 bytes --]
--- drivers/sound/harmony.c.orig 2004-06-04 15:02:51.000000000 +0100
+++ drivers/sound/harmony.c 2004-06-05 15:27:03.000000000 +0100
@@ -940,6 +940,8 @@
right_level = (value & 0x0000ff00) >> 8;
left_level = value & 0x000000ff;
+ if (right_level > 100) right_level = 100;
+ if (left_level > 100) left_level = 100;
switch (channel) {
case SOUND_MIXER_VOLUME:
[-- Attachment #3: harmony-stereolevels.patch --]
[-- Type: text/plain, Size: 759 bytes --]
--- drivers/sound/harmony.c.orig 2004-06-04 15:02:51.000000000 +0100
+++ drivers/sound/harmony.c 2004-06-05 15:28:17.000000000 +0100
@@ -918,7 +918,7 @@
case SOUND_MIXER_MONITOR:
left_level = (harmony.current_gain & GAIN_MA_MASK) >> GAIN_MA_SHIFT;
left_level = to_oss_level(MAX_MONITOR_LEVEL-left_level, MAX_MONITOR_LEVEL);
- return left_level;
+ return (left_level << 8)+left_level;
}
return -EINVAL;
}
@@ -967,7 +967,7 @@
new_left_level = to_oss_level(MAX_MONITOR_LEVEL-left_level, MAX_MONITOR_LEVEL);
harmony.current_gain = (harmony.current_gain & ~GAIN_MA_MASK) | (left_level << GAIN_MA_SHIFT);
harmony_mixer_set_gain();
- return new_left_level;
+ return (new_left_level << 8) + new_left_level;
}
return -EINVAL;
[-- Attachment #4: harmony-s16le.patch --]
[-- Type: text/plain, Size: 1157 bytes --]
--- drivers/sound/harmony.c.orig 2004-06-04 15:02:51.000000000 +0100
+++ drivers/sound/harmony.c 2004-06-05 15:24:31.000000000 +0100
@@ -655,18 +655,17 @@
switch (ival) {
case AFMT_MU_LAW: new_format = HARMONY_DF_8BIT_ULAW; break;
case AFMT_A_LAW: new_format = HARMONY_DF_8BIT_ALAW; break;
- case AFMT_S16_LE: /* fall through, but not really supported */
- case AFMT_S16_BE: new_format = HARMONY_DF_16BIT_LINEAR;
- ival = AFMT_S16_BE;
- break;
+ case AFMT_S16_BE: new_format = HARMONY_DF_16BIT_LINEAR; break;
default: {
DPRINTK(KERN_WARNING PFX
"unsupported sound format 0x%04x requested.\n",
ival);
- return -EINVAL;
+ ival = AFMT_S16_BE;
+ return put_user(ival, (int *) arg);
}
}
harmony_set_format(new_format);
+ return 0;
} else {
switch (harmony.data_format) {
case HARMONY_DF_8BIT_ULAW: ival = AFMT_MU_LAW; break;
@@ -674,8 +673,8 @@
case HARMONY_DF_16BIT_LINEAR: ival = AFMT_U16_BE; break;
default: ival = 0;
}
+ return put_user(ival, (int *) arg);
}
- return put_user(ival, (int *) arg);
case SOUND_PCM_READ_RATE:
ival = harmony.dac_rate;
[-- Attachment #5: Type: text/plain, Size: 169 bytes --]
_______________________________________________
parisc-linux mailing list
parisc-linux@lists.parisc-linux.org
http://lists.parisc-linux.org/mailman/listinfo/parisc-linux
next prev parent reply other threads:[~2004-06-05 18:45 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20040527150933.GB612@calypso>
[not found] ` <20040527151731.633A93658BE@mail.esiee.fr>
2004-05-27 20:02 ` [parisc-linux] [PATCH] Harmony - better mixer channel names Stuart Brady
2004-05-27 22:02 ` [parisc-linux] [PATCH] Harmony - improved recording source toggling Stuart Brady
2004-06-05 18:45 ` Stuart Brady [this message]
2004-06-08 18:21 ` [parisc-linux] Re: [PATCH] Harmony fixes Thibaut VARENE
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20040605184526.GA1317@calypso \
--to=sdbrady@ntlworld.com \
--cc=parisc-linux@lists.parisc-linux.org \
--cc=varenet@esiee.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox