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

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

51自学网 2021-06-03 08:06:54
  C++
这篇教程C++ solo_reg_write函数代码示例写得很实用,希望能帮到您。

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

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

示例1: solo_disp_s_ctrl

static int solo_disp_s_ctrl(struct file *file, void *priv,			    struct v4l2_control *ctrl){	struct solo_filehandle *fh = priv;	struct solo6010_dev *solo_dev = fh->solo_dev;	switch (ctrl->id) {	case V4L2_CID_MOTION_TRACE:		if (ctrl->value) {			solo_reg_write(solo_dev, SOLO_VI_MOTION_BORDER,					SOLO_VI_MOTION_Y_ADD |					SOLO_VI_MOTION_Y_VALUE(0x20) |					SOLO_VI_MOTION_CB_VALUE(0x10) |					SOLO_VI_MOTION_CR_VALUE(0x10));			solo_reg_write(solo_dev, SOLO_VI_MOTION_BAR,					SOLO_VI_MOTION_CR_ADD |					SOLO_VI_MOTION_Y_VALUE(0x10) |					SOLO_VI_MOTION_CB_VALUE(0x80) |					SOLO_VI_MOTION_CR_VALUE(0x10));		} else {			solo_reg_write(solo_dev, SOLO_VI_MOTION_BORDER, 0);			solo_reg_write(solo_dev, SOLO_VI_MOTION_BAR, 0);		}		return 0;	}	return -EINVAL;}
开发者ID:Stefan-Schmidt,项目名称:linux-2.6,代码行数:27,


示例2: solo_p2m_init

int solo_p2m_init(struct solo6010_dev *solo_dev){    struct solo_p2m_dev *p2m_dev;    int i;    for (i = 0; i < SOLO_NR_P2M; i++) {        p2m_dev = &solo_dev->p2m_dev[i];        sema_init(&p2m_dev->sem, 1);        init_completion(&p2m_dev->completion);        solo_reg_write(solo_dev, SOLO_P2M_DES_ADR(i),                       __pa(p2m_dev->desc));        solo_reg_write(solo_dev, SOLO_P2M_CONTROL(i), 0);        solo_reg_write(solo_dev, SOLO_P2M_CONFIG(i),                       SOLO_P2M_CSC_16BIT_565 |                       SOLO_P2M_DMA_INTERVAL(0) |                       SOLO_P2M_PCI_MASTER_MODE);        solo6010_irq_on(solo_dev, SOLO_IRQ_P2M(i));    }    run_p2m_test(solo_dev);    return 0;}
开发者ID:Claruarius,项目名称:stblinux-2.6.37,代码行数:26,


示例3: solo_s_ctrl

static int solo_s_ctrl(struct v4l2_ctrl *ctrl){	struct solo_dev *solo_dev =		container_of(ctrl->handler, struct solo_dev, disp_hdl);	switch (ctrl->id) {	case V4L2_CID_MOTION_TRACE:		if (ctrl->val) {			solo_reg_write(solo_dev, SOLO_VI_MOTION_BORDER,					SOLO_VI_MOTION_Y_ADD |					SOLO_VI_MOTION_Y_VALUE(0x20) |					SOLO_VI_MOTION_CB_VALUE(0x10) |					SOLO_VI_MOTION_CR_VALUE(0x10));			solo_reg_write(solo_dev, SOLO_VI_MOTION_BAR,					SOLO_VI_MOTION_CR_ADD |					SOLO_VI_MOTION_Y_VALUE(0x10) |					SOLO_VI_MOTION_CB_VALUE(0x80) |					SOLO_VI_MOTION_CR_VALUE(0x10));		} else {			solo_reg_write(solo_dev, SOLO_VI_MOTION_BORDER, 0);			solo_reg_write(solo_dev, SOLO_VI_MOTION_BAR, 0);		}		return 0;	default:		break;	}	return -EINVAL;}
开发者ID:168519,项目名称:linux,代码行数:28,


示例4: solo_gpio_mode

