Lines Matching refs:devc

73 #define REG(x)	(devc->base+x)
144 static pss_confdata *devc = &pss_data;
153 static void pss_write(pss_confdata *devc, int data)
182 devc->base = hw_config->io_base;
183 irq = devc->irq = hw_config->irq;
184 dma = devc->dma = hw_config->dma;
185 devc->osp = hw_config->osp;
187 if (devc->base != 0x220 && devc->base != 0x240)
188 if (devc->base != 0x230 && devc->base != 0x250) /* Some cards use these */
191 if (!request_region(devc->base, 0x10, "PSS mixer, SB emulation")) {
197 printk(KERN_ERR "No PSS signature detected at 0x%x (0x%x)\n", devc->base, id);
198 release_region(devc->base, 0x10);
201 if (!request_region(devc->base + 0x10, 0x9, "PSS config")) {
203 release_region(devc->base, 0x10);
209 static int set_irq(pss_confdata * devc, int dev, int irq)
235 static void set_io_base(pss_confdata * devc, int dev, int base)
243 static int set_dma(pss_confdata * devc, int dev, int dma)
267 static int pss_reset_dsp(pss_confdata * devc)
278 static int pss_put_dspword(pss_confdata * devc, unsigned short word)
294 static int pss_get_dspword(pss_confdata * devc, unsigned short *word)
310 static int pss_download_boot(pss_confdata * devc, unsigned char *block, int size, int flags)
326 pss_reset_dsp(devc);
400 static void set_master_volume(pss_confdata *devc, int left, int right)
413 pss_write(devc, 0x0010);
414 pss_write(devc, log_scale[left] | 0x0000);
415 pss_write(devc, 0x0010);
416 pss_write(devc, log_scale[right] | 0x0100);
419 static void set_synth_volume(pss_confdata *devc, int volume)
422 pss_write(devc, 0x0080);
423 pss_write(devc, vol);
424 pss_write(devc, 0x0081);
425 pss_write(devc, vol);
428 static void set_bass(pss_confdata *devc, int level)
431 pss_write(devc, 0x0010);
432 pss_write(devc, vol | 0x0200);
435 static void set_treble(pss_confdata *devc, int level)
438 pss_write(devc, 0x0010);
439 pss_write(devc, vol | 0x0300);
442 static void pss_mixer_reset(pss_confdata *devc)
444 set_master_volume(devc, 33, 33);
445 set_bass(devc, 50);
446 set_treble(devc, 50);
447 set_synth_volume(devc, 30);
448 pss_write (devc, 0x0010);
449 pss_write (devc, 0x0800 | 0xce); /* Stereo */
453 devc->mixer.volume_l = devc->mixer.volume_r = 33;
454 devc->mixer.bass = 50;
455 devc->mixer.treble = 50;
456 devc->mixer.synth = 30;
502 static int call_ad_mixer(pss_confdata *devc,unsigned int cmd, void __user *arg)
504 if (devc->ad_mixer_dev != NO_WSS_MIXER)
505 return mixer_devs[devc->ad_mixer_dev]->ioctl(devc->ad_mixer_dev, cmd, arg);
512 pss_confdata *devc = mixer_devs[dev]->devc;
521 return call_ad_mixer(devc, cmd, arg);
532 if (devc->ad_mixer_dev != NO_WSS_MIXER)
533 return call_ad_mixer(devc, cmd, arg);
545 &devc->mixer.volume_l,
546 &devc->mixer.volume_r))
548 set_master_volume(devc, devc->mixer.volume_l,
549 devc->mixer.volume_r);
550 return ret_vol_stereo(devc->mixer.volume_l,
551 devc->mixer.volume_r);
554 if (set_volume_mono(arg, &devc->mixer.bass))
556 set_bass(devc, devc->mixer.bass);
557 return ret_vol_mono(devc->mixer.bass);
560 if (set_volume_mono(arg, &devc->mixer.treble))
562 set_treble(devc, devc->mixer.treble);
563 return ret_vol_mono(devc->mixer.treble);
566 if (set_volume_mono(arg, &devc->mixer.synth))
568 set_synth_volume(devc, devc->mixer.synth);
569 return ret_vol_mono(devc->mixer.synth);
584 if (call_ad_mixer(devc, cmd, arg) == -EINVAL)
591 if (call_ad_mixer(devc, cmd, arg) == -EINVAL)
598 if (devc->ad_mixer_dev != NO_WSS_MIXER)
599 return call_ad_mixer(devc, cmd, arg);
603 if (devc->ad_mixer_dev != NO_WSS_MIXER)
604 return call_ad_mixer(devc, cmd, arg);
609 if (devc->ad_mixer_dev != NO_WSS_MIXER)
610 return call_ad_mixer(devc, cmd, arg);
614 or_mask = ret_vol_stereo(devc->mixer.volume_l, devc->mixer.volume_r);
618 or_mask = ret_vol_mono(devc->mixer.bass);
622 or_mask = ret_vol_mono(devc->mixer.treble);
626 or_mask = ret_vol_mono(devc->mixer.synth);
679 set_io_base(devc, CONF_CDROM, pss_cdrom_port);
689 devc->base = hw_config->io_base;
690 devc->irq = hw_config->irq;
691 devc->dma = hw_config->dma;
692 devc->osp = hw_config->osp;
693 devc->ad_mixer_dev = NO_WSS_MIXER;
714 if (!set_irq(devc, CONF_PSS, devc->irq))
721 if (!set_dma(devc, CONF_PSS, devc->dma))
751 set_io_base(devc, CONF_MIDI, hw_config->io_base);
752 if (!set_irq(devc, CONF_MIDI, hw_config->irq)) {
760 if (!pss_download_boot(devc, pss_synth, pss_synthLen, CPF_FIRST | CPF_LAST)) {
801 if (!pss_download_boot(devc, pss_synth, pss_synthLen, CPF_FIRST | CPF_LAST))
823 if (!pss_download_boot(devc, pss_synth, pss_synthLen, CPF_FIRST | CPF_LAST))
835 if (!pss_download_boot(devc, buf->data, buf->len, buf->flags))
884 if (!pss_put_dspword(devc, *data++)) {
905 if (!pss_get_dspword(devc, data++)) {
921 if (!pss_put_dspword(devc, 0x00d0)) {
925 if (!pss_put_dspword(devc, (unsigned short)(dbuf.parm1 & 0xffff))) {
929 if (!pss_get_dspword(devc, &tmp)) {
943 if (!pss_put_dspword(devc, 0x00d1)) {
947 if (!pss_put_dspword(devc, (unsigned short) (dbuf.parm1 & 0xffff))) {
952 if (!pss_put_dspword(devc, tmp)) {
963 if (!pss_put_dspword(devc, 0x00d3)) {
967 if (!pss_put_dspword(devc, (unsigned short)(dbuf.parm1 & 0xffff))) {
972 if (!pss_put_dspword(devc, tmp)) {
977 if (!pss_put_dspword(devc, tmp)) {
988 if (!pss_put_dspword(devc, 0x00d2)) {
992 if (!pss_put_dspword(devc, (unsigned short)(dbuf.parm1 & 0xffff))) {
996 if (!pss_get_dspword(devc, &tmp)) { /* Read MSB */
1001 if (!pss_get_dspword(devc, &tmp)) { /* Read LSB */
1047 set_io_base(devc, CONF_WSS, hw_config->io_base);
1048 if (!set_irq(devc, CONF_WSS, hw_config->irq)) {
1052 if (!set_dma(devc, CONF_WSS, hw_config->dma)) {
1075 devc->ad_mixer_dev = NO_WSS_MIXER;
1082 devc)) < 0)
1088 pss_mixer_reset(devc);
1098 devc->ad_mixer_dev = audio_devs[hw_config->slots[0]]->mixer_dev;