本网站可以出售:只需60000元直接拥有。QQ:939804642
您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ AD1889_WRITEW函数代码示例

51自学网 2021-06-01 19:33:09
  C++
这篇教程C++ AD1889_WRITEW函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中AD1889_WRITEW函数的典型用法代码示例。如果您正苦于以下问题:C++ AD1889_WRITEW函数的具体用法?C++ AD1889_WRITEW怎么用?C++ AD1889_WRITEW使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了AD1889_WRITEW函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: ad1889_initcfg

static void ad1889_initcfg(ad1889_dev_t *dev){	u16 tmp;	/* make sure the interrupt bits are setup the way we want */	tmp = AD1889_READW(dev, AD_DMAWAVCTRL);	tmp &= ~0x00ff; /* flat dma, no sg, mask out the intr bits */	tmp |= 0x0004;  /* intr on count, loop */	AD1889_WRITEW(dev, AD_DMAWAVCTRL, tmp);	/* unmute... */	tmp = AD1889_READW(dev, AD_DSWADA);	tmp &= ~0x8080;	AD1889_WRITEW(dev, AD_DSWADA, tmp);}
开发者ID:jhbsz,项目名称:actiontec_opensource_mi424wr-rev-acd-56-0-10-14-4,代码行数:15,


示例2: ad1889_codec_write

