Hannu Savolainen пишет: > Hi All, > > It looks like the card_type field is confusing so I renamed it to > feature_mask. In this way it's clear that & should be used to check bits > instead of ==. > >
If so, the full patch: diff -ru oss-v4.0-build1015-src-gpl/kernel/drv/sblive/sblive.c oss-v4.0-build1015-src-gpl.good/kernel/drv/sblive/sblive.c --- oss-v4.0-build1015-src-gpl/kernel/drv/sblive/sblive.c 2008-03-24 07:33:06.000000000 +0200 +++ oss-v4.0-build1015-src-gpl.good/kernel/drv/sblive/sblive.c 2008-05-17 04:09:13.000000000 +0300 @@ -2748,14 +2748,14 @@ /* switch the shared SPDIF/OUT3 to DIGITAL or ANALOG mode */ /* depending on whether the port is SPDIF or analog */ - if (devc->card_type == SB_AUDIGY) + if (devc->card_type & SB_AUDIGY) { reg = INL (devc->osdev, devc->base + 0x18) & ~A_IOCFG_GPOUT0; val = (audigy_digital_din) ? 0x4 : 0; reg |= val; OUTL (devc->osdev, reg, devc->base + 0x18); } - if (devc->card_type == SB_LIVE) /* SBLIVE */ + if (devc->card_type & SB_LIVE) /* SBLIVE */ { reg = INL (devc->osdev, devc->base + 0x14) & ~HCFG_GPOUT0; val = (sblive_digital_din) ? HCFG_GPOUT0 : 0; @@ -3862,7 +3862,7 @@ devc->voice_busy[i * 2] = 1; devc->voice_busy[i * 2 + 1] = 1; portc->resetvol = 0; - if (devc->card_type == SB_LIVE) + if (devc->card_type & SB_LIVE) { /* * Do not enable vmix by default on Live! It would cause enormous diff -ru oss-v4.0-build1015-src-gpl/kernel/drv/sblive/sblive.h oss-v4.0-build1015-src-gpl.good/kernel/drv/sblive/sblive.h --- oss-v4.0-build1015-src-gpl/kernel/drv/sblive/sblive.h 2008-05-17 04:23:29.000000000 +0300 +++ oss-v4.0-build1015-src-gpl.good/kernel/drv/sblive/sblive.h 2008-05-17 04:23:59.000000000 +0300 @@ -220,9 +220,9 @@ #define HLIEH 0x067 /* DW:nocnl */ #define HLIPL 0x068 /* DW:nocnl */ #define HLIPH 0x069 /* DW:nocnl */ -#define GPR0 ((devc->card_type==SB_LIVE)? 0x100:0x400) /* DW:nocnl */ +#define GPR0 ((devc->card_type&SB_LIVE)? 0x100:0x400) /* DW:nocnl */ #define TMA0 0x300 /* Tank memory */ -#define UC0 ((devc->card_type==SB_LIVE) ? 0x400:0x600) /* DSM microcode memory */ +#define UC0 ((devc->card_type&SB_LIVE) ? 0x400:0x600) /* DSM microcode memory */ /* Interrupt enable register */ #define IE 0x0c _______________________________________________ oss-devel mailing list oss-devel@mailman.opensound.com http://mailman.opensound.com/mailman/listinfo/oss-devel