当前位置: 首页>>代码示例>>C++>>正文


C++ rr3_ftr函数代码示例

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


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

示例1: redrat3_get_firmware_rev

static void redrat3_get_firmware_rev(struct redrat3_dev *rr3)
{
	int rc = 0;
	char *buffer;

	rr3_ftr(rr3->dev, "Entering %s\n", __func__);

	buffer = kzalloc(sizeof(char) * (RR3_FW_VERSION_LEN + 1), GFP_KERNEL);
	if (!buffer) {
		dev_err(rr3->dev, "Memory allocation failure\n");
		return;
	}

	rc = usb_control_msg(rr3->udev, usb_rcvctrlpipe(rr3->udev, 0),
			     RR3_FW_VERSION,
			     USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN,
			     0, 0, buffer, RR3_FW_VERSION_LEN, HZ * 5);

	if (rc >= 0)
		dev_info(rr3->dev, "Firmware rev: %s", buffer);
	else
		dev_err(rr3->dev, "Problem fetching firmware ID\n");

	kfree(buffer);
	rr3_ftr(rr3->dev, "Exiting %s\n", __func__);
}
开发者ID:romanbb,项目名称:android_kernel_lge_d851,代码行数:26,代码来源:redrat3.c

示例2: redrat3_dev_suspend

static int redrat3_dev_suspend(struct usb_interface *intf, pm_message_t message)
{
	struct redrat3_dev *rr3 = usb_get_intfdata(intf);
	rr3_ftr(rr3->dev, "suspend\n");
	usb_kill_urb(rr3->read_urb);
	return 0;
}
开发者ID:romanbb,项目名称:android_kernel_lge_d851,代码行数:7,代码来源:redrat3.c

示例3: redrat3_get_ir_data

/* gather IR data from incoming urb, process it when we have enough */
static int redrat3_get_ir_data(struct redrat3_dev *rr3, unsigned len)
{
    struct device *dev = rr3->dev;
    unsigned pkttype;
    int ret = 0;

    rr3_ftr(dev, "Entering %s\n", __func__);

    if (rr3->bytes_read == 0 && len >= sizeof(struct redrat3_header)) {
        redrat3_read_packet_start(rr3, len);
    } else if (rr3->bytes_read != 0) {
        redrat3_read_packet_continue(rr3, len);
    } else if (rr3->bytes_read == 0) {
        dev_err(dev, "error: no packet data read\n");
        ret = -ENODATA;
        goto out;
    }

    if (rr3->bytes_read < be16_to_cpu(rr3->irdata.header.length) +
            sizeof(struct redrat3_header))
        /* we're still accumulating data */
        return 0;

    /* if we get here, we've got IR data to decode */
    pkttype = be16_to_cpu(rr3->irdata.header.transfer_type);
    if (pkttype == RR3_MOD_SIGNAL_IN)
        redrat3_process_ir_data(rr3);
    else
        rr3_dbg(dev, "discarding non-signal data packet (type 0x%02x)\n",
                pkttype);

out:
    rr3->bytes_read = 0;
    return ret;
}
开发者ID:NETFORCE2,项目名称:OpenWrt-14.07-Barrier-Breaker,代码行数:36,代码来源:redrat3.c

示例4: redrat3_dev_resume

static int redrat3_dev_resume(struct usb_interface *intf)
{
	struct redrat3_dev *rr3 = usb_get_intfdata(intf);
	rr3_ftr(rr3->dev, "resume\n");
	if (usb_submit_urb(rr3->read_urb, GFP_ATOMIC))
		return -EIO;
	return 0;
}
开发者ID:romanbb,项目名称:android_kernel_lge_d851,代码行数:8,代码来源:redrat3.c

示例5: redrat3_dev_disconnect