static void solo_gpio_mode(struct solo_dev *solo_dev,			   unsigned int port_mask, unsigned int mode){	int port;	unsigned int ret;	ret = solo_reg_read(solo_dev, SOLO_GPIO_CONFIG_0);	/* To set gpio */	for (port = 0; port < 16; port++) {		if (!((1 << port) & port_mask))			continue;		ret &= (~(3 << (port << 1)));		ret |= ((mode & 3) << (port << 1));	}	solo_reg_write(solo_dev, SOLO_GPIO_CONFIG_0, ret);	/* To set extended gpio - sensor */	ret = solo_reg_read(solo_dev, SOLO_GPIO_CONFIG_1);	for (port = 0; port < 16; port++) {		if (!((1 << (port + 16)) & port_mask))			continue;		if (!mode)			ret &= ~(1 << port);		else			ret |= 1 << port;	}	solo_reg_write(solo_dev, SOLO_GPIO_CONFIG_1, ret);}
开发者ID:CSCLOG,项目名称:beaglebone,代码行数:34,


示例5: solo_set_time

static void solo_set_time(struct solo6010_dev *solo_dev){	struct timeval tv;	do_gettimeofday(&tv);	solo_reg_write(solo_dev, SOLO_TIMER_SEC, tv.tv_sec);	solo_reg_write(solo_dev, SOLO_TIMER_USEC, tv.tv_usec);}
开发者ID:junho-jeong,项目名称:solo6x10,代码行数:8,


示例6: solo_set_time

static void solo_set_time(struct solo6010_dev *solo_dev){	struct timespec ts;	ktime_get_ts(&ts);	solo_reg_write(solo_dev, SOLO_TIMER_SEC, ts.tv_sec);	solo_reg_write(solo_dev, SOLO_TIMER_USEC, ts.tv_nsec / NSEC_PER_USEC);}
开发者ID:ssraghavan76,项目名称:solo6x10,代码行数:9,


示例7: set_qp

static void set_qp(struct solo_enc_dev *solo_enc, int qp){  u8 ch = solo_enc->ch;  struct solo6010_dev *solo_dev = solo_enc->solo_dev;  solo_enc->qp = qp;  solo_reg_write(solo_dev, SOLO_VE_CH_QP(ch), solo_enc->qp);  /* Extended encoding only */  solo_reg_write(solo_dev, SOLO_VE_CH_QP_E(ch), solo_enc->qp);}
开发者ID:srstrong,项目名称:solo6x10,代码行数:12,


示例8: solo_p2m_dma_desc

/* Mutex must be held for p2m_id before calling this!! */int solo_p2m_dma_desc(struct solo6010_dev *solo_dev,		      struct solo_p2m_desc *desc, dma_addr_t desc_dma,		      int desc_cnt){	struct solo_p2m_dev *p2m_dev;	unsigned int timeout = 0;	unsigned int config = 0;	int ret = 0;        int p2m_id;	/* Get next ID */	p2m_id = atomic_inc_return(&solo_dev->p2m_count) % SOLO_NR_P2M;	if (p2m_id < 0)		p2m_id = 0 - p2m_id;	p2m_dev = &solo_dev->p2m_dev[p2m_id];	if (mutex_lock_interruptible(&p2m_dev->mutex))		return -EINTR;	INIT_COMPLETION(p2m_dev->completion);	p2m_dev->error = 0;	if (desc_cnt > 1) {		/* We only need to do this when we have more than one		 * descriptor. */		config = solo_reg_read(solo_dev, SOLO_P2M_CONFIG(p2m_id));		solo_reg_write(solo_dev, SOLO_P2M_DES_ADR(p2m_id), desc_dma);		solo_reg_write(solo_dev, SOLO_P2M_DESC_ID(p2m_id), desc_cnt);		solo_reg_write(solo_dev, SOLO_P2M_CONFIG(p2m_id), config |			       SOLO_P2M_DESC_MODE);	} else {		solo_reg_write(solo_dev, SOLO_P2M_TAR_ADR(p2m_id), desc[1].dma_addr);		solo_reg_write(solo_dev, SOLO_P2M_EXT_ADR(p2m_id), desc[1].ext_addr);		solo_reg_write(solo_dev, SOLO_P2M_EXT_CFG(p2m_id), desc[1].cfg);		solo_reg_write(solo_dev, SOLO_P2M_CONTROL(p2m_id), desc[1].ctrl);	}	timeout = wait_for_completion_timeout(&p2m_dev->completion,					      msecs_to_jiffies(solo_dev->p2m_msecs));	solo_reg_write(solo_dev, SOLO_P2M_CONTROL(p2m_id), 0);	if (desc_cnt > 1)		solo_reg_write(solo_dev, SOLO_P2M_CONFIG(p2m_id), config);	if (WARN_ON_ONCE(p2m_dev->error))		ret = -EIO;	else if (timeout == 0)		ret = -EAGAIN;	mutex_unlock(&p2m_dev->mutex);	return ret;}
开发者ID:srstrong,项目名称:solo6x10,代码行数:57,