/************************* AC97 interfaces ****************************** */static void ad1889_codec_write(struct ac97_codec *ac97, u8 reg, u16 val){	ad1889_dev_t *dev = ac97->private_data;	//DBG("Writing 0x%x to 0x%lx/n", val, dev->regbase + 0x100 + reg);	AD1889_WRITEW(dev, 0x100 + reg, val);}
开发者ID:jhbsz,项目名称:actiontec_opensource_mi424wr-rev-acd-56-0-10-14-4,代码行数:8,


示例3: ad1889_stop_wav

static void ad1889_stop_wav(ad1889_state_t *state){	unsigned long flags;	struct dmabuf *dmabuf = &state->dmabuf;	spin_lock_irqsave(&state->card->lock, flags);	if (dmabuf->enable & DAC_RUNNING) {		u16 tmp;		unsigned long cnt = dmabuf->dma_len;		tmp = AD1889_READW(ad1889_dev, AD_DSWSMC);		tmp &= ~0x0400; /* clear WAEN */		AD1889_WRITEW(ad1889_dev, AD_DSWSMC, tmp);		(void) AD1889_READW(ad1889_dev, AD_DSWSMC); /* flush posted PCI write */		pci_unmap_single(ad1889_dev->pci, dmabuf->dma_handle, 				cnt, PCI_DMA_TODEVICE);		dmabuf->enable &= ~DAC_RUNNING;		/* update dma pointers */		dmabuf->rd_ptr += cnt;		dmabuf->rd_ptr &= (DMA_SIZE - 1);		dmabuf->dma_handle = 0;		dmabuf->dma_len = 0;		dmabuf->ready = 0;		wake_up(&dmabuf->wait);	}	spin_unlock_irqrestore(&state->card->lock, flags);}
开发者ID:jhbsz,项目名称:actiontec_opensource_mi424wr-rev-acd-56-0-10-14-4,代码行数:33,


示例4: ad1889_aclink_reset

static int ad1889_aclink_reset(struct pci_dev * pcidev){	u16 stat;	int retry = 200;	ad1889_dev_t *dev = pci_get_drvdata(pcidev);	AD1889_WRITEW(dev, AD_DSCCS, 0x8000); /* turn on clock */	AD1889_READW(dev, AD_DSCCS); 	WAIT_10MS();	stat = AD1889_READW(dev, AD_ACIC);	stat |= 0x0002;				/* Reset Disable */	AD1889_WRITEW(dev, AD_ACIC, stat);	(void) AD1889_READW(dev, AD_ACIC);	/* flush posted write */	udelay(10);	stat = AD1889_READW(dev, AD_ACIC);	stat |= 0x0001;				/* Interface Enable */	AD1889_WRITEW(dev, AD_ACIC, stat);	do {		if (AD1889_READW(dev, AD_ACIC) & 0x8000)	/* Ready */			break;		WAIT_10MS();		retry--;	} while (retry > 0);	if (!retry) {		printk(KERN_ERR "ad1889_aclink_reset: codec is not ready [0x%x]/n",			    AD1889_READW(dev, AD_ACIC));		return -EBUSY;	}	/* TODO reset AC97 codec */	/* TODO set wave/adc pci ctrl status */	stat = AD1889_READW(dev, AD_ACIC);	stat |= 0x0004;				/* Audio Stream Output Enable */	AD1889_WRITEW(dev, AD_ACIC, stat);	return 0;}
开发者ID:jhbsz,项目名称:actiontec_opensource_mi424wr-rev-acd-56-0-10-14-4,代码行数:43,


示例5: ad1889_set_adc_fmt

static inline void ad1889_set_adc_fmt(ad1889_dev_t *dev, int fmt){	u16 tmp;	tmp = AD1889_READW(ad1889_dev, AD_DSRAMC);	if (fmt == AFMT_S16_LE) {		tmp |= 0x0100; /* set WA16 */	} else if (fmt == AFMT_U8) {		tmp &= ~0x0100; /* clear WA16 */	} 	AD1889_WRITEW(ad1889_dev, AD_DSRAMC, tmp);}
开发者ID:jhbsz,项目名称:actiontec_opensource_mi424wr-rev-acd-56-0-10-14-4,代码行数:12,


示例6: ad1889_start_wav

static void ad1889_start_wav(ad1889_state_t *state){	unsigned long flags;	struct dmabuf *dmabuf = &state->dmabuf;	int cnt;	u16 tmp;	spin_lock_irqsave(&state->card->lock, flags);	if (dmabuf->dma_len)	/* DMA already in flight */		goto skip_dma;	/* setup dma */	cnt = dmabuf->wr_ptr - dmabuf->rd_ptr;	if (cnt == 0)		/* done - don't need to do anything */		goto skip_dma;	/* If the wr_ptr has wrapped, only map to the end */	if (cnt < 0)		cnt = DMA_SIZE - dmabuf->rd_ptr;	dmabuf->dma_handle = pci_map_single(ad1889_dev->pci,					dmabuf->rawbuf + dmabuf->rd_ptr,					cnt, PCI_DMA_TODEVICE);	dmabuf->dma_len = cnt;	dmabuf->ready = 1;	DBG("Starting playback at 0x%p for %ld bytes/n", dmabuf->rawbuf +	    dmabuf->rd_ptr, dmabuf->dma_len);        /* load up the current register set */	AD1889_WRITEL(ad1889_dev, AD_DMAWAVCC, cnt);	AD1889_WRITEL(ad1889_dev, AD_DMAWAVICC, cnt);	AD1889_WRITEL(ad1889_dev, AD_DMAWAVCA, dmabuf->dma_handle);	/* TODO: for now we load the base registers with the same thing */	AD1889_WRITEL(ad1889_dev, AD_DMAWAVBC, cnt);	AD1889_WRITEL(ad1889_dev, AD_DMAWAVIBC, cnt);	AD1889_WRITEL(ad1889_dev, AD_DMAWAVBA, dmabuf->dma_handle);	/* and we're off to the races... */	AD1889_WRITEL(ad1889_dev, AD_DMACHSS, 0x8);	tmp = AD1889_READW(ad1889_dev, AD_DSWSMC);	tmp |= 0x0400; /* set WAEN */	AD1889_WRITEW(ad1889_dev, AD_DSWSMC, tmp);	(void) AD1889_READW(ad1889_dev, AD_DSWSMC); /* flush posted PCI write */	dmabuf->enable |= DAC_RUNNING;skip_dma:	spin_unlock_irqrestore(&state->card->lock, flags);}
开发者ID:KrisChaplin,项目名称:LRT2x4_v1.0.2.06_GPL_source,代码行数:52,


示例7: ad1889_open

static int ad1889_open(struct inode *inode, struct file *file){	/* check minor; only support /dev/dsp atm */	if (iminor(inode) != 3)		return -ENXIO;		file->private_data = ad1889_dev;	ad1889_set_wav_rate(ad1889_dev, 48000);	ad1889_set_wav_fmt(ad1889_dev, AFMT_S16_LE);	AD1889_WRITEW(ad1889_dev, AD_DSWADA, 0x0404); /* attenuation */	return nonseekable_open(inode, file);}
开发者ID:KrisChaplin,项目名称:LRT2x4_v1.0.2.06_GPL_source,代码行数:13,


示例8: ad1889_set_wav_rate

/************************* helper routines ***************************** */static inline void ad1889_set_wav_rate(ad1889_dev_t *dev, int rate){	struct ac97_codec *ac97_codec = dev->ac97_codec;	DBG("Setting WAV rate to %d/n", rate);	dev->state[AD_WAV_STATE].dmabuf.rate = rate;	AD1889_WRITEW(dev, AD_DSWAS, rate);	/* Cycle the DAC to enable the new rate */	ac97_codec->codec_write(dev->ac97_codec, AC97_POWER_CONTROL, 0x0200);	WAIT_10MS();	ac97_codec->codec_write(dev->ac97_codec, AC97_POWER_CONTROL, 0);}
开发者ID:KrisChaplin,项目名称:LRT2x4_v1.0.2.06_GPL_source,代码行数:14,


示例9: ad1889_open

static int ad1889_open(struct inode *inode, struct file *file){	/* check minor; only support /dev/dsp atm */	if (MINOR(inode->i_rdev) != 3)		return -ENXIO;		file->private_data = ad1889_dev;	ad1889_set_wav_rate(ad1889_dev, 44100);	ad1889_set_wav_fmt(ad1889_dev, AFMT_S16_LE);	AD1889_WRITEW(ad1889_dev, AD_DSWADA, 0x0404); /* attenuation */	MOD_INC_USE_COUNT;	return 0;}
开发者ID:jhbsz,项目名称:actiontec_opensource_mi424wr-rev-acd-56-0-10-14-4,代码行数:14,


示例10: ad1889_set_adc_fmt

static inline void ad1889_set_adc_fmt(ad1889_dev_t *dev, int fmt){	u16 tmp;	DBG("Setting ADC format to 0x%x/n", fmt);	tmp = AD1889_READW(ad1889_dev, AD_DSRAMC);	if (fmt & AFMT_S16_LE) {		tmp |= 0x0100; /* set WA16 */	} else if (fmt & AFMT_U8) {		tmp &= ~0x0100; /* clear WA16 */	} 	AD1889_WRITEW(ad1889_dev, AD_DSRAMC, tmp);}
开发者ID:KrisChaplin,项目名称:LRT2x4_v1.0.2.06_GPL_source,代码行数:14,


示例11: ad1889_initcfg

static void ad1889_initcfg(ad1889_dev_t *dev){	u16 tmp16;	u32 tmp32;	/* make sure the interrupt bits are setup the way we want */	tmp32 = AD1889_READL(dev, AD_DMAWAVCTRL);	tmp32 &= ~0xff; /* flat dma, no sg, mask out the intr bits */	tmp32 |= 0x6;  /* intr on count, loop */	AD1889_WRITEL(dev, AD_DMAWAVCTRL, tmp32);	/* unmute... */	tmp16 = AD1889_READW(dev, AD_DSWADA);	tmp16 &= ~0x8080;	AD1889_WRITEW(dev, AD_DSWADA, tmp16);}
开发者ID:KrisChaplin,项目名称:LRT2x4_v1.0.2.06_GPL_source,代码行数:16,


示例12: ad1889_startstop_adc

static void ad1889_startstop_adc(ad1889_state_t *state, int start){	u16 tmp;	unsigned long flags;	spin_lock_irqsave(&state->card->lock, flags);		tmp = AD1889_READW(ad1889_dev, AD_DSRAMC);	if (start) {		state->dmabuf.enable |= ADC_RUNNING;		tmp |= 0x0004; /* set ADEN */	} else {		state->dmabuf.enable &= ~ADC_RUNNING;		tmp &= ~0x0004; /* clear ADEN */	}	AD1889_WRITEW(ad1889_dev, AD_DSRAMC, tmp);	spin_unlock_irqrestore(&state->card->lock, flags);}
开发者ID:jhbsz,项目名称:actiontec_opensource_mi424wr-rev-acd-56-0-10-14-4,代码行数:19,


示例13: ad1889_set_adc_rate

static inline void ad1889_set_adc_rate(ad1889_dev_t *dev, int rate){	dev->state[AD_ADC_STATE].dmabuf.rate = rate;	AD1889_WRITEW(dev, AD_DSRES, rate);}
开发者ID:jhbsz,项目名称:actiontec_opensource_mi424wr-rev-acd-56-0-10-14-4,代码行数:5,


示例14: ad1889_set_wav_rate

/************************* helper routines ***************************** */static inline void ad1889_set_wav_rate(ad1889_dev_t *dev, int rate){	dev->state[AD_WAV_STATE].dmabuf.rate = rate;	AD1889_WRITEW(dev, AD_DSWAS, rate);}
开发者ID:jhbsz,项目名称:actiontec_opensource_mi424wr-rev-acd-56-0-10-14-4,代码行数:6,


示例15: ad1889_ioctl

static int ad1889_ioctl(struct inode *inode, struct file *file, unsigned int cmd,	unsigned long arg){	int val = 0;	ad1889_dev_t *dev = (ad1889_dev_t *)file->private_data;	struct dmabuf *dmabuf;	audio_buf_info abinfo;	switch (cmd)	{	case OSS_GETVERSION:		return put_user(SOUND_VERSION, (int *)arg);	case SNDCTL_DSP_RESET:		break;	case SNDCTL_DSP_SYNC:		break;	case SNDCTL_DSP_SPEED:		/* set sampling rate */		if (get_user(val, (int *)arg))			return -EFAULT;		if (val > 5400 && val < 48000)		{			if (file->f_mode & FMODE_WRITE)				AD1889_WRITEW(ad1889_dev, AD_DSWAS, val);			if (file->f_mode & FMODE_READ)				AD1889_WRITEW(ad1889_dev, AD_DSRES, val);		}		return 0;	case SNDCTL_DSP_STEREO: /* undocumented? */		if (get_user(val, (int *)arg))			return -EFAULT;		if (file->f_mode & FMODE_READ) {			val = AD1889_READW(ad1889_dev, AD_DSWSMC);			if (val) {				val |= 0x0200;  /* set WAST */			} else {				val &= ~0x0200; /* clear WAST */			}			AD1889_WRITEW(ad1889_dev, AD_DSWSMC, val);		}		if (file->f_mode & FMODE_WRITE) {			val = AD1889_READW(ad1889_dev, AD_DSRAMC);			if (val) {				val |= 0x0002;  /* set ADST */			} else {				val &= ~0x0002; /* clear ADST */			}			AD1889_WRITEW(ad1889_dev, AD_DSRAMC, val);		}		return 0;	case SNDCTL_DSP_GETBLKSIZE:		return put_user(DMA_SIZE, (int *)arg);	case SNDCTL_DSP_GETFMTS:		return put_user(AFMT_S16_LE|AFMT_U8, (int *)arg);	case SNDCTL_DSP_SETFMT:		if (get_user(val, (int *)arg))			return -EFAULT;		if (file->f_mode & FMODE_READ) 			ad1889_set_adc_fmt(dev, val);		if (file->f_mode & FMODE_WRITE) 			ad1889_set_wav_fmt(dev, val);		return put_user(val, (int *)arg);	case SNDCTL_DSP_CHANNELS:		break;	case SNDCTL_DSP_POST:		/* send all data to device */		break;	case SNDCTL_DSP_SUBDIVIDE:		break;	case SNDCTL_DSP_SETFRAGMENT:		/* not supported; uses fixed fragment sizes */		return put_user(DMA_SIZE, (int *)arg);	case SNDCTL_DSP_GETOSPACE:	case SNDCTL_DSP_GETISPACE:		/* space left in dma buffers */		if (cmd == SNDCTL_DSP_GETOSPACE)			dmabuf = &dev->state[AD_WAV_STATE].dmabuf;		else			dmabuf = &dev->state[AD_ADC_STATE].dmabuf;		abinfo.fragments = 1;		abinfo.fragstotal = 1;		abinfo.fragsize = DMA_SIZE;		abinfo.bytes = DMA_SIZE;		return copy_to_user((void *)arg, &abinfo, sizeof(abinfo)) ? -EFAULT : 0;//.........这里部分代码省略.........
开发者ID:jhbsz,项目名称:actiontec_opensource_mi424wr-rev-acd-56-0-10-14-4,代码行数:101,



注:本文中的AD1889_WRITEW函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ ADCIntClear函数代码示例
C++ AC_MEMCPY函数代码示例
51自学网自学EXCEL、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。
京ICP备13026421号-1