static void redrat3_dev_disconnect(struct usb_interface *intf)
{
    struct usb_device *udev = interface_to_usbdev(intf);
    struct redrat3_dev *rr3 = usb_get_intfdata(intf);

    rr3_ftr(&intf->dev, "Entering %s\n", __func__);

    if (!rr3)
        return;

    usb_set_intfdata(intf, NULL);
    rc_unregister_device(rr3->rc);
    led_classdev_unregister(&rr3->led);
    del_timer_sync(&rr3->rx_timeout);
    redrat3_delete(rr3, udev);

    rr3_ftr(&intf->dev, "RedRat3 IR Transceiver now disconnected\n");
}
开发者ID:NETFORCE2,项目名称:OpenWrt-14.07-Barrier-Breaker,代码行数:18,代码来源:redrat3.c

示例6: redrat3_read_packet_continue

static void redrat3_read_packet_continue(struct redrat3_dev *rr3, int len)
{

	rr3_ftr(rr3->dev, "Entering %s\n", __func__);

	memcpy(rr3->datap, (unsigned char *)rr3->bulk_in_buf, len);
	rr3->datap += len;

	rr3->bytes_read += len;
	rr3_dbg(rr3->dev, "bytes_read %d, pktlen %d\n",
		rr3->bytes_read, rr3->pktlen);
}
开发者ID:romanbb,项目名称:android_kernel_lge_d851,代码行数:12,代码来源:redrat3.c

示例7: redrat3_issue_async

/*
 * redrat3_issue_async
 *
 *  Issues an async read to the ir data in port..
 *  sets the callback to be redrat3_handle_async
 */
static void redrat3_issue_async(struct redrat3_dev *rr3)
{
    int res;

    rr3_ftr(rr3->dev, "Entering %s\n", __func__);

    res = usb_submit_urb(rr3->read_urb, GFP_ATOMIC);
    if (res)
        rr3_dbg(rr3->dev, "%s: receive request FAILED! "
                "(res %d, len %d)\n", __func__, res,
                rr3->read_urb->transfer_buffer_length);
}
开发者ID:NETFORCE2,项目名称:OpenWrt-14.07-Barrier-Breaker,代码行数:18,代码来源:redrat3.c

示例8: redrat3_delete

static inline void redrat3_delete(struct redrat3_dev *rr3,
                                  struct usb_device *udev)
{
    rr3_ftr(rr3->dev, "%s cleaning up\n", __func__);
    usb_kill_urb(rr3->read_urb);
    usb_kill_urb(rr3->flash_urb);
    usb_free_urb(rr3->read_urb);
    usb_free_urb(rr3->flash_urb);
    usb_free_coherent(udev, le16_to_cpu(rr3->ep_in->wMaxPacketSize),
                      rr3->bulk_in_buf, rr3->dma_in);

    kfree(rr3);
}
开发者ID:NETFORCE2,项目名称:OpenWrt-14.07-Barrier-Breaker,代码行数:13,代码来源:redrat3.c

示例9: redrat3_write_bulk_callback

static void redrat3_write_bulk_callback(struct urb *urb, struct pt_regs *regs)
{
	struct redrat3_dev *rr3;
	int len;

	if (!urb)
		return;

	rr3 = urb->context;
	if (rr3) {
		len = urb->actual_length;
		rr3_ftr(rr3->dev, "%s: called (status=%d len=%d)\n",
			__func__, urb->status, len);
	}
}
开发者ID:romanbb,项目名称:android_kernel_lge_d851,代码行数:15,代码来源:redrat3.c

示例10: redrat3_read_packet_start