示例9: solo_i2c_stop

static void solo_i2c_stop(struct solo_dev *solo_dev){	solo_irq_off(solo_dev, SOLO_IRQ_IIC);	solo_reg_write(solo_dev, SOLO_IIC_CTRL, 0);	solo_dev->i2c_state = IIC_STATE_STOP;	wake_up(&solo_dev->i2c_wait);}
开发者ID:7799,项目名称:linux,代码行数:7,


示例10: solo_i2c_handle_write

static int solo_i2c_handle_write(struct solo_dev *solo_dev){retry_write:	if (solo_dev->i2c_msg_ptr != solo_dev->i2c_msg->len) {		solo_reg_write(solo_dev, SOLO_IIC_TXD,			       solo_dev->i2c_msg->buf[solo_dev->i2c_msg_ptr]);		solo_dev->i2c_msg_ptr++;		solo_i2c_flush(solo_dev, 1);		return 0;	}	solo_dev->i2c_msg_ptr = 0;	solo_dev->i2c_msg++;	solo_dev->i2c_msg_num--;	if (solo_dev->i2c_msg_num == 0) {		solo_i2c_stop(solo_dev);		return 0;	}	if (!(solo_dev->i2c_msg->flags & I2C_M_NOSTART)) {		solo_i2c_start(solo_dev);	} else {		if (solo_dev->i2c_msg->flags & I2C_M_RD)			solo_i2c_stop(solo_dev);		else			goto retry_write;	}	return 0;}
开发者ID:7799,项目名称:linux,代码行数:31,


示例11: solo_win_setup

static void solo_win_setup(struct solo6010_dev *solo_dev, u8 ch,			   int sx, int sy, int ex, int ey, int scale){	if (ch >= solo_dev->nr_chans)		return;	/* Here, we just keep window/channel the same */	solo_reg_write(solo_dev, SOLO_VI_WIN_CTRL0(ch),		       SOLO_VI_WIN_CHANNEL(ch) |		       SOLO_VI_WIN_SX(sx) |		       SOLO_VI_WIN_EX(ex) |		       SOLO_VI_WIN_SCALE(scale));        solo_reg_write(solo_dev, SOLO_VI_WIN_CTRL1(ch),		       SOLO_VI_WIN_SY(sy) |		       SOLO_VI_WIN_EY(ey));}
开发者ID:Stefan-Schmidt,项目名称:linux-2.6,代码行数:17,


示例12: solo_isr

