taglinefilesource code
devc132drivers/block/hd.cchar devc;
devc134drivers/block/hd.cdevc = CURRENT ? 'a' + DEVICE_NR(CURRENT->rq_dev) : '?';
devc137drivers/block/hd.cprintk("hd%c: %s: status=0x%02x { ", devc, msg, stat & 0xff);
devc151drivers/block/hd.cprintk("hd%c: %s: error=0x%02x { ", devc, msg, hd_error & 0xff);
devc131drivers/sound/ad1848.cad_read (ad1848_info * devc, int reg)
devc137drivers/sound/ad1848.cwhile (timeout > 0 && inb (devc->base) == 0x80)  /*Are we initializing */
devc142drivers/sound/ad1848.coutb ((unsigned char) (reg & 0xff) | devc->MCE_bit, io_Index_Addr (devc));
devc143drivers/sound/ad1848.cx = inb (io_Indexed_Data (devc));
devc151drivers/sound/ad1848.cad_write (ad1848_info * devc, int reg, int data)
devc157drivers/sound/ad1848.cinb (devc->base) == 0x80)  /*Are we initializing */
devc162drivers/sound/ad1848.coutb ((unsigned char) (reg & 0xff) | devc->MCE_bit, io_Index_Addr (devc));
devc163drivers/sound/ad1848.coutb ((unsigned char) (data & 0xff), io_Indexed_Data (devc));
devc169drivers/sound/ad1848.cwait_for_calibration (ad1848_info * devc)
devc181drivers/sound/ad1848.cwhile (timeout > 0 && inb (devc->base) & 0x80)
devc183drivers/sound/ad1848.cif (inb (devc->base) & 0x80)
devc187drivers/sound/ad1848.cwhile (timeout > 0 && !(ad_read (devc, 11) & 0x20))
devc189drivers/sound/ad1848.cif (!(ad_read (devc, 11) & 0x20))
devc193drivers/sound/ad1848.cwhile (timeout > 0 && ad_read (devc, 11) & 0x20)
devc195drivers/sound/ad1848.cif (ad_read (devc, 11) & 0x20)
devc200drivers/sound/ad1848.cad_mute (ad1848_info * devc)
devc210drivers/sound/ad1848.cprev = devc->saved_regs[i] = ad_read (devc, i);
devc211drivers/sound/ad1848.cad_write (devc, i, prev | 0x80);
devc216drivers/sound/ad1848.cad_unmute (ad1848_info * devc)
devc225drivers/sound/ad1848.cad_write (devc, i, devc->saved_regs[i] & ~0x80);
devc230drivers/sound/ad1848.cad_enter_MCE (ad1848_info * devc)
devc236drivers/sound/ad1848.cwhile (timeout > 0 && inb (devc->base) == 0x80)  /*Are we initializing */
devc242drivers/sound/ad1848.cdevc->MCE_bit = 0x40;
devc243drivers/sound/ad1848.cprev = inb (io_Index_Addr (devc));
devc250drivers/sound/ad1848.coutb (devc->MCE_bit, io_Index_Addr (devc));
devc255drivers/sound/ad1848.cad_leave_MCE (ad1848_info * devc)
devc261drivers/sound/ad1848.cwhile (timeout > 0 && inb (devc->base) == 0x80)  /*Are we initializing */
devc267drivers/sound/ad1848.cdevc->MCE_bit = 0x00;
devc268drivers/sound/ad1848.cprev = inb (io_Index_Addr (devc));
devc269drivers/sound/ad1848.coutb (0x00, io_Index_Addr (devc));  /* Clear the MCE bit */
devc277drivers/sound/ad1848.coutb (0x00, io_Index_Addr (devc));  /* Clear the MCE bit */
devc278drivers/sound/ad1848.cwait_for_calibration (devc);
devc284drivers/sound/ad1848.cad1848_set_recmask (ad1848_info * devc, int mask)
devc289drivers/sound/ad1848.cmask &= devc->supported_rec_devices;
devc300drivers/sound/ad1848.cmask &= ~devc->recmask;  /* Filter out active settings */
devc337drivers/sound/ad1848.cad_write (devc, 0, (ad_read (devc, 0) & 0x3f) | recdev);
devc338drivers/sound/ad1848.cad_write (devc, 1, (ad_read (devc, 1) & 0x3f) | recdev);
devc340drivers/sound/ad1848.cdevc->recmask = mask;
devc362drivers/sound/ad1848.cad1848_mixer_get (ad1848_info * devc, int dev)
devc364drivers/sound/ad1848.cif (!((1 << dev) & devc->supported_devices))
devc367drivers/sound/ad1848.creturn devc->levels[dev];
devc371drivers/sound/ad1848.cad1848_mixer_set (ad1848_info * devc, int dev, int value)
devc401drivers/sound/ad1848.cif (!(devc->supported_devices & (1 << dev)))
devc407drivers/sound/ad1848.cdevc->levels[dev] = retvol;
devc414drivers/sound/ad1848.cval = ad_read (devc, regoffs);
devc416drivers/sound/ad1848.cad_write (devc, regoffs, val);
devc417drivers/sound/ad1848.cdevc->saved_regs[regoffs] = val;
devc427drivers/sound/ad1848.cval = ad_read (devc, regoffs);
devc429drivers/sound/ad1848.cad_write (devc, regoffs, val);
devc430drivers/sound/ad1848.cdevc->saved_regs[regoffs] = val;
devc436drivers/sound/ad1848.cad1848_mixer_reset (ad1848_info * devc)
devc440drivers/sound/ad1848.cswitch (devc->mode)
devc443drivers/sound/ad1848.cdevc->supported_devices = MODE2_MIXER_DEVICES;
devc447drivers/sound/ad1848.cdevc->supported_devices = MODE3_MIXER_DEVICES;
devc451drivers/sound/ad1848.cdevc->supported_devices = MODE1_MIXER_DEVICES;
devc454drivers/sound/ad1848.cdevc->supported_rec_devices = MODE1_REC_DEVICES;
devc457drivers/sound/ad1848.cif (devc->supported_devices & (1 << i))
devc458drivers/sound/ad1848.cad1848_mixer_set (devc, i, default_mixer_levels[i]);
devc459drivers/sound/ad1848.cad1848_set_recmask (devc, SOUND_MASK_MIC);
devc465drivers/sound/ad1848.cad1848_info    *devc;
devc474drivers/sound/ad1848.cdevc = (ad1848_info *) audio_devs[codec_dev]->devc;
devc483drivers/sound/ad1848.creturn snd_ioctl_return ((int *) arg, ad1848_set_recmask (devc, get_fs_long ((long *) arg)));
devc487drivers/sound/ad1848.creturn snd_ioctl_return ((int *) arg, ad1848_mixer_set (devc, cmd & 0xff, get_fs_long ((long *) arg)));
devc496drivers/sound/ad1848.creturn snd_ioctl_return ((int *) arg, devc->recmask);
devc500drivers/sound/ad1848.creturn snd_ioctl_return ((int *) arg, devc->supported_devices);
devc504drivers/sound/ad1848.creturn snd_ioctl_return ((int *) arg, devc->supported_devices & ~(SOUND_MASK_SPEAKER | SOUND_MASK_IMIX));
devc508drivers/sound/ad1848.creturn snd_ioctl_return ((int *) arg, devc->supported_rec_devices);
devc516drivers/sound/ad1848.creturn snd_ioctl_return ((int *) arg, ad1848_mixer_get (devc, cmd & 0xff));
devc555drivers/sound/ad1848.cad1848_info    *devc = NULL;
devc561drivers/sound/ad1848.cdevc = (ad1848_info *) audio_devs[dev]->devc;
devc566drivers/sound/ad1848.cif (devc->opened)
devc574drivers/sound/ad1848.cdevc->dual_dma = 0;
devc578drivers/sound/ad1848.cdevc->dual_dma = 1;
devc581drivers/sound/ad1848.cdevc->intr_active = 0;
devc582drivers/sound/ad1848.cdevc->opened = 1;
devc583drivers/sound/ad1848.cdevc->irq_mode = 0;
devc589drivers/sound/ad1848.cad_mute (devc);
devc598drivers/sound/ad1848.cad1848_info    *devc = (ad1848_info *) audio_devs[dev]->devc;
devc605drivers/sound/ad1848.cdevc->intr_active = 0;
devc609drivers/sound/ad1848.cdevc->opened = 0;
devc610drivers/sound/ad1848.cdevc->irq_mode = 0;
devc612drivers/sound/ad1848.cad_unmute (devc);
devc617drivers/sound/ad1848.cset_speed (ad1848_info * devc, int arg)
devc657drivers/sound/ad1848.cif (devc->mode == MD_1845)  /* AD1845 has different timer than others */
devc664drivers/sound/ad1848.cdevc->speed = arg;
devc665drivers/sound/ad1848.cdevc->speed_bits = speed_table[3].bits;
devc666drivers/sound/ad1848.creturn devc->speed;
devc696drivers/sound/ad1848.cdevc->speed = speed_table[selected].speed;
devc697drivers/sound/ad1848.cdevc->speed_bits = speed_table[selected].bits;
devc698drivers/sound/ad1848.creturn devc->speed;
devc702drivers/sound/ad1848.cset_channels (ad1848_info * devc, int arg)
devc705drivers/sound/ad1848.creturn devc->channels;
devc707drivers/sound/ad1848.cdevc->channels = arg;
devc712drivers/sound/ad1848.cset_format (ad1848_info * devc, int arg)
devc764drivers/sound/ad1848.cif (!(arg & ad_format_mask[devc->mode]))
devc767drivers/sound/ad1848.cdevc->audio_format = arg;
devc772drivers/sound/ad1848.cif ((devc->format_bits = format2bits[i].bits) == 0)
devc773drivers/sound/ad1848.creturn devc->audio_format = AFMT_U8;  /* Was not supported */
devc779drivers/sound/ad1848.cdevc->format_bits = 0;
devc780drivers/sound/ad1848.creturn devc->audio_format = AFMT_U8;
devc786drivers/sound/ad1848.cad1848_info    *devc = (ad1848_info *) audio_devs[dev]->devc;
devc792drivers/sound/ad1848.creturn set_speed (devc, (int) arg);
devc793drivers/sound/ad1848.creturn snd_ioctl_return ((int *) arg, set_speed (devc, get_fs_long ((long *) arg)));
devc797drivers/sound/ad1848.creturn devc->speed;
devc798drivers/sound/ad1848.creturn snd_ioctl_return ((int *) arg, devc->speed);
devc802drivers/sound/ad1848.creturn set_channels (devc, (int) arg + 1) - 1;
devc803drivers/sound/ad1848.creturn snd_ioctl_return ((int *) arg, set_channels (devc, get_fs_long ((long *) arg) + 1) - 1);
devc807drivers/sound/ad1848.creturn set_channels (devc, (int) arg);
devc808drivers/sound/ad1848.creturn snd_ioctl_return ((int *) arg, set_channels (devc, get_fs_long ((long *) arg)));
devc812drivers/sound/ad1848.creturn devc->channels;
devc813drivers/sound/ad1848.creturn snd_ioctl_return ((int *) arg, devc->channels);
devc817drivers/sound/ad1848.creturn set_format (devc, (int) arg);
devc818drivers/sound/ad1848.creturn snd_ioctl_return ((int *) arg, set_format (devc, get_fs_long ((long *) arg)));
devc822drivers/sound/ad1848.creturn devc->audio_format;
devc823drivers/sound/ad1848.creturn snd_ioctl_return ((int *) arg, devc->audio_format);
devc834drivers/sound/ad1848.cad1848_info    *devc = (ad1848_info *) audio_devs[dev]->devc;
devc838drivers/sound/ad1848.cif (devc->audio_format == AFMT_IMA_ADPCM)
devc844drivers/sound/ad1848.cif (devc->audio_format & (AFMT_S16_LE | AFMT_S16_BE))  /* 16 bit data */
devc847drivers/sound/ad1848.cif (devc->channels > 1)
devc851drivers/sound/ad1848.cif (devc->irq_mode & PCM_ENABLE_OUTPUT && audio_devs[dev]->flags & DMA_AUTOMODE &&
devc853drivers/sound/ad1848.ccnt == devc->xfer_count)
devc855drivers/sound/ad1848.cdevc->irq_mode |= PCM_ENABLE_OUTPUT;
devc856drivers/sound/ad1848.cdevc->intr_active = 1;
devc866drivers/sound/ad1848.cad_write (devc, 9, ad_read (devc, 9) & ~0x01);  /* Playback disable */
devc871drivers/sound/ad1848.cad_write (devc, 15, (unsigned char) (cnt & 0xff));
devc872drivers/sound/ad1848.cad_write (devc, 14, (unsigned char) ((cnt >> 8) & 0xff));
devc874drivers/sound/ad1848.cad_unmute (devc);
devc876drivers/sound/ad1848.cdevc->xfer_count = cnt;
devc877drivers/sound/ad1848.cdevc->irq_mode |= PCM_ENABLE_OUTPUT;
devc878drivers/sound/ad1848.cdevc->intr_active = 1;
devc886drivers/sound/ad1848.cad1848_info    *devc = (ad1848_info *) audio_devs[dev]->devc;
devc889drivers/sound/ad1848.cif (devc->audio_format == AFMT_IMA_ADPCM)
devc895drivers/sound/ad1848.cif (devc->audio_format & (AFMT_S16_LE | AFMT_S16_BE))  /* 16 bit data */
devc898drivers/sound/ad1848.cif (devc->channels > 1)
devc902drivers/sound/ad1848.cif (devc->irq_mode & PCM_ENABLE_INPUT && audio_devs[dev]->flags & DMA_AUTOMODE &&
devc904drivers/sound/ad1848.ccnt == devc->xfer_count)
devc906drivers/sound/ad1848.cdevc->irq_mode |= PCM_ENABLE_INPUT;
devc907drivers/sound/ad1848.cdevc->intr_active = 1;
devc918drivers/sound/ad1848.cad_write (devc, 9, ad_read (devc, 9) & ~0x02);  /* Capture disable */
devc922drivers/sound/ad1848.cif (devc->mode == MD_1848 || !devc->dual_dma)    /* Single DMA channel mode */
devc924drivers/sound/ad1848.cad_write (devc, 15, (unsigned char) (cnt & 0xff));
devc925drivers/sound/ad1848.cad_write (devc, 14, (unsigned char) ((cnt >> 8) & 0xff));
devc930drivers/sound/ad1848.cad_write (devc, 31, (unsigned char) (cnt & 0xff));
devc931drivers/sound/ad1848.cad_write (devc, 30, (unsigned char) ((cnt >> 8) & 0xff));
devc934drivers/sound/ad1848.cad_unmute (devc);
devc936drivers/sound/ad1848.cdevc->xfer_count = cnt;
devc937drivers/sound/ad1848.cdevc->irq_mode |= PCM_ENABLE_INPUT;
devc938drivers/sound/ad1848.cdevc->intr_active = 1;
devc948drivers/sound/ad1848.cad1848_info    *devc = (ad1848_info *) audio_devs[dev]->devc;
devc950drivers/sound/ad1848.cif (devc->irq_mode)
devc955drivers/sound/ad1848.cfs = devc->speed_bits | (devc->format_bits << 5);
devc957drivers/sound/ad1848.cif (devc->channels > 1)
devc960drivers/sound/ad1848.cif (devc->mode == MD_1845)  /* Use alternate speed select registers */
devc964drivers/sound/ad1848.cad_write (devc, 22, (devc->speed >> 8) & 0xff);  /* Speed MSB */
devc965drivers/sound/ad1848.cad_write (devc, 23, devc->speed & 0xff);  /* Speed LSB */
devc968drivers/sound/ad1848.cold_fs = ad_read (devc, 8);
devc973drivers/sound/ad1848.cdevc->xfer_count = 0;
devc977drivers/sound/ad1848.cad_enter_MCE (devc);    /* Enables changes to the format select reg */
devc979drivers/sound/ad1848.cad_write (devc, 8, fs);
devc984drivers/sound/ad1848.cwhile (timeout > 0 && inb (devc->base) == 0x80)
devc990drivers/sound/ad1848.cif (devc->mode != MD_1848)
devc992drivers/sound/ad1848.cad_write (devc, 28, fs);
devc998drivers/sound/ad1848.cwhile (timeout > 0 && inb (devc->base) == 0x80)
devc1003drivers/sound/ad1848.cad_leave_MCE (devc);    /*
devc1007drivers/sound/ad1848.cdevc->xfer_count = 0;
devc1010drivers/sound/ad1848.cif (dev == timer_installed && devc->timer_running)
devc1028drivers/sound/ad1848.cad1848_info    *devc = (ad1848_info *) audio_devs[dev]->devc;
devc1036drivers/sound/ad1848.cad_mute (devc);
devc1037drivers/sound/ad1848.cad_enter_MCE (devc);
devc1038drivers/sound/ad1848.cad_write (devc, 9, ad_read (devc, 9) & ~0x03);  /* Stop DMA */
devc1039drivers/sound/ad1848.cad_write (devc, 9, ad_read (devc, 9) & ~0x03);  /* Stop DMA */
devc1041drivers/sound/ad1848.cad_write (devc, 15, 4);  /* Clear DMA counter */
devc1042drivers/sound/ad1848.cad_write (devc, 14, 0);  /* Clear DMA counter */
devc1044drivers/sound/ad1848.cif (devc->mode != MD_1848)
devc1046drivers/sound/ad1848.cad_write (devc, 30, 4);  /* Clear DMA counter */
devc1047drivers/sound/ad1848.cad_write (devc, 31, 0);  /* Clear DMA counter */
devc1050drivers/sound/ad1848.cfor (timeout = 0; timeout < 10000 && !(inb (io_Status (devc)) & 0x80);
devc1053drivers/sound/ad1848.cad_write (devc, 9, ad_read (devc, 9) & ~0x03);  /* Stop DMA */
devc1054drivers/sound/ad1848.coutb (0, io_Status (devc));  /* Clear interrupt status */
devc1055drivers/sound/ad1848.coutb (0, io_Status (devc));  /* Clear interrupt status */
devc1056drivers/sound/ad1848.cdevc->irq_mode = 0;
devc1057drivers/sound/ad1848.cad_leave_MCE (devc);
devc1066drivers/sound/ad1848.cad1848_info    *devc = (ad1848_info *) audio_devs[dev]->devc;
devc1069drivers/sound/ad1848.cif (devc->mode == MD_1848)
devc1078drivers/sound/ad1848.cad_mute (devc);
devc1079drivers/sound/ad1848.cad_write (devc, 9, ad_read (devc, 9) & ~0x02);  /* Stop capture */
devc1082drivers/sound/ad1848.coutb (0, io_Status (devc));  /* Clear interrupt status */
devc1083drivers/sound/ad1848.coutb (0, io_Status (devc));  /* Clear interrupt status */
devc1085drivers/sound/ad1848.cdevc->irq_mode &= ~PCM_ENABLE_INPUT;
devc1093drivers/sound/ad1848.cad1848_info    *devc = (ad1848_info *) audio_devs[dev]->devc;
devc1096drivers/sound/ad1848.cif (devc->mode == MD_1848)
devc1105drivers/sound/ad1848.cad_mute (devc);
devc1106drivers/sound/ad1848.cad_write (devc, 9, ad_read (devc, 9) & ~0x01);  /* Stop playback */
devc1109drivers/sound/ad1848.coutb (0, io_Status (devc));  /* Clear interrupt status */
devc1110drivers/sound/ad1848.coutb (0, io_Status (devc));  /* Clear interrupt status */
devc1112drivers/sound/ad1848.cdevc->irq_mode &= ~PCM_ENABLE_OUTPUT;
devc1120drivers/sound/ad1848.cad1848_info    *devc = (ad1848_info *) audio_devs[dev]->devc;
devc1126drivers/sound/ad1848.cstate &= devc->irq_mode;
devc1128drivers/sound/ad1848.ctmp = ad_read (devc, 9) & ~0x03;
devc1133drivers/sound/ad1848.cad_write (devc, 9, tmp);
devc1144drivers/sound/ad1848.cad1848_info    *devc = &dev_info[nr_ad1848_devs];
devc1163drivers/sound/ad1848.cdevc->base = io_base;
devc1164drivers/sound/ad1848.cdevc->irq_ok = 0;
devc1165drivers/sound/ad1848.cdevc->timer_running = 0;
devc1166drivers/sound/ad1848.cdevc->MCE_bit = 0x40;
devc1167drivers/sound/ad1848.cdevc->irq = 0;
devc1168drivers/sound/ad1848.cdevc->opened = 0;
devc1169drivers/sound/ad1848.cdevc->chip_name = "AD1848";
devc1170drivers/sound/ad1848.cdevc->mode = MD_1848;    /* AD1848 or CS4248 */
devc1171drivers/sound/ad1848.cdevc->osp = osp;
devc1172drivers/sound/ad1848.cdevc->debug_flag = 0;
devc1185drivers/sound/ad1848.cif ((inb (devc->base) & 0x80) != 0x00)  /* Not a AD1848 */
devc1188drivers/sound/ad1848.cinb (devc->base)));
devc1199drivers/sound/ad1848.cad_write (devc, 0, 0xaa);
devc1200drivers/sound/ad1848.cad_write (devc, 1, 0x45);  /* 0x55 with bit 0x10 clear */
devc1202drivers/sound/ad1848.cif ((tmp1 = ad_read (devc, 0)) != 0xaa || (tmp2 = ad_read (devc, 1)) != 0x45)
devc1209drivers/sound/ad1848.cad_write (devc, 0, 0x45);
devc1210drivers/sound/ad1848.cad_write (devc, 1, 0xaa);
devc1212drivers/sound/ad1848.cif ((tmp1 = ad_read (devc, 0)) != 0x45 || (tmp2 = ad_read (devc, 1)) != 0xaa)
devc1224drivers/sound/ad1848.ctmp = ad_read (devc, 12);
devc1225drivers/sound/ad1848.cad_write (devc, 12, (~tmp) & 0x0f);
devc1227drivers/sound/ad1848.cif ((tmp & 0x0f) != ((tmp1 = ad_read (devc, 12)) & 0x0f))
devc1246drivers/sound/ad1848.cad_write (devc, 12, 0);  /* Mode2=disabled */
devc1249drivers/sound/ad1848.cif ((tmp1 = ad_read (devc, i)) != (tmp2 = ad_read (devc, i + 16)))
devc1261drivers/sound/ad1848.cad_write (devc, 12, 0x40);  /* Set mode2, clear 0x80 */
devc1263drivers/sound/ad1848.ctmp1 = ad_read (devc, 12);
devc1269drivers/sound/ad1848.cdevc->chip_name = "CS4248";  /* Our best knowledge just now */
devc1280drivers/sound/ad1848.cad_write (devc, 16, 0);  /* Set I16 to known value */
devc1282drivers/sound/ad1848.cad_write (devc, 0, 0x45);
devc1283drivers/sound/ad1848.cif ((tmp1 = ad_read (devc, 16)) != 0x45)  /* No change -> CS4231? */
devc1286drivers/sound/ad1848.cad_write (devc, 0, 0xaa);
devc1287drivers/sound/ad1848.cif ((tmp1 = ad_read (devc, 16)) == 0xaa)  /* Rotten bits? */
devc1298drivers/sound/ad1848.ctmp1 = ad_read (devc, 25);  /* Original bits */
devc1299drivers/sound/ad1848.cad_write (devc, 25, ~tmp1);  /* Invert all bits */
devc1300drivers/sound/ad1848.cif ((ad_read (devc, 25) & 0xe7) == (tmp1 & 0xe7))
devc1307drivers/sound/ad1848.cdevc->chip_name = "CS4231";
devc1309drivers/sound/ad1848.cdevc->mode = MD_4231;
devc1318drivers/sound/ad1848.cid = ad_read (devc, 25) & 0xe7;
devc1324drivers/sound/ad1848.cdevc->chip_name = "CS4231A";
devc1325drivers/sound/ad1848.cdevc->mode = MD_4231A;
devc1329drivers/sound/ad1848.cdevc->chip_name = "CS4232";
devc1330drivers/sound/ad1848.cdevc->mode = MD_4232;
devc1334drivers/sound/ad1848.cdevc->chip_name = "CS4232A";
devc1335drivers/sound/ad1848.cdevc->mode = MD_4232;
devc1347drivers/sound/ad1848.cunsigned char   tmp = ad_read (devc, 23);
devc1349drivers/sound/ad1848.cad_write (devc, 23, ~tmp);
devc1350drivers/sound/ad1848.cif (ad_read (devc, 23) != tmp)  /* AD1845 ? */
devc1352drivers/sound/ad1848.cdevc->chip_name = "AD1845";
devc1353drivers/sound/ad1848.cdevc->mode = MD_1845;
devc1356drivers/sound/ad1848.cad_write (devc, 23, tmp);  /* Restore */
devc1361drivers/sound/ad1848.cdevc->mode = MD_4231;
devc1365drivers/sound/ad1848.cad_write (devc, 25, tmp1);  /* Restore bits */
devc1374drivers/sound/ad1848.cif (devc->mode != MD_1848)
devc1405drivers/sound/ad1848.cad1848_info    *devc = &dev_info[nr_ad1848_devs];
devc1410drivers/sound/ad1848.crequest_region (devc->base, 4, devc->chip_name);
devc1412drivers/sound/ad1848.cdevc->irq = (irq > 0) ? irq : 0;
devc1413drivers/sound/ad1848.cdevc->opened = 0;
devc1414drivers/sound/ad1848.cdevc->timer_ticks = 0;
devc1415drivers/sound/ad1848.cdevc->osp = osp;
devc1425drivers/sound/ad1848.cad_write (devc, i, init_values[i]);
devc1427drivers/sound/ad1848.cad_mute (devc);    /* Initialize some variables */
devc1428drivers/sound/ad1848.cad_unmute (devc);    /* Leave it unmuted now */
devc1430drivers/sound/ad1848.cif (devc->mode > MD_1848)
devc1434drivers/sound/ad1848.cad_write (devc, 9, ad_read (devc, 9) | 0x04);    /* Single DMA mode */
devc1439drivers/sound/ad1848.cad_write (devc, 9, ad_read (devc, 9) & ~0x04);  /* Dual DMA mode */
devc1443drivers/sound/ad1848.cad_write (devc, 12, ad_read (devc, 12) | 0x40);  /* Mode2 = enabled */
devc1445drivers/sound/ad1848.cad_write (devc, i, init_values[i]);
devc1448drivers/sound/ad1848.cif (devc->mode == MD_1845)
devc1449drivers/sound/ad1848.cad_write (devc, 27, ad_read (devc, 27) | 0x08);    /* Alternate freq select enabled */
devc1454drivers/sound/ad1848.cad_write (devc, 9, ad_read (devc, 9) | 0x04);  /* Single DMA mode */
devc1457drivers/sound/ad1848.coutb (0, io_Status (devc));  /* Clear pending interrupts */
devc1461drivers/sound/ad1848.c"%s (%s)", name, devc->chip_name);
devc1464drivers/sound/ad1848.c"Generic audio codec (%s)", devc->chip_name);
devc1467drivers/sound/ad1848.cdevc->base, devc->irq, dma_playback, dma_capture);
devc1474drivers/sound/ad1848.caudio_devs[my_dev]->devc = devc;
devc1475drivers/sound/ad1848.cirq2dev[irq] = devc->dev_no = my_dev;
devc1476drivers/sound/ad1848.cif (snd_set_irq_handler (devc->irq, ad1848_interrupt,
devc1478drivers/sound/ad1848.cdevc->osp) < 0)
devc1484drivers/sound/ad1848.cif (devc->mode != MD_1848)
devc1487drivers/sound/ad1848.cunsigned char   tmp = ad_read (devc, 16);
devc1489drivers/sound/ad1848.cdevc->timer_ticks = 0;
devc1491drivers/sound/ad1848.cad_write (devc, 21, 0x00);  /* Timer msb */
devc1492drivers/sound/ad1848.cad_write (devc, 20, 0x10);  /* Timer lsb */
devc1494drivers/sound/ad1848.cad_write (devc, 16, tmp | 0x40);  /* Enable timer */
devc1495drivers/sound/ad1848.cfor (x = 0; x < 100000 && devc->timer_ticks == 0; x++);
devc1496drivers/sound/ad1848.cad_write (devc, 16, tmp & ~0x40);    /* Disable timer */
devc1498drivers/sound/ad1848.cif (devc->timer_ticks == 0)
devc1501drivers/sound/ad1848.cdevc->irq_ok = 1;
devc1505drivers/sound/ad1848.cdevc->irq_ok = 1;  /* Couldn't test. assume it's OK */
devc1507drivers/sound/ad1848.cdevc->irq_ok = 1;
devc1511drivers/sound/ad1848.cirq2dev[-irq] = devc->dev_no = my_dev;
devc1516drivers/sound/ad1848.caudio_devs[my_dev]->devc = devc;
devc1517drivers/sound/ad1848.caudio_devs[my_dev]->format_mask = ad_format_mask[devc->mode];
devc1521drivers/sound/ad1848.cif (devc->mode != MD_1848 && devc->irq_ok)
devc1541drivers/sound/ad1848.cad_enter_MCE (devc);  /* In case the bit was off */
devc1542drivers/sound/ad1848.cad_leave_MCE (devc);
devc1549drivers/sound/ad1848.cad1848_mixer_reset (devc);
devc1560drivers/sound/ad1848.cad1848_info    *devc = NULL;
devc1562drivers/sound/ad1848.cfor (i = 0; devc == NULL && i < nr_ad1848_devs; i++)
devc1565drivers/sound/ad1848.cdevc = &dev_info[i];
devc1566drivers/sound/ad1848.cdev = devc->dev_no;
devc1569drivers/sound/ad1848.cif (devc != NULL)
devc1571drivers/sound/ad1848.crelease_region (devc->base, 4);
devc1576drivers/sound/ad1848.csnd_release_irq (devc->irq);
devc1593drivers/sound/ad1848.cad1848_info    *devc;
devc1617drivers/sound/ad1848.cdevc = (ad1848_info *) audio_devs[dev]->devc;
devc1620drivers/sound/ad1848.cdevc = (ad1848_info *) audio_devs[dev]->devc;
devc1622drivers/sound/ad1848.cstatus = inb (io_Status (devc));
devc1630drivers/sound/ad1848.cif (devc->mode != MD_1848)
devc1631drivers/sound/ad1848.calt_stat = ad_read (devc, 24);
devc1633drivers/sound/ad1848.cif (devc->opened && devc->irq_mode & PCM_ENABLE_INPUT && alt_stat & 0x20)
devc1638drivers/sound/ad1848.cif (devc->opened && devc->irq_mode & PCM_ENABLE_OUTPUT &&
devc1644drivers/sound/ad1848.cif (devc->mode != MD_1848 && alt_stat & 0x40)  /* Timer interrupt */
devc1646drivers/sound/ad1848.cdevc->timer_ticks++;
devc1648drivers/sound/ad1848.cif (timer_installed == dev && devc->timer_running)
devc1654drivers/sound/ad1848.cif (devc->mode != MD_1848)
devc1655drivers/sound/ad1848.cad_write (devc, 24, ad_read (devc, 24) & ~alt_stat);  /* Selective ack */
devc1657drivers/sound/ad1848.coutb (0, io_Status (devc));  /* Clear interrupt status */
devc1857drivers/sound/ad1848.cad1848_info    *devc = (ad1848_info *) audio_devs[dev]->devc;
devc1875drivers/sound/ad1848.cif (devc->mode == MD_1845)
devc1877drivers/sound/ad1848.celse if (ad_read (devc, 8) & 0x01)
devc1890drivers/sound/ad1848.cad_write (devc, 21, (divider >> 8) & 0xff);  /* Set upper bits */
devc1891drivers/sound/ad1848.cad_write (devc, 20, divider & 0xff);  /* Set lower bits */
devc1892drivers/sound/ad1848.cad_write (devc, 16, ad_read (devc, 16) | 0x40);  /* Start the timer */
devc1893drivers/sound/ad1848.cdevc->timer_running = 1;
devc1915drivers/sound/ad1848.cad1848_info    *devc = (ad1848_info *) audio_devs[dev]->devc;
devc1919drivers/sound/ad1848.cad_write (devc, 16, ad_read (devc, 16) & ~0x40);
devc1920drivers/sound/ad1848.cdevc->timer_running = 0;
devc1928drivers/sound/ad1848.cad1848_info    *devc = (ad1848_info *) audio_devs[dev]->devc;
devc1935drivers/sound/ad1848.cad_write (devc, 16, ad_read (devc, 16) | 0x40);
devc1936drivers/sound/ad1848.cdevc->timer_running = 1;
devc99drivers/sound/audio.copen (audio_devs[dev]->coproc->devc, COPR_PCM)) < 0)
devc154drivers/sound/audio.caudio_devs[dev]->coproc->close (audio_devs[dev]->coproc->devc, COPR_PCM);
devc347drivers/sound/audio.creturn audio_devs[dev]->coproc->ioctl (audio_devs[dev]->coproc->devc, cmd, arg, 0);
devc137drivers/sound/dev_table.hint (*open) (void *devc, int sub_device);
devc138drivers/sound/dev_table.hvoid (*close) (void *devc, int sub_device);
devc139drivers/sound/dev_table.hint (*ioctl) (void *devc, unsigned int cmd, caddr_t arg, int local);
devc140drivers/sound/dev_table.hvoid (*reset) (void *devc);
devc142drivers/sound/dev_table.hvoid *devc;    /* Driver specific info */
devc154drivers/sound/dev_table.hvoid *devc;    /* Driver specific info */
devc481drivers/sound/midibuf.creturn midi_devs[dev]->coproc->ioctl (midi_devs[dev]->coproc->devc, cmd, arg, 0);
devc92drivers/sound/mpu401.cmpu401_status (struct mpu_config *devc)
devc94drivers/sound/mpu401.creturn inb (STATPORT (devc->base));
devc96drivers/sound/mpu401.c#define input_avail(devc)    (!(mpu401_status(devc)&INPUT_AVAIL))
devc97drivers/sound/mpu401.c#define output_ready(devc)    (!(mpu401_status(devc)&OUTPUT_READY))
devc99drivers/sound/mpu401.cwrite_command (struct mpu_config *devc, unsigned char cmd)
devc101drivers/sound/mpu401.coutb (cmd, COMDPORT (devc->base));
devc104drivers/sound/mpu401.cread_data (struct mpu_config *devc)
devc106drivers/sound/mpu401.creturn inb (DATAPORT (devc->base));
devc110drivers/sound/mpu401.cwrite_data (struct mpu_config *devc, unsigned char byte)
devc112drivers/sound/mpu401.coutb (byte, DATAPORT (devc->base));
devc130drivers/sound/mpu401.cstatic int      reset_mpu401 (struct mpu_config *devc);
devc131drivers/sound/mpu401.cstatic void     set_uart_mode (int dev, struct mpu_config *devc, int arg);
devc135drivers/sound/mpu401.cstatic void     timer_ext_event (struct mpu_config *devc, int event, int parm);
devc186drivers/sound/mpu401.cmpu_input_scanner (struct mpu_config *devc, unsigned char midic)
devc189drivers/sound/mpu401.cswitch (devc->m_state)
devc203drivers/sound/mpu401.cif (devc->timer_flag)
devc227drivers/sound/mpu401.cdevc->m_state = ST_SYSMSG;
devc234drivers/sound/mpu401.cdevc->m_state = ST_TIMED;
devc245drivers/sound/mpu401.cdevc->m_state = ST_DATABYTE;
devc250drivers/sound/mpu401.cmsg = ((int) (devc->last_status & 0xf0) >> 4);
devc252drivers/sound/mpu401.cdevc->m_left = len_tab[msg] - 1;
devc254drivers/sound/mpu401.cdevc->m_ptr = 2;
devc255drivers/sound/mpu401.cdevc->m_buf[0] = devc->last_status;
devc256drivers/sound/mpu401.cdevc->m_buf[1] = midic;
devc258drivers/sound/mpu401.cif (devc->m_left <= 0)
devc260drivers/sound/mpu401.cdevc->m_state = ST_INIT;
devc261drivers/sound/mpu401.cdo_midi_msg (devc->synthno, devc->m_buf, devc->m_ptr);
devc262drivers/sound/mpu401.cdevc->m_ptr = 0;
devc267drivers/sound/mpu401.cdevc->m_state = ST_INIT;
devc289drivers/sound/mpu401.cdevc->last_status = midic;
devc292drivers/sound/mpu401.cdevc->m_left = len_tab[msg];
devc294drivers/sound/mpu401.cdevc->m_ptr = 1;
devc295drivers/sound/mpu401.cdevc->m_buf[0] = midic;
devc297drivers/sound/mpu401.cif (devc->m_left <= 0)
devc299drivers/sound/mpu401.cdevc->m_state = ST_INIT;
devc300drivers/sound/mpu401.cdo_midi_msg (devc->synthno, devc->m_buf, devc->m_ptr);
devc301drivers/sound/mpu401.cdevc->m_ptr = 0;
devc312drivers/sound/mpu401.cdevc->m_state = ST_SYSEX;
devc316drivers/sound/mpu401.cdevc->m_state = ST_MTC;
devc320drivers/sound/mpu401.cdevc->m_state = ST_SONGPOS;
devc321drivers/sound/mpu401.cdevc->m_ptr = 0;
devc325drivers/sound/mpu401.cdevc->m_state = ST_SONGSEL;
devc330drivers/sound/mpu401.cdevc->m_state = ST_INIT;
devc337drivers/sound/mpu401.cdevc->m_state = ST_INIT;
devc338drivers/sound/mpu401.ctimer_ext_event (devc, TMR_CLOCK, 0);
devc342drivers/sound/mpu401.cdevc->m_state = ST_INIT;
devc343drivers/sound/mpu401.ctimer_ext_event (devc, TMR_START, 0);
devc347drivers/sound/mpu401.cdevc->m_state = ST_INIT;
devc348drivers/sound/mpu401.ctimer_ext_event (devc, TMR_CONTINUE, 0);
devc352drivers/sound/mpu401.cdevc->m_state = ST_INIT;
devc353drivers/sound/mpu401.ctimer_ext_event (devc, TMR_STOP, 0);
devc358drivers/sound/mpu401.cdevc->m_state = ST_INIT;
devc363drivers/sound/mpu401.cdevc->m_state = ST_INIT;
devc368drivers/sound/mpu401.cdevc->m_state = ST_INIT;
devc373drivers/sound/mpu401.cdevc->m_state = ST_INIT;
devc381drivers/sound/mpu401.cdevc->m_state = ST_INIT;
devc388drivers/sound/mpu401.cBUFTEST (devc);
devc389drivers/sound/mpu401.cdevc->m_buf[devc->m_ptr++] = midic;
devc390drivers/sound/mpu401.cif (devc->m_ptr == 2)
devc392drivers/sound/mpu401.cdevc->m_state = ST_INIT;
devc393drivers/sound/mpu401.cdevc->m_ptr = 0;
devc394drivers/sound/mpu401.ctimer_ext_event (devc, TMR_SPP,
devc395drivers/sound/mpu401.c((devc->m_buf[1] & 0x7f) << 7) |
devc396drivers/sound/mpu401.c(devc->m_buf[0] & 0x7f));
devc401drivers/sound/mpu401.cBUFTEST (devc);
devc402drivers/sound/mpu401.cdevc->m_buf[devc->m_ptr++] = midic;
devc403drivers/sound/mpu401.cif ((--devc->m_left) <= 0)
devc405drivers/sound/mpu401.cdevc->m_state = ST_INIT;
devc406drivers/sound/mpu401.cdo_midi_msg (devc->synthno, devc->m_buf, devc->m_ptr);
devc407drivers/sound/mpu401.cdevc->m_ptr = 0;
devc412drivers/sound/mpu401.cprintk ("Bad state %d ", devc->m_state);
devc413drivers/sound/mpu401.cdevc->m_state = ST_INIT;
devc420drivers/sound/mpu401.cmpu401_input_loop (struct mpu_config *devc)
devc428drivers/sound/mpu401.cbusy = devc->m_busy;
devc429drivers/sound/mpu401.cdevc->m_busy = 1;
devc437drivers/sound/mpu401.cwhile (input_avail (devc) && n-- > 0)
devc439drivers/sound/mpu401.cunsigned char   c = read_data (devc);
devc441drivers/sound/mpu401.cif (devc->mode == MODE_SYNTH)
devc443drivers/sound/mpu401.cmpu_input_scanner (devc, c);
devc445drivers/sound/mpu401.celse if (devc->opened & OPEN_READ && devc->inputintr != NULL)
devc446drivers/sound/mpu401.cdevc->inputintr (devc->devno, c);
devc449drivers/sound/mpu401.cdevc->m_busy = 0;
devc455drivers/sound/mpu401.cstruct mpu_config *devc;
devc485drivers/sound/mpu401.cdevc = &dev_conf[dev];
devc488drivers/sound/mpu401.cdevc = &dev_conf[dev];
devc490drivers/sound/mpu401.cif (input_avail (devc))
devc491drivers/sound/mpu401.cif (devc->base != 0 && (devc->opened & OPEN_READ || devc->mode == MODE_SYNTH))
devc492drivers/sound/mpu401.cmpu401_input_loop (devc);
devc496drivers/sound/mpu401.cread_data (devc);
devc508drivers/sound/mpu401.cstruct mpu_config *devc;
devc513drivers/sound/mpu401.cdevc = &dev_conf[dev];
devc515drivers/sound/mpu401.cif (devc->opened)
devc528drivers/sound/mpu401.cif (!devc->initialized)
devc530drivers/sound/mpu401.cif (mpu401_status (devc) == 0xff)    /* Bus float */
devc535drivers/sound/mpu401.creset_mpu401 (devc);
devc538drivers/sound/mpu401.cirq2dev[devc->irq] = dev;
devc542drivers/sound/mpu401.copen (midi_devs[dev]->coproc->devc, COPR_MIDI)) < 0)
devc549drivers/sound/mpu401.cset_uart_mode (dev, devc, 1);
devc550drivers/sound/mpu401.cdevc->mode = MODE_MIDI;
devc551drivers/sound/mpu401.cdevc->synthno = 0;
devc553drivers/sound/mpu401.cmpu401_input_loop (devc);
devc555drivers/sound/mpu401.cdevc->inputintr = input;
devc556drivers/sound/mpu401.cdevc->opened = mode;
devc564drivers/sound/mpu401.cstruct mpu_config *devc;
devc566drivers/sound/mpu401.cdevc = &dev_conf[dev];
devc568drivers/sound/mpu401.cif (devc->uart_mode)
devc569drivers/sound/mpu401.creset_mpu401 (devc);  /*
devc572drivers/sound/mpu401.cdevc->mode = 0;
devc574drivers/sound/mpu401.cdevc->inputintr = NULL;
devc577drivers/sound/mpu401.cmidi_devs[dev]->coproc->close (midi_devs[dev]->coproc->devc, COPR_MIDI);
devc578drivers/sound/mpu401.cdevc->opened = 0;
devc587drivers/sound/mpu401.cstruct mpu_config *devc;
devc589drivers/sound/mpu401.cdevc = &dev_conf[dev];
devc596drivers/sound/mpu401.cfor (timeout = 30000; timeout > 0 && !output_ready (devc); timeout--);
devc600drivers/sound/mpu401.cif (!output_ready (devc))
devc607drivers/sound/mpu401.cwrite_data (devc, midi_byte);
devc618drivers/sound/mpu401.cstruct mpu_config *devc;
devc620drivers/sound/mpu401.cdevc = &dev_conf[dev];
devc622drivers/sound/mpu401.cif (devc->uart_mode)    /*
devc633drivers/sound/mpu401.cif (input_avail (devc))
devc634drivers/sound/mpu401.cmpu401_input_loop (devc);
devc652drivers/sound/mpu401.cif (!output_ready (devc))
devc658drivers/sound/mpu401.cwrite_command (devc, cmd->cmd);
devc662drivers/sound/mpu401.cif (input_avail (devc))
devc664drivers/sound/mpu401.cif (devc->opened && devc->mode == MODE_SYNTH)
devc666drivers/sound/mpu401.cif (mpu_input_scanner (devc, read_data (devc)) == MPU_ACK)
devc671drivers/sound/mpu401.cif (read_data (devc) == MPU_ACK)
devc686drivers/sound/mpu401.cfor (timeout = 3000; timeout > 0 && !output_ready (devc); timeout--);
devc704drivers/sound/mpu401.cif (input_avail (devc))
devc706drivers/sound/mpu401.ccmd->data[i] = read_data (devc);
devc745drivers/sound/mpu401.cstruct mpu_config *devc = &dev_conf[dev];
devc747drivers/sound/mpu401.cif (devc->uart_mode)
devc792drivers/sound/mpu401.cstruct mpu_config *devc;
devc794drivers/sound/mpu401.cdevc = &dev_conf[dev];
devc804drivers/sound/mpu401.cif (!(devc->capabilities & MPU_CAP_INTLG))  /* No intelligent mode */
devc809drivers/sound/mpu401.cset_uart_mode (dev, devc, !get_fs_long ((long *) arg));
devc851drivers/sound/mpu401.cstruct mpu_config *devc;
devc858drivers/sound/mpu401.cdevc = &dev_conf[midi_dev];
devc882drivers/sound/mpu401.cstruct mpu_config *devc;
devc891drivers/sound/mpu401.cdevc = &dev_conf[midi_dev];
devc900drivers/sound/mpu401.cif (!devc->initialized)
devc902drivers/sound/mpu401.cif (mpu401_status (devc) == 0xff)    /* Bus float */
devc907drivers/sound/mpu401.creset_mpu401 (devc);
devc910drivers/sound/mpu401.cif (devc->opened)
devc916drivers/sound/mpu401.cdevc->mode = MODE_SYNTH;
devc917drivers/sound/mpu401.cdevc->synthno = dev;
devc919drivers/sound/mpu401.cdevc->inputintr = NULL;
devc920drivers/sound/mpu401.cirq2dev[devc->irq] = midi_dev;
devc924drivers/sound/mpu401.copen (midi_devs[midi_dev]->coproc->devc, COPR_MIDI)) < 0)
devc931drivers/sound/mpu401.cdevc->opened = mode;
devc932drivers/sound/mpu401.creset_mpu401 (devc);
devc948drivers/sound/mpu401.cstruct mpu_config *devc;
devc952drivers/sound/mpu401.cdevc = &dev_conf[midi_dev];
devc956drivers/sound/mpu401.cdevc->inputintr = NULL;
devc959drivers/sound/mpu401.cmidi_devs[midi_dev]->coproc->close (midi_devs[midi_dev]->coproc->devc, COPR_MIDI);
devc960drivers/sound/mpu401.cdevc->opened = 0;
devc961drivers/sound/mpu401.cdevc->mode = 0;
devc1016drivers/sound/mpu401.cmpu401_chk_version (struct mpu_config *devc)
devc1021drivers/sound/mpu401.cdevc->version = devc->revision = 0;
devc1037drivers/sound/mpu401.cdevc->version = tmp;
devc1041drivers/sound/mpu401.cdevc->version = 0;
devc1045drivers/sound/mpu401.cdevc->revision = tmp;
devc1056drivers/sound/mpu401.cstruct mpu_config *devc;
devc1064drivers/sound/mpu401.cdevc = &dev_conf[num_midis];
devc1066drivers/sound/mpu401.cdevc->base = hw_config->io_base;
devc1067drivers/sound/mpu401.cdevc->osp = hw_config->osp;
devc1068drivers/sound/mpu401.cdevc->irq = hw_config->irq;
devc1069drivers/sound/mpu401.cdevc->opened = 0;
devc1070drivers/sound/mpu401.cdevc->uart_mode = 0;
devc1071drivers/sound/mpu401.cdevc->initialized = 0;
devc1072drivers/sound/mpu401.cdevc->version = 0;
devc1073drivers/sound/mpu401.cdevc->revision = 0;
devc1074drivers/sound/mpu401.cdevc->capabilities = 0;
devc1075drivers/sound/mpu401.cdevc->timer_flag = 0;
devc1076drivers/sound/mpu401.cdevc->m_busy = 0;
devc1077drivers/sound/mpu401.cdevc->m_state = ST_INIT;
devc1078drivers/sound/mpu401.cdevc->shared_irq = hw_config->always_detect;
devc1079drivers/sound/mpu401.cdevc->irq = hw_config->irq;
devc1081drivers/sound/mpu401.cif (devc->irq < 0)
devc1083drivers/sound/mpu401.cdevc->irq *= -1;
devc1084drivers/sound/mpu401.cdevc->shared_irq = 1;
devc1086drivers/sound/mpu401.cirq2dev[devc->irq] = num_midis;
devc1091drivers/sound/mpu401.cif (!reset_mpu401 (devc))
devc1097drivers/sound/mpu401.cif (!devc->shared_irq)
devc1098drivers/sound/mpu401.cif (snd_set_irq_handler (devc->irq, mpuintr, "mpu401", devc->osp) < 0)
devc1100drivers/sound/mpu401.cprintk ("MPU401: Failed to allocate IRQ%d\n", devc->irq);
devc1106drivers/sound/mpu401.cmpu401_chk_version (devc);
devc1107drivers/sound/mpu401.cif (devc->version == 0)
devc1108drivers/sound/mpu401.cmpu401_chk_version (devc);
devc1114drivers/sound/mpu401.cif (devc->version != 0)
devc1117drivers/sound/mpu401.cdevc->capabilities |= MPU_CAP_INTLG;  /* Supports intelligent mode */
devc1131drivers/sound/mpu401.cif (!(devc->capabilities & MPU_CAP_INTLG))  /* No intelligent mode */
devc1157drivers/sound/mpu401.cif (devc->version == 0x20 && devc->revision >= 0x07)  /* MusicQuest interface */
devc1159drivers/sound/mpu401.cint             ports = (devc->revision & 0x08) ? 32 : 16;
devc1161drivers/sound/mpu401.cdevc->capabilities |= MPU_CAP_SYNC | MPU_CAP_SMPTE |
devc1164drivers/sound/mpu401.crevision_char = (devc->revision == 0x7f) ? 'M' : ' ';
devc1174drivers/sound/mpu401.crevision_char = devc->revision ? devc->revision + '@' : ' ';
devc1175drivers/sound/mpu401.cif ((int) devc->revision > ('Z' - '@'))
devc1178drivers/sound/mpu401.cdevc->capabilities |= MPU_CAP_SYNC | MPU_CAP_FSK;
devc1182drivers/sound/mpu401.c(int) (devc->version & 0xf0) >> 4,
devc1183drivers/sound/mpu401.cdevc->version & 0x0f,
devc1193drivers/sound/mpu401.cmpu401_synth_operations[num_midis]->midi_dev = devc->devno = num_midis;
devc1194drivers/sound/mpu401.cmpu401_synth_operations[devc->devno]->info =
devc1195drivers/sound/mpu401.c&mpu_synth_info[devc->devno];
devc1197drivers/sound/mpu401.cif (devc->capabilities & MPU_CAP_INTLG)  /* Intelligent mode */
devc1200drivers/sound/mpu401.cirq2dev[devc->irq] = num_midis;
devc1201drivers/sound/mpu401.cmidi_devs[num_midis++] = &mpu401_midi_operations[devc->devno];
devc1206drivers/sound/mpu401.creset_mpu401 (struct mpu_config *devc)
devc1219drivers/sound/mpu401.ctimeout_limit = devc->initialized ? 30000 : 100000;
devc1220drivers/sound/mpu401.cdevc->initialized = 1;
devc1225drivers/sound/mpu401.cok = output_ready (devc);
devc1227drivers/sound/mpu401.cwrite_command (devc, MPU_RESET);  /*
devc1240drivers/sound/mpu401.cif (input_avail (devc))
devc1241drivers/sound/mpu401.cif (read_data (devc) == MPU_ACK)
devc1248drivers/sound/mpu401.cdevc->m_state = ST_INIT;
devc1249drivers/sound/mpu401.cdevc->m_ptr = 0;
devc1250drivers/sound/mpu401.cdevc->m_left = 0;
devc1251drivers/sound/mpu401.cdevc->last_status = 0;
devc1252drivers/sound/mpu401.cdevc->uart_mode = 0;
devc1258drivers/sound/mpu401.cset_uart_mode (int dev, struct mpu_config *devc, int arg)
devc1260drivers/sound/mpu401.cif (!arg && (devc->capabilities & MPU_CAP_INTLG))
devc1265drivers/sound/mpu401.cif ((devc->uart_mode == 0) == (arg == 0))
devc1270drivers/sound/mpu401.creset_mpu401 (devc);    /* This exits the uart mode */
devc1276drivers/sound/mpu401.cprintk ("MPU%d: Can't enter UART mode\n", devc->devno);
devc1277drivers/sound/mpu401.cdevc->uart_mode = 0;
devc1281drivers/sound/mpu401.cdevc->uart_mode = arg;
devc1744drivers/sound/mpu401.ctimer_ext_event (struct mpu_config *devc, int event, int parm)
devc1746drivers/sound/mpu401.cint             midi_dev = devc->devno;
devc1748drivers/sound/mpu401.cif (!devc->timer_flag)
devc1802drivers/sound/mpu401.cstruct mpu_config *devc;
devc1805drivers/sound/mpu401.cdevc = &dev_conf[midi_dev];
devc1821drivers/sound/mpu401.cif (devc->version < 0x20)  /* Original MPU-401 */
devc1833drivers/sound/mpu401.cif (devc->revision)
devc1836drivers/sound/mpu401.cif (devc->revision & 0x02)
devc1840drivers/sound/mpu401.cif (devc->revision & 0x40)
devc83drivers/sound/opl3.cstatic struct opl_devinfo *devc = NULL;
devc107drivers/sound/opl3.cdevc->cmask = 0x3f;    /* Connect all possible 4 OP voice operators */
devc108drivers/sound/opl3.copl3_command (devc->right_io, CONNECTION_SELECT_REGISTER, 0x3f);
devc121drivers/sound/opl3.cdevc->lv_map[i] = v4op[i];
devc122drivers/sound/opl3.cdevc->v_alloc->max_voice = devc->nr_voice = 12;
devc150drivers/sound/opl3.cdevc->fm_info.nr_voices = (devc->nr_voice == 12) ? 6 : devc->nr_voice;
devc152drivers/sound/opl3.cmemcpy_tofs ((&((char *) arg)[0]), &devc->fm_info, sizeof (devc->fm_info));
devc161drivers/sound/opl3.cif (devc->model == 2)
devc189drivers/sound/opl3.cif (devc != NULL)
devc193drivers/sound/opl3.cdevc = (struct opl_devinfo *) (sound_mem_blocks[sound_num_blocks] = kmalloc (sizeof (*devc), GFP_KERNEL));
devc197drivers/sound/opl3.cif (devc == NULL)
devc203drivers/sound/opl3.cdevc->osp = osp;
devc232drivers/sound/opl3.ctenmicrosec (devc->osp);
devc287drivers/sound/opl3.ctenmicrosec (devc->osp);
devc289drivers/sound/opl3.ctenmicrosec (devc->osp);
devc296drivers/sound/opl3.ctenmicrosec (devc->osp);
devc298drivers/sound/opl3.ctenmicrosec (devc->osp);
devc326drivers/sound/opl3.cif (voice < 0 || voice >= devc->nr_voice)
devc329drivers/sound/opl3.cdevc->v_alloc->map[voice] = 0;
devc331drivers/sound/opl3.cmap = &pv_map[devc->lv_map[voice]];
devc338drivers/sound/opl3.copl3_command (map->ioaddr, KEYON_BLOCK + map->voice_num, devc->voc[voice].keyon_byte & ~0x20);
devc340drivers/sound/opl3.cdevc->voc[voice].keyon_byte = 0;
devc341drivers/sound/opl3.cdevc->voc[voice].bender = 0;
devc342drivers/sound/opl3.cdevc->voc[voice].volume = 64;
devc343drivers/sound/opl3.cdevc->voc[voice].bender_range = 200;  /*
devc346drivers/sound/opl3.cdevc->voc[voice].orig_freq = 0;
devc347drivers/sound/opl3.cdevc->voc[voice].current_freq = 0;
devc348drivers/sound/opl3.cdevc->voc[voice].mode = 0;
devc365drivers/sound/opl3.cif (instr->key != FM_PATCH && (instr->key != OPL3_PATCH || devc->model != 2))
devc367drivers/sound/opl3.cmemcpy ((char *) &(devc->i_map[instr_no]), (char *) instr, sizeof (*instr));
devc375drivers/sound/opl3.cif (voice < 0 || voice >= devc->nr_voice)
devc381drivers/sound/opl3.cdevc->act_i[voice] = &devc->i_map[instr_no];
devc440drivers/sound/opl3.cif (voice < 0 || voice >= devc->nr_voice)
devc443drivers/sound/opl3.cmap = &pv_map[devc->lv_map[voice]];
devc445drivers/sound/opl3.cinstr = devc->act_i[voice];
devc448drivers/sound/opl3.cinstr = &devc->i_map[0];
devc453drivers/sound/opl3.cif (devc->voc[voice].mode == 0)
devc456drivers/sound/opl3.cif (devc->voc[voice].mode == 2)
devc533drivers/sound/opl3.cif (voice < 0 || voice >= devc->nr_voice)
devc536drivers/sound/opl3.cmap = &pv_map[devc->lv_map[voice]];
devc545drivers/sound/opl3.cset_voice_volume (voice, volume, devc->voc[voice].volume);
devc573drivers/sound/opl3.cinstr = devc->act_i[voice];
devc576drivers/sound/opl3.cinstr = &devc->i_map[0];
devc597drivers/sound/opl3.cvoice_shift = (map->ioaddr == devc->left_io) ? 0 : 3;
devc605drivers/sound/opl3.cdevc->cmask &= ~(1 << voice_shift);
devc609drivers/sound/opl3.cdevc->cmask |= (1 << voice_shift);
devc612drivers/sound/opl3.copl3_command (devc->right_io, CONNECTION_SELECT_REGISTER, devc->cmask);
devc692drivers/sound/opl3.cdevc->voc[voice].mode = voice_mode;
devc694drivers/sound/opl3.cset_voice_volume (voice, volume, devc->voc[voice].volume);
devc696drivers/sound/opl3.cfreq = devc->voc[voice].orig_freq = note_to_freq (note) / 1000;
devc703drivers/sound/opl3.cfreq = compute_finetune (devc->voc[voice].orig_freq, devc->voc[voice].bender, devc->voc[voice].bender_range);
devc704drivers/sound/opl3.cdevc->voc[voice].current_freq = freq;
devc718drivers/sound/opl3.cdevc->voc[voice].keyon_byte = data;
devc780drivers/sound/opl3.cif (!devc->model != 2)
devc781drivers/sound/opl3.ctenmicrosec (devc->osp);
devc788drivers/sound/opl3.cif (devc->model != 2)
devc790drivers/sound/opl3.ctenmicrosec (devc->osp);
devc791drivers/sound/opl3.ctenmicrosec (devc->osp);
devc792drivers/sound/opl3.ctenmicrosec (devc->osp);
devc805drivers/sound/opl3.cdevc->lv_map[i] = i;
devc807drivers/sound/opl3.cfor (i = 0; i < devc->nr_voice; i++)
devc809drivers/sound/opl3.copl3_command (pv_map[devc->lv_map[i]].ioaddr,
devc810drivers/sound/opl3.cKSL_LEVEL + pv_map[devc->lv_map[i]].op[0], 0xff);
devc812drivers/sound/opl3.copl3_command (pv_map[devc->lv_map[i]].ioaddr,
devc813drivers/sound/opl3.cKSL_LEVEL + pv_map[devc->lv_map[i]].op[1], 0xff);
devc815drivers/sound/opl3.cif (pv_map[devc->lv_map[i]].voice_mode == 4)
devc817drivers/sound/opl3.copl3_command (pv_map[devc->lv_map[i]].ioaddr,
devc818drivers/sound/opl3.cKSL_LEVEL + pv_map[devc->lv_map[i]].op[2], 0xff);
devc820drivers/sound/opl3.copl3_command (pv_map[devc->lv_map[i]].ioaddr,
devc821drivers/sound/opl3.cKSL_LEVEL + pv_map[devc->lv_map[i]].op[3], 0xff);
devc827drivers/sound/opl3.cif (devc->model == 2)
devc829drivers/sound/opl3.cdevc->v_alloc->max_voice = devc->nr_voice = 18;
devc843drivers/sound/opl3.cif (devc->busy)
devc845drivers/sound/opl3.cdevc->busy = 1;
devc847drivers/sound/opl3.cdevc->v_alloc->max_voice = devc->nr_voice = (devc->model == 2) ? 18 : 9;
devc848drivers/sound/opl3.cdevc->v_alloc->timestamp = 0;
devc852drivers/sound/opl3.cdevc->v_alloc->map[i] = 0;
devc853drivers/sound/opl3.cdevc->v_alloc->alloc_times[i] = 0;
devc856drivers/sound/opl3.cdevc->cmask = 0x00;    /*
devc859drivers/sound/opl3.cif (devc->model == 2)
devc860drivers/sound/opl3.copl3_command (devc->right_io, CONNECTION_SELECT_REGISTER, devc->cmask);
devc867drivers/sound/opl3.cdevc->busy = 0;
devc868drivers/sound/opl3.cdevc->v_alloc->max_voice = devc->nr_voice = (devc->model == 2) ? 18 : 9;
devc870drivers/sound/opl3.cdevc->fm_info.nr_drums = 0;
devc871drivers/sound/opl3.cdevc->fm_info.perc_mode = 0;
devc928drivers/sound/opl3.cif (voice < 0 || voice >= devc->nr_voice)
devc931drivers/sound/opl3.cmap = &pv_map[devc->lv_map[voice]];
devc942drivers/sound/opl3.cinstr = devc->act_i[voice];
devc945drivers/sound/opl3.cinstr = &devc->i_map[0];
devc947drivers/sound/opl3.cif (devc->voc[voice].mode == 4)
devc998drivers/sound/opl3.cmap = &pv_map[devc->lv_map[voice]];
devc1003drivers/sound/opl3.cdevc->voc[voice].bender = value;
devc1006drivers/sound/opl3.cif (!(devc->voc[voice].keyon_byte & 0x20))
devc1011drivers/sound/opl3.cfreq = compute_finetune (devc->voc[voice].orig_freq, devc->voc[voice].bender, devc->voc[voice].bender_range);
devc1012drivers/sound/opl3.cdevc->voc[voice].current_freq = freq;
devc1029drivers/sound/opl3.cdevc->voc[voice].keyon_byte = data;
devc1036drivers/sound/opl3.cif (voice < 0 || voice >= devc->nr_voice)
devc1046drivers/sound/opl3.cdevc->voc[voice].bender_range = value;
devc1050drivers/sound/opl3.cdevc->voc[voice].volume = value / 128;
devc1064drivers/sound/opl3.cif (voice < 0 || voice >= devc->nr_voice)
devc1081drivers/sound/opl3.cinstr_no = devc->chn_info[chn].pgm_num;
devc1083drivers/sound/opl3.cinstr = &devc->i_map[instr_no];
devc1085drivers/sound/opl3.cdevc->nr_voice != 12)  /* Not in 4 OP mode */
devc1087drivers/sound/opl3.celse if (devc->nr_voice == 12)  /* 4 OP mode */
devc1099drivers/sound/opl3.cif (devc->nr_voice == 12)  /* 4 OP mode. Use the '2 OP only' operators first */
devc1103drivers/sound/opl3.cavail = devc->nr_voice;
devc1131drivers/sound/opl3.cif (best > devc->nr_voice)
devc1132drivers/sound/opl3.cbest -= devc->nr_voice;
devc1146drivers/sound/opl3.cdevc->voc[voice].bender = info->bender_value;
devc1147drivers/sound/opl3.cdevc->voc[voice].volume =
devc1187drivers/sound/opl3.cif (devc == NULL)
devc1193drivers/sound/opl3.cmemset ((char *) devc, 0x00, sizeof (*devc));
devc1194drivers/sound/opl3.cdevc->osp = osp;
devc1196drivers/sound/opl3.cdevc->nr_voice = 9;
devc1197drivers/sound/opl3.cstrcpy (devc->fm_info.name, "OPL2");
devc1199drivers/sound/opl3.cdevc->fm_info.device = 0;
devc1200drivers/sound/opl3.cdevc->fm_info.synth_type = SYNTH_TYPE_FM;
devc1201drivers/sound/opl3.cdevc->fm_info.synth_subtype = FM_TYPE_ADLIB;
devc1202drivers/sound/opl3.cdevc->fm_info.perc_mode = 0;
devc1203drivers/sound/opl3.cdevc->fm_info.nr_voices = 9;
devc1204drivers/sound/opl3.cdevc->fm_info.nr_drums = 0;
devc1205drivers/sound/opl3.cdevc->fm_info.instr_bank_size = SBFM_MAXINSTR;
devc1206drivers/sound/opl3.cdevc->fm_info.capabilities = 0;
devc1207drivers/sound/opl3.cdevc->left_io = ioaddr;
devc1208drivers/sound/opl3.cdevc->right_io = ioaddr + 2;
devc1211drivers/sound/opl3.cdevc->model = 1;
devc1214drivers/sound/opl3.cdevc->model = 2;
devc1216drivers/sound/opl3.cdevc->is_opl4 = 1;
devc1219drivers/sound/opl3.copl3_operations.info = &devc->fm_info;
devc1222drivers/sound/opl3.cdevc->v_alloc = &opl3_operations.alloc;
devc1223drivers/sound/opl3.cdevc->chn_info = &opl3_operations.chn_info[0];
devc1225drivers/sound/opl3.cif (devc->model == 2)
devc1227drivers/sound/opl3.cif (devc->is_opl4)
devc1232drivers/sound/opl3.cdevc->v_alloc->max_voice = devc->nr_voice = 18;
devc1233drivers/sound/opl3.cdevc->fm_info.nr_drums = 0;
devc1234drivers/sound/opl3.cdevc->fm_info.capabilities |= SYNTH_CAP_OPL3;
devc1235drivers/sound/opl3.cstrcpy (devc->fm_info.name, "Yamaha OPL-3");
devc1239drivers/sound/opl3.cpv_map[i].ioaddr = devc->left_io;
devc1241drivers/sound/opl3.cpv_map[i].ioaddr = devc->right_io;
devc1243drivers/sound/opl3.copl3_command (devc->right_io, OPL3_MODE_REGISTER, OPL3_ENABLE);
devc1244drivers/sound/opl3.copl3_command (devc->right_io, CONNECTION_SELECT_REGISTER, 0x00);
devc1249drivers/sound/opl3.cdevc->v_alloc->max_voice = devc->nr_voice = 9;
devc1250drivers/sound/opl3.cdevc->fm_info.nr_drums = 0;
devc1253drivers/sound/opl3.cpv_map[i].ioaddr = devc->left_io;
devc1257drivers/sound/opl3.cdevc->i_map[i].channel = -1;
devc39drivers/sound/pss.c#define REG(x)  (devc->base+x)
devc88drivers/sound/pss.cstatic pss_config *devc = &pss_data;
devc99drivers/sound/pss.cdevc->base = hw_config->io_base;
devc100drivers/sound/pss.cirq = devc->irq = hw_config->irq;
devc101drivers/sound/pss.cdma = devc->dma = hw_config->dma;
devc102drivers/sound/pss.cdevc->osp = hw_config->osp;
devc104drivers/sound/pss.cif (devc->base != 0x220 && devc->base != 0x240)
devc105drivers/sound/pss.cif (devc->base != 0x230 && devc->base != 0x250)  /* Some cards use these */
devc108drivers/sound/pss.cif (check_region (devc->base, 16))
devc125drivers/sound/pss.cset_irq (pss_config * devc, int dev, int irq)
devc153drivers/sound/pss.cset_io_base (pss_config * devc, int dev, int base)
devc164drivers/sound/pss.cset_dma (pss_config * devc, int dev, int dma)
devc190drivers/sound/pss.cpss_reset_dsp (pss_config * devc)
devc205drivers/sound/pss.cpss_put_dspword (pss_config * devc, unsigned short word)
devc222drivers/sound/pss.cpss_get_dspword (pss_config * devc, unsigned short *word)
devc240drivers/sound/pss.cpss_download_boot (pss_config * devc, unsigned char *block, int size, int flags)
devc257drivers/sound/pss.cpss_reset_dsp (devc);
devc329drivers/sound/pss.cdevc->base = hw_config->io_base;
devc330drivers/sound/pss.cdevc->irq = hw_config->irq;
devc331drivers/sound/pss.cdevc->dma = hw_config->dma;
devc332drivers/sound/pss.cdevc->osp = hw_config->osp;
devc355drivers/sound/pss.cif (!set_irq (devc, CONF_PSS, devc->irq))
devc361drivers/sound/pss.cif (!set_dma (devc, CONF_PSS, devc->dma))
devc389drivers/sound/pss.cif (!set_io_base (devc, CONF_MIDI, hw_config->io_base))
devc395drivers/sound/pss.cif (!set_irq (devc, CONF_MIDI, hw_config->irq))
devc407drivers/sound/pss.cif (!pss_download_boot (devc, pss_synth, pss_synthLen, CPF_FIRST | CPF_LAST))
devc447drivers/sound/pss.cif (!pss_download_boot (devc, pss_synth, pss_synthLen, CPF_FIRST | CPF_LAST))
devc470drivers/sound/pss.cif (!pss_download_boot (devc, pss_synth, pss_synthLen, CPF_FIRST | CPF_LAST))
devc483drivers/sound/pss.cif (!pss_download_boot (devc, buf->data, buf->len, buf->flags))
devc531drivers/sound/pss.cif (!pss_put_dspword (devc, 0x00d0))
devc537drivers/sound/pss.cif (!pss_put_dspword (devc, (unsigned short) (buf.parm1 & 0xffff)))
devc543drivers/sound/pss.cif (!pss_get_dspword (devc, &tmp))
devc567drivers/sound/pss.cif (!pss_put_dspword (devc, 0x00d1))
devc573drivers/sound/pss.cif (!pss_put_dspword (devc, (unsigned short) (buf.parm1 & 0xffff)))
devc580drivers/sound/pss.cif (!pss_put_dspword (devc, tmp))
devc601drivers/sound/pss.cif (!pss_put_dspword (devc, 0x00d3))
devc607drivers/sound/pss.cif (!pss_put_dspword (devc, (unsigned short) (buf.parm1 & 0xffff)))
devc614drivers/sound/pss.cif (!pss_put_dspword (devc, tmp))
devc621drivers/sound/pss.cif (!pss_put_dspword (devc, tmp))
devc642drivers/sound/pss.cif (!pss_put_dspword (devc, 0x00d2))
devc648drivers/sound/pss.cif (!pss_put_dspword (devc, (unsigned short) (buf.parm1 & 0xffff)))
devc654drivers/sound/pss.cif (!pss_get_dspword (devc, &tmp))  /* Read msb */
devc662drivers/sound/pss.cif (!pss_get_dspword (devc, &tmp))  /* Read lsb */
devc724drivers/sound/pss.cif (!set_io_base (devc, CONF_WSS, hw_config->io_base))
devc730drivers/sound/pss.cif (!set_irq (devc, CONF_WSS, hw_config->irq))
devc736drivers/sound/pss.cif (!set_dma (devc, CONF_WSS, hw_config->dma))
devc70drivers/sound/sscape.c#define PORT(name)  (devc->base+name)
devc105drivers/sound/sscape.cstatic struct sscape_info *devc = &dev_info;
devc129drivers/sound/sscape.csscape_read (struct sscape_info *devc, int reg)
devc143drivers/sound/sscape.csscape_write (struct sscape_info *devc, int reg, int data)
devc155drivers/sound/sscape.chost_open (struct sscape_info *devc)
devc161drivers/sound/sscape.chost_close (struct sscape_info *devc)
devc167drivers/sound/sscape.chost_write (struct sscape_info *devc, unsigned char *data, int count)
devc201drivers/sound/sscape.chost_read (struct sscape_info *devc)
devc232drivers/sound/sscape.chost_command1 (struct sscape_info *devc, int cmd)
devc238drivers/sound/sscape.creturn host_write (devc, buf, 1);
devc242drivers/sound/sscape.chost_command2 (struct sscape_info *devc, int cmd, int parm1)
devc249drivers/sound/sscape.creturn host_write (devc, buf, 2);
devc253drivers/sound/sscape.chost_command3 (struct sscape_info *devc, int cmd, int parm1, int parm2)
devc261drivers/sound/sscape.creturn host_write (devc, buf, 3);
devc265drivers/sound/sscape.cset_mt32 (struct sscape_info *devc, int value)
devc267drivers/sound/sscape.chost_open (devc);
devc268drivers/sound/sscape.chost_command2 (devc, CMD_SET_MT32,
devc270drivers/sound/sscape.cif (host_read (devc) != CMD_ACK)
devc274drivers/sound/sscape.chost_close (devc);
devc278drivers/sound/sscape.cset_control (struct sscape_info *devc, int ctrl, int value)
devc280drivers/sound/sscape.chost_open (devc);
devc281drivers/sound/sscape.chost_command3 (devc, CMD_SET_CONTROL, ctrl, value);
devc282drivers/sound/sscape.cif (host_read (devc) != CMD_ACK)
devc286drivers/sound/sscape.chost_close (devc);
devc290drivers/sound/sscape.cget_board_type (struct sscape_info *devc)
devc294drivers/sound/sscape.chost_open (devc);
devc295drivers/sound/sscape.cif (!host_command1 (devc, CMD_GET_BOARD_TYPE))
devc298drivers/sound/sscape.ctmp = host_read (devc);
devc299drivers/sound/sscape.chost_close (devc);
devc309drivers/sound/sscape.cprintk ("sscapeintr(0x%02x)\n", (bits = sscape_read (devc, GA_INTSTAT_REG)));
devc320drivers/sound/sscape.cprintk ("SSCAPE: Host interrupt, data=%02x\n", host_read (devc));
devc329drivers/sound/sscape.csscape_write (devc, GA_INTENA_REG, 0x00);  /* Disable all interrupts */
devc338drivers/sound/sscape.ctmp = sscape_read (devc, GA_INTENA_REG);
devc339drivers/sound/sscape.csscape_write (devc, GA_INTENA_REG, (~bits & 0x0e) | (tmp & 0xf1));
devc345drivers/sound/sscape.cdo_dma (struct sscape_info *devc, int dma_chan, unsigned long buf, int blk_size, int mode)
devc355drivers/sound/sscape.cDMAbuf_start_dma (devc->my_audiodev,
devc359drivers/sound/sscape.ctemp = devc->dma << 4;  /* Setup DMA channel select bits */
devc360drivers/sound/sscape.cif (devc->dma <= 3)
devc364drivers/sound/sscape.csscape_write (devc, GA_DMAA_REG, temp);
devc366drivers/sound/sscape.csscape_write (devc, GA_DMAA_REG, temp);
devc370drivers/sound/sscape.cverify_mpu (struct sscape_info *devc)
devc386drivers/sound/sscape.cif (inb (devc->base + HOST_CTRL) & 0x80)
devc389drivers/sound/sscape.cif (inb (devc->base) != 0x00)
devc402drivers/sound/sscape.cset_mt32 (devc, 0);
devc403drivers/sound/sscape.cif (!verify_mpu (devc))
devc414drivers/sound/sscape.cstruct sscape_info *devc = dev_info;
devc419drivers/sound/sscape.cif (devc->dma_allocated)
devc421drivers/sound/sscape.csscape_write (devc, GA_DMAA_REG, 0x20);  /* DMA channel disabled */
devc424drivers/sound/sscape.cdevc->dma_allocated = 0;
devc438drivers/sound/sscape.csscape_download_boot (struct sscape_info *devc, unsigned char *block, int size, int flag)
devc461drivers/sound/sscape.cif (devc->dma_allocated == 0)
devc466drivers/sound/sscape.cdevc->dma_allocated = 1;
devc470drivers/sound/sscape.csscape_write (devc, GA_HMCTL_REG,
devc471drivers/sound/sscape.c(temp = sscape_read (devc, GA_HMCTL_REG)) & 0x3f);  /*Reset */
devc474drivers/sound/sscape.csscape_read (devc, GA_HMCTL_REG);  /* Delay */
devc477drivers/sound/sscape.csscape_write (devc, GA_HMCTL_REG,
devc478drivers/sound/sscape.c(temp = sscape_read (devc, GA_HMCTL_REG)) | 0x80);
devc484drivers/sound/sscape.cmemcpy (audio_devs[devc->my_audiodev]->dmap_out->raw_buf, block, size);
devc489drivers/sound/sscape.cdo_dma (devc, SSCAPE_DMA_A,
devc490drivers/sound/sscape.caudio_devs[devc->my_audiodev]->dmap_out->raw_buf_phys,
devc520drivers/sound/sscape.cclear_dma_ff (devc->dma);
devc521drivers/sound/sscape.cif ((resid = get_dma_residue (devc->dma)) == 0)
devc537drivers/sound/sscape.ctemp = sscape_read (devc, GA_HMCTL_REG);
devc539drivers/sound/sscape.csscape_write (devc, GA_HMCTL_REG, temp);  /* Kickstart the board */
devc612drivers/sound/sscape.cget_board_type (devc));
devc614drivers/sound/sscape.cset_control (devc, CTL_MASTER_VOL, 100);
devc615drivers/sound/sscape.cset_control (devc, CTL_SYNTH_VOL, 100);
devc626drivers/sound/sscape.cprintk ("I%d = %02x (new value)\n", i, sscape_read (devc, i));
devc641drivers/sound/sscape.cif (!sscape_download_boot (devc, buf->data, buf->len, buf->flags))
devc696drivers/sound/sscape.csscape_info    *devc = (sscape_info *) audio_devs[dev]->devc;
devc700drivers/sound/sscape.cif (devc->opened)
devc705drivers/sound/sscape.cdevc->opened = 1;
devc716drivers/sound/sscape.cprintk ("I%d = %02x\n", i, sscape_read (devc, i));
devc727drivers/sound/sscape.csscape_info    *devc = (sscape_info *) audio_devs[dev]->devc;
devc734drivers/sound/sscape.cdevc->opened = 0;
devc740drivers/sound/sscape.cset_speed (sscape_info * devc, int arg)
devc746drivers/sound/sscape.cset_channels (sscape_info * devc, int arg)
devc752drivers/sound/sscape.cset_format (sscape_info * devc, int arg)
devc760drivers/sound/sscape.csscape_info    *devc = (sscape_info *) audio_devs[dev]->devc;
devc766drivers/sound/sscape.creturn set_speed (devc, (int) arg);
devc767drivers/sound/sscape.creturn snd_ioctl_return ((int *) arg, set_speed (devc, get_fs_long ((long *) arg)));
devc776drivers/sound/sscape.creturn set_channels (devc, (int) arg + 1) - 1;
devc777drivers/sound/sscape.creturn snd_ioctl_return ((int *) arg, set_channels (devc, get_fs_long ((long *) arg) + 1) - 1);
devc781drivers/sound/sscape.creturn set_channels (devc, (int) arg);
devc782drivers/sound/sscape.creturn snd_ioctl_return ((int *) arg, set_channels (devc, get_fs_long ((long *) arg)));
devc791drivers/sound/sscape.creturn set_format (devc, (int) arg);
devc792drivers/sound/sscape.creturn snd_ioctl_return ((int *) arg, set_format (devc, get_fs_long ((long *) arg)));
devc927drivers/sound/sscape.csscape_write (devc, i, 0xf0);  /* All interrupts enabled */
devc932drivers/sound/sscape.csscape_write (devc, i, 0x20);  /* DMA channel disabled */
devc936drivers/sound/sscape.csscape_write (devc, i, 0xf0 | (irq_bits << 2) | irq_bits);
devc940drivers/sound/sscape.csscape_write (devc, i, (regs[i] & 0x3f) |
devc941drivers/sound/sscape.c(sscape_read (devc, i) & 0xc0));
devc948drivers/sound/sscape.csscape_write (devc, i,
devc949drivers/sound/sscape.c(sscape_read (devc, i) & 0xf0) | 0x08);
devc953drivers/sound/sscape.csscape_write (devc, i, regs[i]);
devc967drivers/sound/sscape.cprintk ("I%d = %02x (new value)\n", i, sscape_read (devc, i));
devc994drivers/sound/sscape.caudio_devs[my_dev]->devc = devc;
devc995drivers/sound/sscape.cdevc->my_audiodev = my_dev;
devc996drivers/sound/sscape.cdevc->opened = 0;
devc998drivers/sound/sscape.cif (snd_set_irq_handler (hw_config->irq, sscapeintr, "SoundScape", devc->osp) < 0)
devc1001drivers/sound/sscape.csscape_write (devc, GA_INTENA_REG, 0x80);    /* Master IRQ enable */
devc1007drivers/sound/sscape.cdevc->ok = 1;
devc1008drivers/sound/sscape.cdevc->failed = 0;
devc1017drivers/sound/sscape.cdevc->failed = 1;
devc1018drivers/sound/sscape.cdevc->base = hw_config->io_base;
devc1019drivers/sound/sscape.cdevc->irq = hw_config->irq;
devc1020drivers/sound/sscape.cdevc->dma = hw_config->dma;
devc1021drivers/sound/sscape.cdevc->osp = hw_config->osp;
devc1049drivers/sound/sscape.cif (sscape_read (devc, 0) & 0x0c)
devc1052drivers/sound/sscape.cif (sscape_read (devc, 1) & 0x0f)
devc1055drivers/sound/sscape.cif (sscape_read (devc, 5) & 0x0f)
devc1067drivers/sound/sscape.cprintk ("I%d = %02x (old value)\n", i, sscape_read (devc, i));
devc1076drivers/sound/sscape.cif (!((tmp = sscape_read (devc, GA_HMCTL_REG)) & 0xc0))
devc1078drivers/sound/sscape.csscape_write (devc, GA_HMCTL_REG, tmp | 0x80);
devc1080drivers/sound/sscape.cinb (devc->base + ODIE_ADDR);
devc1102drivers/sound/sscape.cif (devc->failed)
devc1105drivers/sound/sscape.cif (devc->ok == 0)
devc1145drivers/sound/sscape.csscape_write (devc, GA_DMACFG_REG, 0x50);
devc1150drivers/sound/sscape.csscape_write (devc, GA_DMAB_REG, 0x20);
devc1163drivers/sound/sscape.csscape_write (devc, GA_CDCFG_REG, 0x89 | (hw_config->dma << 4) |
devc1166drivers/sound/sscape.cif (hw_config->irq == devc->irq)
devc1174drivers/sound/sscape.cdevc->osp);
devc1189drivers/sound/sscape.cprintk ("I%d = %02x\n", i, sscape_read (devc, i));