static void redrat3_read_packet_start(struct redrat3_dev *rr3, int len)
{
	u16 tx_error;
	u16 hdrlen;

	rr3_ftr(rr3->dev, "Entering %s\n", __func__);

	/*                                      */
	memcpy(&(rr3->pktlen), (unsigned char *) rr3->bulk_in_buf,
	       sizeof(rr3->pktlen));
	memcpy(&(rr3->pkttype), ((unsigned char *) rr3->bulk_in_buf +
		sizeof(rr3->pktlen)),
	       sizeof(rr3->pkttype));

	/*                                                      */
	rr3->pktlen = be16_to_cpu(rr3->pktlen);
	rr3->pkttype = be16_to_cpu(rr3->pkttype);

	switch (rr3->pkttype) {
	case RR3_ERROR:
		memcpy(&tx_error, ((unsigned char *)rr3->bulk_in_buf
			+ (sizeof(rr3->pktlen) + sizeof(rr3->pkttype))),
		       sizeof(tx_error));
		tx_error = be16_to_cpu(tx_error);
		redrat3_dump_fw_error(rr3, tx_error);
		break;

	case RR3_MOD_SIGNAL_IN:
		hdrlen = sizeof(rr3->pktlen) + sizeof(rr3->pkttype);
		rr3->bytes_read = len;
		rr3->bytes_read -= hdrlen;
		rr3->datap = &(rr3->pbuf[0]);

		memcpy(rr3->datap, ((unsigned char *)rr3->bulk_in_buf + hdrlen),
		       rr3->bytes_read);
		rr3->datap += rr3->bytes_read;
		rr3_dbg(rr3->dev, "bytes_read %d, pktlen %d\n",
			rr3->bytes_read, rr3->pktlen);
		break;

	default:
		rr3_dbg(rr3->dev, "ignoring packet with type 0x%02x, "
			"len of %d, 0x%02x\n", rr3->pkttype, len, rr3->pktlen);
		break;
	}
}
开发者ID:romanbb,项目名称:android_kernel_lge_d851,代码行数:46,代码来源:redrat3.c

示例11: redrat3_get_ir_data

static int redrat3_get_ir_data(struct redrat3_dev *rr3, int len)
{
	struct device *dev = rr3->dev;
	int ret = 0;

	rr3_ftr(dev, "Entering %s\n", __func__);

	if (rr3->pktlen > RR3_MAX_BUF_SIZE) {
		dev_err(rr3->dev, "error: packet larger than buffer\n");
		ret = -EINVAL;
		goto out;
	}

	if ((rr3->bytes_read == 0) &&
	    (len >= (sizeof(rr3->pkttype) + sizeof(rr3->pktlen)))) {
		redrat3_read_packet_start(rr3, len);
	} else if (rr3->bytes_read != 0) {
		redrat3_read_packet_continue(rr3, len);
	} else if (rr3->bytes_read == 0) {
		dev_err(dev, "error: no packet data read\n");
		ret = -ENODATA;
		goto out;
	}

	if (rr3->bytes_read > rr3->pktlen) {
		dev_err(dev, "bytes_read (%d) greater than pktlen (%d)\n",
			rr3->bytes_read, rr3->pktlen);
		ret = -EINVAL;
		goto out;
	} else if (rr3->bytes_read < rr3->pktlen)
		/*                               */
		return 0;

	/*                                             */
	if (rr3->pkttype == RR3_MOD_SIGNAL_IN)
		redrat3_process_ir_data(rr3);
	else
		rr3_dbg(dev, "discarding non-signal data packet "
			"(type 0x%02x)\n", rr3->pkttype);

out:
	rr3->bytes_read = 0;
	rr3->pktlen = 0;
	rr3->pkttype = 0;
	return ret;
}
开发者ID:romanbb,项目名称:android_kernel_lge_d851,代码行数:46,代码来源:redrat3.c

示例12: redrat3_disable_detector

static void redrat3_disable_detector(struct redrat3_dev *rr3)
{
	struct device *dev = rr3->dev;
	u8 ret;

	rr3_ftr(dev, "Entering %s\n", __func__);

	ret = redrat3_send_cmd(RR3_RC_DET_DISABLE, rr3);
	if (ret != 0)
		dev_err(dev, "%s: failure!\n", __func__);

	ret = redrat3_send_cmd(RR3_RC_DET_STATUS, rr3);
	if (ret != 0)
		dev_warn(dev, "%s: detector status: %d, should be 0\n",
			 __func__, ret);

	rr3->det_enabled = false;
}
开发者ID:romanbb,项目名称:android_kernel_lge_d851,代码行数:18,代码来源:redrat3.c