/* XXX We should check the return value of the sub-device ISR's */static irqreturn_t solo_isr(int irq, void *data){	struct solo_dev *solo_dev = data;	u32 status;	int i;	status = solo_reg_read(solo_dev, SOLO_IRQ_STAT);	if (!status)		return IRQ_NONE;	if (status & ~solo_dev->irq_mask) {		solo_reg_write(solo_dev, SOLO_IRQ_STAT,			       status & ~solo_dev->irq_mask);		status &= solo_dev->irq_mask;	}	if (status & SOLO_IRQ_PCI_ERR) {		u32 err = solo_reg_read(solo_dev, SOLO_PCI_ERR);		solo_p2m_error_isr(solo_dev, err);		solo_reg_write(solo_dev, SOLO_IRQ_STAT, SOLO_IRQ_PCI_ERR);	}	for (i = 0; i < SOLO_NR_P2M; i++)		if (status & SOLO_IRQ_P2M(i))			solo_p2m_isr(solo_dev, i);	if (status & SOLO_IRQ_IIC)		solo_i2c_isr(solo_dev);	if (status & SOLO_IRQ_VIDEO_IN)		solo_video_in_isr(solo_dev);	/* Call this first so enc gets detected flag set */	if (status & SOLO_IRQ_MOTION)		solo_motion_isr(solo_dev);	if (status & SOLO_IRQ_ENCODER)		solo_enc_v4l2_isr(solo_dev);	if (status & SOLO_IRQ_G723)		solo_g723_isr(solo_dev);	return IRQ_HANDLED;}
开发者ID:ARMWorks,项目名称:FA_2451_Linux_Kernel,代码行数:45,


示例13: solo6010_isr

static irqreturn_t solo6010_isr(int irq, void *data){	struct solo6010_dev *solo_dev = data;	u32 status;	int i;	status = solo_reg_read(solo_dev, SOLO_IRQ_STAT);	if (!status)		return IRQ_NONE;	if (status & ~solo_dev->irq_mask) {		solo_reg_write(solo_dev, SOLO_IRQ_STAT,			       status & ~solo_dev->irq_mask);		status &= solo_dev->irq_mask;	}	if (status & SOLO_IRQ_PCI_ERR)		solo_p2m_error_isr(solo_dev);	for (i = 0; i < SOLO_NR_P2M; i++)		if (status & SOLO_IRQ_P2M(i))			solo_p2m_isr(solo_dev, i);	if (status & SOLO_IRQ_IIC)		solo_i2c_isr(solo_dev);	if (status & SOLO_IRQ_VIDEO_IN) {		solo_video_in_isr(solo_dev);		solo_timer_sync(solo_dev);	}	if (status & SOLO_IRQ_ENCODER)		solo_enc_v4l2_isr(solo_dev);	if (status & SOLO_IRQ_G723)		solo_g723_isr(solo_dev);	/* Clear all interrupts handled */	solo_reg_write(solo_dev, SOLO_IRQ_STAT, status);	return IRQ_HANDLED;}
开发者ID:junho-jeong,项目名称:solo6x10,代码行数:42,


示例14: solo_i2c_start

static void solo_i2c_start(struct solo_dev *solo_dev){	u32 addr = solo_dev->i2c_msg->addr << 1;	if (solo_dev->i2c_msg->flags & I2C_M_RD)		addr |= 1;	solo_dev->i2c_state = IIC_STATE_START;	solo_reg_write(solo_dev, SOLO_IIC_TXD, addr);	solo_i2c_flush(solo_dev, 1);}
开发者ID:7799,项目名称:linux,代码行数:11,


示例15: solo_i2c_master_xfer

static int solo_i2c_master_xfer(struct i2c_adapter *adap,				struct i2c_msg msgs[], int num){	struct solo_dev *solo_dev = adap->algo_data;	unsigned long timeout;	int ret;	int i;	DEFINE_WAIT(wait);	for (i = 0; i < SOLO_I2C_ADAPTERS; i++) {		if (&solo_dev->i2c_adap[i] == adap)			break;	}	if (i == SOLO_I2C_ADAPTERS)		return num; /* XXX Right return value for failure? */	mutex_lock(&solo_dev->i2c_mutex);	solo_dev->i2c_id = i;	solo_dev->i2c_msg = msgs;	solo_dev->i2c_msg_num = num;	solo_dev->i2c_msg_ptr = 0;	solo_reg_write(solo_dev, SOLO_IIC_CTRL, 0);	solo_irq_on(solo_dev, SOLO_IRQ_IIC);	solo_i2c_start(solo_dev);	timeout = HZ / 2;	for (;;) {		prepare_to_wait(&solo_dev->i2c_wait, &wait,				TASK_INTERRUPTIBLE);		if (solo_dev->i2c_state == IIC_STATE_STOP)			break;		timeout = schedule_timeout(timeout);		if (!timeout)			break;		if (signal_pending(current))			break;	}	finish_wait(&solo_dev->i2c_wait, &wait);	ret = num - solo_dev->i2c_msg_num;	solo_dev->i2c_state = IIC_STATE_IDLE;	solo_dev->i2c_id = -1;	mutex_unlock(&solo_dev->i2c_mutex);	return ret;}
开发者ID:7799,项目名称:linux,代码行数:53,


