MODULE_DESCRIPTION("Routines for control of 16-bit SoundBlaster cards and clones");
MODULE_LICENSE("GPL");
-#define chip_t sb_t
-
#ifdef CONFIG_SND_SB16_CSP
static void snd_sb16_csp_playback_prepare(sb_t *chip, snd_pcm_runtime_t *runtime)
{
if (chip->hardware == SB_HW_16CSP) {
- snd_sb_csp_t *csp = snd_magic_cast(snd_sb_csp_t, chip->csp, return);
+ snd_sb_csp_t *csp = chip->csp;
if (csp->running & SNDRV_SB_CSP_ST_LOADED) {
/* manually loaded codec */
static void snd_sb16_csp_capture_prepare(sb_t *chip, snd_pcm_runtime_t *runtime)
{
if (chip->hardware == SB_HW_16CSP) {
- snd_sb_csp_t *csp = snd_magic_cast(snd_sb_csp_t, chip->csp, return);
+ snd_sb_csp_t *csp = chip->csp;
if (csp->running & SNDRV_SB_CSP_ST_LOADED) {
/* manually loaded codec */
static void snd_sb16_csp_update(sb_t *chip)
{
if (chip->hardware == SB_HW_16CSP) {
- snd_sb_csp_t *csp = snd_magic_cast(snd_sb_csp_t, chip->csp, return);
+ snd_sb_csp_t *csp = chip->csp;
if (csp->qpos_changed) {
spin_lock(&chip->reg_lock);
{
/* CSP decoders (QSound excluded) support only 16bit transfers */
if (chip->hardware == SB_HW_16CSP) {
- snd_sb_csp_t *csp = snd_magic_cast(snd_sb_csp_t, chip->csp, return);
+ snd_sb_csp_t *csp = chip->csp;
if (csp->running & SNDRV_SB_CSP_ST_LOADED) {
/* manually loaded codec */
static void snd_sb16_csp_playback_close(sb_t *chip)
{
if ((chip->hardware == SB_HW_16CSP) && (chip->open == SNDRV_SB_CSP_MODE_DSP_WRITE)) {
- snd_sb_csp_t *csp = snd_magic_cast(snd_sb_csp_t, chip->csp, return);
+ snd_sb_csp_t *csp = chip->csp;
if (csp->ops.csp_stop(csp) == 0) {
csp->ops.csp_unuse(csp);
{
/* CSP coders support only 16bit transfers */
if (chip->hardware == SB_HW_16CSP) {
- snd_sb_csp_t *csp = snd_magic_cast(snd_sb_csp_t, chip->csp, return);
+ snd_sb_csp_t *csp = chip->csp;
if (csp->running & SNDRV_SB_CSP_ST_LOADED) {
/* manually loaded codec */
static void snd_sb16_csp_capture_close(sb_t *chip)
{
if ((chip->hardware == SB_HW_16CSP) && (chip->open == SNDRV_SB_CSP_MODE_DSP_READ)) {
- snd_sb_csp_t *csp = snd_magic_cast(snd_sb_csp_t, chip->csp, return);
+ snd_sb_csp_t *csp = chip->csp;
if (csp->ops.csp_stop(csp) == 0) {
csp->ops.csp_unuse(csp);
irqreturn_t snd_sb16dsp_interrupt(int irq, void *dev_id, struct pt_regs *regs)
{
- sb_t *chip = snd_magic_cast(sb_t, dev_id, return IRQ_NONE);
+ sb_t *chip = dev_id;
unsigned char status;
int ok;