示例13: redrat3_read_packet_continue

static void redrat3_read_packet_continue(struct redrat3_dev *rr3, unsigned len)
{
    void *irdata = &rr3->irdata;

    rr3_ftr(rr3->dev, "Entering %s\n", __func__);

    if (len + rr3->bytes_read > sizeof(rr3->irdata)) {
        dev_warn(rr3->dev, "too much data for packet\n");
        rr3->bytes_read = 0;
        return;
    }

    memcpy(irdata + rr3->bytes_read, rr3->bulk_in_buf, len);

    rr3->bytes_read += len;
    rr3_dbg(rr3->dev, "bytes_read %d, pktlen %d\n", rr3->bytes_read,
            be16_to_cpu(rr3->irdata.header.length));
}
开发者ID:NETFORCE2,项目名称:OpenWrt-14.07-Barrier-Breaker,代码行数:18,代码来源:redrat3.c

示例14: redrat3_handle_async

static void redrat3_handle_async(struct urb *urb, struct pt_regs *regs)
{
	struct redrat3_dev *rr3;
	int ret;

	if (!urb)
		return;

	rr3 = urb->context;
	if (!rr3) {
		pr_err("%s called with invalid context!\n", __func__);
		usb_unlink_urb(urb);
		return;
	}

	rr3_ftr(rr3->dev, "Entering %s\n", __func__);

	switch (urb->status) {
	case 0:
		ret = redrat3_get_ir_data(rr3, urb->actual_length);
		if (!ret) {
			/*                                */
			redrat3_issue_async(rr3);
		}
		break;

	case -ECONNRESET:
	case -ENOENT:
	case -ESHUTDOWN:
		usb_unlink_urb(urb);
		return;

	case -EPIPE:
	default:
		dev_warn(rr3->dev, "Error: urb status = %d\n", urb->status);
		rr3->bytes_read = 0;
		rr3->pktlen = 0;
		rr3->pkttype = 0;
		break;
	}
}
开发者ID:romanbb,项目名称:android_kernel_lge_d851,代码行数:41,代码来源:redrat3.c

示例15: redrat3_reset

static void redrat3_reset(struct redrat3_dev *rr3)
{
	struct usb_device *udev = rr3->udev;
	struct device *dev = rr3->dev;
	int rc, rxpipe, txpipe;
	u8 *val;
	int len = sizeof(u8);

	rr3_ftr(dev, "Entering %s\n", __func__);

	rxpipe = usb_rcvctrlpipe(udev, 0);
	txpipe = usb_sndctrlpipe(udev, 0);

	val = kzalloc(len, GFP_KERNEL);
	if (!val) {
		dev_err(dev, "Memory allocation failure\n");
		return;
	}

	*val = 0x01;
	rc = usb_control_msg(udev, rxpipe, RR3_RESET,
			     USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN,
			     RR3_CPUCS_REG_ADDR, 0, val, len, HZ * 25);
	rr3_dbg(dev, "reset returned 0x%02x\n", rc);

	*val = 5;
	rc = usb_control_msg(udev, txpipe, RR3_SET_IR_PARAM,
			     USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_OUT,
			     RR3_IR_IO_LENGTH_FUZZ, 0, val, len, HZ * 25);
	rr3_dbg(dev, "set ir parm len fuzz %d rc 0x%02x\n", *val, rc);

	*val = RR3_DRIVER_MAXLENS;
	rc = usb_control_msg(udev, txpipe, RR3_SET_IR_PARAM,
			     USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_OUT,
			     RR3_IR_IO_MAX_LENGTHS, 0, val, len, HZ * 25);
	rr3_dbg(dev, "set ir parm max lens %d rc 0x%02x\n", *val, rc);

	kfree(val);
}
开发者ID:romanbb,项目名称:android_kernel_lge_d851,代码行数:39,代码来源:redrat3.c


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