示例16: solo_p2m_dma_t

int solo_p2m_dma_t(struct solo6010_dev *solo_dev, u8 id, int wr,                   dma_addr_t dma_addr, u32 ext_addr, u32 size){    struct solo_p2m_dev *p2m_dev;    unsigned int timeout = 0;    WARN_ON(!size);    WARN_ON(id >= SOLO_NR_P2M);    if (!size || id >= SOLO_NR_P2M)        return -EINVAL;    p2m_dev = &solo_dev->p2m_dev[id];    down(&p2m_dev->sem);start_dma:    INIT_COMPLETION(p2m_dev->completion);    p2m_dev->error = 0;    solo_reg_write(solo_dev, SOLO_P2M_TAR_ADR(id), dma_addr);    solo_reg_write(solo_dev, SOLO_P2M_EXT_ADR(id), ext_addr);    solo_reg_write(solo_dev, SOLO_P2M_EXT_CFG(id),                   SOLO_P2M_COPY_SIZE(size >> 2));    solo_reg_write(solo_dev, SOLO_P2M_CONTROL(id),                   SOLO_P2M_BURST_SIZE(SOLO_P2M_BURST_256) |                   (wr ? SOLO_P2M_WRITE : 0) | SOLO_P2M_TRANS_ON);    timeout = wait_for_completion_timeout(&p2m_dev->completion, HZ);    solo_reg_write(solo_dev, SOLO_P2M_CONTROL(id), 0);    /* XXX Really looks to me like we will get stuck here if a     * real PCI P2M error occurs */    if (p2m_dev->error)        goto start_dma;    up(&p2m_dev->sem);    return (timeout == 0) ? -EAGAIN : 0;}
开发者ID:Claruarius,项目名称:stblinux-2.6.37,代码行数:39,


示例17: erase_off

static int erase_off(struct solo6010_dev *solo_dev){	if (!solo_dev->erasing)		return 0;	/* First time around, assert erase off */	if (!solo_dev->frame_blank)		solo_reg_write(solo_dev, SOLO_VO_DISP_ERASE, 0);	/* Keep the erasing flag on for 8 frames minimum */	if (solo_dev->frame_blank++ >= 8)		solo_dev->erasing = 0;	return 1;}
开发者ID:Stefan-Schmidt,项目名称:linux-2.6,代码行数:14,


示例18: solo_p2m_error_isr

void solo_p2m_error_isr(struct solo6010_dev *solo_dev, u32 status){    struct solo_p2m_dev *p2m_dev;    int i;    if (!(status & SOLO_PCI_ERR_P2M))        return;    for (i = 0; i < SOLO_NR_P2M; i++) {        p2m_dev = &solo_dev->p2m_dev[i];        p2m_dev->error = 1;        solo_reg_write(solo_dev, SOLO_P2M_CONTROL(i), 0);        complete(&p2m_dev->completion);    }}
开发者ID:Claruarius,项目名称:stblinux-2.6.37,代码行数:15,


示例19: solo_i2c_init

