device->dbuf_q = is_init_dbuf_q(); if (IS_ERR_OR_NULL(device->dbuf_q)) { merr("is_resource_get is fail", device); goto p_err; } ret = is_devicemgr_open(device->devicemgr, (void *)device, IS_DEVICE_ISCHAIN); if (ret) { err("is_devicemgr_open is fail(%d)", ret); goto p_err; } device->pii = pablo_interface_irta_get(device->instance); if (device->pii) pablo_interface_irta_open(device->pii, device); /* for mediaserver force close */ ret = is_resource_get(device->resourcemgr, RESOURCE_TYPE_ISCHAIN); if (ret) { merr("is_resource_get is fail", device); goto p_err; }
时间: 2024-02-06 13:13:16 浏览: 64
uart_send.rar_cc2530_串口发送 send
这段代码是一个初始化函数,其中包含了一些设备的初始化操作,具体解释如下:
1. 首先,该函数会调用 is_init_dbuf_q() 函数初始化一个双缓冲队列,并将其赋值给设备结构体的 dbuf_q 成员变量。
2. 然后,该函数会检查 dbuf_q 是否初始化成功,如果出错或者返回值为 NULL,则会输出一个错误信息并跳转到 p_err 标签处。
3. 接着,该函数会调用 is_devicemgr_open() 函数打开设备管理器,并将设备结构体的指针和 IS_DEVICE_ISCHAIN 标志作为参数传递进去。
4. 如果 is_devicemgr_open() 函数返回值不为 0,则会输出一个错误信息并跳转到 p_err 标签处。
5. 接下来,该函数会调用 pablo_interface_irta_get() 函数获取一个 IR interface 的实例,并将其赋值给设备结构体的 pii 成员变量。
6. 如果 pii 不为 NULL,则会调用 pablo_interface_irta_open() 函数打开
阅读全文