Date: Tue, 16 Nov 1999 19:34:04 +0000 (GMT) From: Doug Rabson <dfr@nlsystems.com> To: "Daniel C. Sobral" <dcs@newsguy.com> Cc: current@freebsd.org Subject: Re: Adding soundcards to newpcm Message-ID: <Pine.BSF.4.10.9911161933000.318-100000@salmon.nlsystems.com> In-Reply-To: <38319302.BCB574D8@newsguy.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 17 Nov 1999, Daniel C. Sobral wrote:
> Well, I finally decided to try to get my sound card working again.
> It is not detected as a PNP device, but rather as a motherboard
> resource using PNPBIOS. It is supposed to be an ESS1869 and, indeed,
> I use ESS drivers on Windows. But Compaq obviously decided to lay
> it's fingerprints on the poor thing. Here is the (relavant parts of)
> dmesg:
>
> So, the question is... how do I get the logical identifier for it?
> pnpinfo doesn't show anything.
Use this program. It translates to/from EISAIDs.
#include <sys/param.h>
#include <stdio.h>
int
main(int argc, char** argv)
{
u_int32_t id;
if (argc != 2)
exit(1);
if (!strncmp(argv[1], "0x", 2)) {
id = strtol(argv[1] + 2, NULL, 16);
#define B0(n) (((n) >> 0) & 0xff)
#define B1(n) (((n) >> 8) & 0xff)
#define B2(n) (((n) >> 16) & 0xff)
#define B3(n) (((n) >> 24) & 0xff)
printf("%c%c%c%02x%02x\n",
((B0(id) & 0x7c) >> 2) + 64,
(((B0(id) & 0x03) << 3) | ((B1(id) & 0xe0) >> 5)) + 64,
(B1(id) & 0x1f) + 64, B2(id), B3(id));
} else {
#define PNP_HEXTONUM(c) ((c) >= 'a' \
? (c) - 'a' + 10 \
: ((c) >= 'A' \
? (c) - 'A' + 10 \
: (c) - '0'))
#define PNP_EISAID(s) \
((((s[0] - '@') & 0x1f) << 2) \
| (((s[1] - '@') & 0x18) >> 3) \
| (((s[1] - '@') & 0x07) << 13) \
| (((s[2] - '@') & 0x1f) << 8) \
| (PNP_HEXTONUM(s[4]) << 16) \
| (PNP_HEXTONUM(s[3]) << 20) \
| (PNP_HEXTONUM(s[6]) << 24) \
| (PNP_HEXTONUM(s[5]) << 28))
printf("0x%08x\n", PNP_EISAID(argv[1]));
}
return 0;
}
--
Doug Rabson Mail: dfr@nlsystems.com
Nonlinear Systems Ltd. Phone: +44 181 442 9037
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.10.9911161933000.318-100000>