int solo_i2c_init(struct solo6010_dev *solo_dev){	int i;	int ret;	solo_reg_write(solo_dev, SOLO_IIC_CFG,		       SOLO_IIC_PRESCALE(8) | SOLO_IIC_ENABLE);	solo_dev->i2c_id = -1;	solo_dev->i2c_state = IIC_STATE_IDLE;	init_waitqueue_head(&solo_dev->i2c_wait);	init_MUTEX(&solo_dev->i2c_sem);	for (i = 0; i < SOLO_I2C_ADAPTERS; i++) {		struct i2c_adapter *adap = &solo_dev->i2c_adap[i];		snprintf(adap->name, I2C_NAME_SIZE, "%s I2C %d",			 SOLO6010_NAME, i);		adap->algo = &solo_i2c_algo;		adap->algo_data = solo_dev;		adap->retries = 1;		adap->dev.parent = &solo_dev->pdev->dev;		if ((ret = i2c_add_adapter(adap))) {			adap->algo_data = NULL;			break;		}	}	if (ret) {		for (i = 0; i < SOLO_I2C_ADAPTERS; i++) {			if (!solo_dev->i2c_adap[i].algo_data)				break;			i2c_del_adapter(&solo_dev->i2c_adap[i]);			solo_dev->i2c_adap[i].algo_data = NULL;		}		return ret;	}	dev_info(&solo_dev->pdev->dev, "Enabled %d i2c adapters/n",		 SOLO_I2C_ADAPTERS);	return 0;}
开发者ID:3sOx,项目名称:asuswrt-merlin,代码行数:44,


示例20: solo_i2c_isr

int solo_i2c_isr(struct solo6010_dev *solo_dev){	u32 status = solo_reg_read(solo_dev, SOLO_IIC_CTRL);	int ret = -EINVAL;	solo_reg_write(solo_dev, SOLO_IRQ_STAT, SOLO_IRQ_IIC);	if (status & (SOLO_IIC_STATE_TRNS & SOLO_IIC_STATE_SIG_ERR) ||	    solo_dev->i2c_id < 0) {		solo_i2c_stop(solo_dev);		return -ENXIO;	}	switch (solo_dev->i2c_state) {	case IIC_STATE_START:		if (solo_dev->i2c_msg->flags & I2C_M_RD) {			solo_dev->i2c_state = IIC_STATE_READ;			ret = solo_i2c_handle_read(solo_dev);			break;		}		solo_dev->i2c_state = IIC_STATE_WRITE;	case IIC_STATE_WRITE:		ret = solo_i2c_handle_write(solo_dev);		break;	case IIC_STATE_READ:		solo_dev->i2c_msg->buf[solo_dev->i2c_msg_ptr] =			solo_reg_read(solo_dev, SOLO_IIC_RXD);		solo_dev->i2c_msg_ptr++;		ret = solo_i2c_handle_read(solo_dev);		break;	default:		solo_i2c_stop(solo_dev);	}	return ret;}
开发者ID:3sOx,项目名称:asuswrt-merlin,代码行数:40,


示例21: solo_timer_sync

static void solo_timer_sync(struct solo6010_dev *solo_dev){	u32 sec, usec;	struct timespec ts;	long diff;	if (solo_dev->type != SOLO_DEV_6110)		return;	if (++solo_dev->time_sync < 60)		return;	solo_dev->time_sync = 0;	sec = solo_reg_read(solo_dev, SOLO_TIMER_SEC);	usec = solo_reg_read(solo_dev, SOLO_TIMER_USEC);	ktime_get_ts(&ts);	diff = (long)ts.tv_sec - (long)sec;	diff = (diff * 1000000)		+ ((long)(ts.tv_nsec / NSEC_PER_USEC) - (long)usec);	if (diff > 1000 || diff < -1000) {		solo_set_time(solo_dev);	} else if (diff) {		long usec_lsb = solo_dev->usec_lsb;		usec_lsb -= diff / 4;		if (usec_lsb < 0)			usec_lsb = 0;		else if (usec_lsb > 255)			usec_lsb = 255;		solo_dev->usec_lsb = usec_lsb;		solo_reg_write(solo_dev, SOLO_TIMER_USEC_LSB,			       solo_dev->usec_lsb);	}}
开发者ID:ssraghavan76,项目名称:solo6x10,代码行数:39,


示例22: solo_i2c_flush

static void solo_i2c_flush(struct solo_dev *solo_dev, int wr){	u32 ctrl;	ctrl = SOLO_IIC_CH_SET(solo_dev->i2c_id);	if (solo_dev->i2c_state == IIC_STATE_START)		ctrl |= SOLO_IIC_START;	if (wr) {		ctrl |= SOLO_IIC_WRITE;	} else {		ctrl |= SOLO_IIC_READ;		if (!(solo_dev->i2c_msg->flags & I2C_M_NO_RD_ACK))			ctrl |= SOLO_IIC_ACK_EN;	}	if (solo_dev->i2c_msg_ptr == solo_dev->i2c_msg->len)		ctrl |= SOLO_IIC_STOP;	solo_reg_write(solo_dev, SOLO_IIC_CTRL, ctrl);}
开发者ID:7799,项目名称:linux,代码行数:22,


示例23: solo_timer_sync

static void solo_timer_sync(struct solo6010_dev *solo_dev){	u32 sec, usec;	struct timeval tv;	long diff;	if (solo_dev->type != SOLO_DEV_6110)		return;	solo_dev->time_sync++;	if (solo_dev->time_sync % 60)		return;	sec = solo_reg_read(solo_dev, SOLO_TIMER_SEC);	usec = solo_reg_read(solo_dev, SOLO_TIMER_USEC);	do_gettimeofday(&tv);	diff = (long)tv.tv_sec - (long)sec;	diff = (diff * 1000000) + ((long)tv.tv_usec - (long)usec);	if (diff > 1000 || diff < -1000) {		solo_set_time(solo_dev);	} else if (diff) {		long usec_lsb = solo_dev->usec_lsb;		usec_lsb -= diff / 4;		if (usec_lsb < 0)			usec_lsb = 0;		else if (usec_lsb > 255)			usec_lsb = 255;		solo_dev->usec_lsb = usec_lsb;		solo_reg_write(solo_dev, SOLO_TIMER_USEC_LSB, solo_dev->usec_lsb);	}}
开发者ID:junho-jeong,项目名称:solo6x10,代码行数:36,


示例24: solo6010_pci_probe

static int __devinit solo6010_pci_probe(struct pci_dev *pdev,					const struct pci_device_id *id){	struct solo6010_dev *solo_dev;	int ret;	u8 chip_id;	solo_dev = kzalloc(sizeof(*solo_dev), GFP_KERNEL);	if (solo_dev == NULL)		return -ENOMEM;	if (id->driver_data == SOLO_DEV_6010)		dev_info(&pdev->dev, "Probing Softlogic 6010/n");	else		dev_info(&pdev->dev, "Probing Softlogic 6110/n");	solo_dev->type = id->driver_data;	solo_dev->pdev = pdev;	spin_lock_init(&solo_dev->reg_io_lock);	pci_set_drvdata(pdev, solo_dev);	solo_dev->p2m_jiffies = msecs_to_jiffies(100); /* Only for during init */	if ((ret = pci_enable_device(pdev)))		goto fail_probe;	pci_set_master(pdev);	/* RETRY/TRDY Timeout disabled */	pci_write_config_byte(pdev, 0x40, 0x00);	pci_write_config_byte(pdev, 0x41, 0x00);	if ((ret = pci_request_regions(pdev, SOLO6010_NAME)))		goto fail_probe;	if ((solo_dev->reg_base = pci_ioremap_bar(pdev, 0)) == NULL) {		ret = -ENOMEM;		goto fail_probe;	}	chip_id = solo_reg_read(solo_dev, SOLO_CHIP_OPTION) &				SOLO_CHIP_ID_MASK;	switch (chip_id) {		case 7:			solo_dev->nr_chans = 16;			solo_dev->nr_ext = 5;			break;		case 6:			solo_dev->nr_chans = 8;			solo_dev->nr_ext = 2;			break;		default:			dev_warn(&pdev->dev, "Invalid chip_id 0x%02x, "				 "defaulting to 4 channels/n",				 chip_id);		case 5:			solo_dev->nr_chans = 4;			solo_dev->nr_ext = 1;	}	/* Disable all interrupts to start */	solo6010_irq_off(solo_dev, ~0);	/* Initial global settings */	if (solo_dev->type == SOLO_DEV_6010) {		solo_dev->clock_mhz = 108;		solo_reg_write(solo_dev, SOLO_SYS_CFG, SOLO_SYS_CFG_SDRAM64BIT |			       SOLO_SYS_CFG_INPUTDIV(25) |			       SOLO_SYS_CFG_FEEDBACKDIV((solo_dev->clock_mhz * 2) - 2) |			       SOLO_SYS_CFG_OUTDIV(3));	} else {		u32 divq, divf;		solo_dev->clock_mhz = 135;		if (solo_dev->clock_mhz < 125) {			divq = 3;			divf = (solo_dev->clock_mhz * 4) / 3 - 1;		} else {			divq = 2;			divf = (solo_dev->clock_mhz * 2) / 3 - 1;		}		solo_reg_write(solo_dev, SOLO_PLL_CONFIG,			       (1 << 20) | /* PLL_RANGE */			       (8 << 15) | /* PLL_DIVR  */			       (divq << 12 ) |			       (divf <<  4 ) |			       (1 <<  1)   /* PLL_FSEN */ );		solo_reg_write(solo_dev, SOLO_SYS_CFG, SOLO_SYS_CFG_SDRAM64BIT);	}	solo_reg_write(solo_dev, SOLO_TIMER_CLOCK_NUM, solo_dev->clock_mhz - 1);	/* PLL locking time of 1ms */	mdelay(1);	ret = request_irq(pdev->irq, solo6010_isr, IRQF_SHARED, SOLO6010_NAME,			  solo_dev);	if (ret)//.........这里部分代码省略.........
开发者ID:junho-jeong,项目名称:solo6x10,代码行数:101,


示例25: solo_video_in_isr

void solo_video_in_isr(struct solo6010_dev *solo_dev){	solo_reg_write(solo_dev, SOLO_IRQ_STAT, SOLO_IRQ_VIDEO_IN);	wake_up_interruptible(&solo_dev->disp_thread_wait);}
开发者ID:Stefan-Schmidt,项目名称:linux-2.6,代码行数:5,


示例26: erase_on

static void erase_on(struct solo6010_dev *solo_dev){	solo_reg_write(solo_dev, SOLO_VO_DISP_ERASE, SOLO_VO_DISP_ERASE_ON);	solo_dev->erasing = 1;	solo_dev->frame_blank = 0;}
开发者ID:Stefan-Schmidt,项目名称:linux-2.6,代码行数:6,


示例27: solo_irq_on

void solo_irq_on(struct solo_dev *solo_dev, u32 mask){	solo_dev->irq_mask |= mask;	solo_reg_write(solo_dev, SOLO_IRQ_ENABLE, solo_dev->irq_mask);}
开发者ID:ARMWorks,项目名称:FA_2451_Linux_Kernel,代码行数:5,


示例28: solo6010_irq_off

void solo6010_irq_off(struct solo6010_dev *solo_dev, u32 mask){	solo_dev->irq_mask &= ~mask;	solo_reg_write(solo_dev, SOLO_IRQ_ENABLE, solo_dev->irq_mask);}
开发者ID:junho-jeong,项目名称:solo6x10,代码行数:5,


示例29: solo_p2m_isr

void solo_p2m_isr(struct solo6010_dev *solo_dev, int id){    solo_reg_write(solo_dev, SOLO_IRQ_STAT, SOLO_IRQ_P2M(id));    complete(&solo_dev->p2m_dev[id].completion);}
开发者ID:Claruarius,项目名称:stblinux-2.6.37,代码行数:5,


示例30: solo_eeprom_reg_write

static void solo_eeprom_reg_write(struct solo6010_dev *solo_dev, u32 data){	solo_reg_write(solo_dev, SOLO_EEPROM_CTRL, data);	eeprom_delay();}
开发者ID:inistec,项目名称:solo6x10,代码行数:5,



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


C++ solution函数代码示例
C++ sol_flow_send_error_packet函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。