• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C++ ETRACE函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



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

示例1: RETURN_NULL_IF_NOT_INIT

DisplayPlane* TngPlaneManager::getPlaneHelper(int dsp, int type)
{
    RETURN_NULL_IF_NOT_INIT();

    if (dsp < 0 || dsp > IDisplayDevice::DEVICE_EXTERNAL) {
        ETRACE("Invalid display device %d", dsp);
        return 0;
    }

    int index = dsp == IDisplayDevice::DEVICE_PRIMARY ? 0 : 1;

    if (type == DisplayPlane::PLANE_PRIMARY ||
        type == DisplayPlane::PLANE_CURSOR) {
        return getPlane(type, index);
    } else if (type == DisplayPlane::PLANE_SPRITE) {
        return getAnyPlane(type);
    } else if (type == DisplayPlane::PLANE_OVERLAY) {
        // use overlay A for pipe A and overlay C for pipe B if possible
        DisplayPlane *plane = getPlane(type, index);
        if (plane == NULL) {
            plane = getPlane(type, !index);
        }
        return plane;
    } else {
        ETRACE("invalid plane type %d", type);
        return 0;
    }
}
开发者ID:OMNI-Zenfone-2,项目名称:hwcomposer,代码行数:28,代码来源:TngPlaneManager.cpp


示例2: pvrAlloc

static struct _ValidateNode * pvrAlloc(struct _WsbmVNodeFuncs * func,
                                       int typeId)
{
    CTRACE();
    if(typeId == 0) {
        struct PsbWsbmValidateNode * vNode = malloc(sizeof(*vNode));
        if(!vNode) {
            ETRACE("failed to allocate memory");
            return NULL;
        }

        vNode->base.func = func;
        vNode->base.type_id = 0;
        return &vNode->base;
    } else {
        struct _ValidateNode * node = malloc(sizeof(*node));
        if(!node) {
            ETRACE("failed to allocate node");
            return NULL;
        }

        node->func = func;
        node->type_id = 1;
        return node;
    }
}
开发者ID:MIPS,项目名称:hardware-intel-img-hwcomposer,代码行数:26,代码来源:WsbmWrapper.c


示例3: switch

DisplayPlane* TngPlaneManager::allocPlane(int index, int type)
{
    DisplayPlane *plane = 0;

    switch (type) {
    case DisplayPlane::PLANE_PRIMARY:
        plane = new TngPrimaryPlane(index, index);
        break;
    case DisplayPlane::PLANE_SPRITE:
        plane = new TngSpritePlane(index, 0);
        break;
    case DisplayPlane::PLANE_OVERLAY:
        plane = new TngOverlayPlane(index, 0);
        break;
    case DisplayPlane::PLANE_CURSOR:
        plane = new TngCursorPlane(index, index /*disp */);
        break;
    default:
        ETRACE("unsupported type %d", type);
        break;
    }
    if (plane && !plane->initialize(DisplayPlane::MIN_DATA_BUFFER_COUNT)) {
        ETRACE("failed to initialize plane.");
        DEINIT_AND_DELETE_OBJ(plane);
    }

    return plane;
}
开发者ID:OMNI-Zenfone-2,项目名称:hwcomposer,代码行数:28,代码来源:TngPlaneManager.cpp


示例4: RETURN_NULL_IF_NOT_INIT

int DisplayPlaneManager::getFreePlanes(int dsp, int type)
{
    RETURN_NULL_IF_NOT_INIT();

    if (dsp < 0 || dsp > IDisplayDevice::DEVICE_EXTERNAL) {
        ETRACE("Invalid display device %d", dsp);
        return 0;
    }

    if (type < 0 || type >= DisplayPlane::PLANE_MAX) {
        ETRACE("Invalid plane type %d", type);
        return 0;
    }


    uint32_t freePlanes = mFreePlanes[type] | mReclaimedPlanes[type];
    if (type == DisplayPlane::PLANE_PRIMARY ||
        type == DisplayPlane::PLANE_CURSOR) {
        return ((freePlanes & (1 << dsp)) == 0) ? 0 : 1;
    } else {
        int count = 0;
        for (int i = 0; i < 32; i++) {
            if ((1 << i) & freePlanes) {
                count++;
            }
        }
        return count;
    }
    return 0;
}
开发者ID:MIPS,项目名称:hardware-intel-img-hwcomposer,代码行数:30,代码来源:DisplayPlaneManager.cpp


示例5: psbWsbmWrapTTMBuffer

int psbWsbmWrapTTMBuffer(uint64_t handle, void **buf)
{
    int ret = 0;
    struct _WsbmBufferObject *wsbmBuf;

    if (!buf) {
        ETRACE("invalid parameter");
        return -EINVAL;
    }

    ret = wsbmGenBuffers(mainPool, 1, &wsbmBuf, 0,
                        (WSBM_PL_FLAG_VRAM | WSBM_PL_FLAG_TT |
                        /*WSBM_PL_FLAG_NO_EVICT |*/ WSBM_PL_FLAG_SHARED));

    if (ret) {
        ETRACE("wsbmGenBuffers failed with error code %d", ret);
        return ret;
    }

    ret = wsbmBOSetReferenced(wsbmBuf, handle);
    if (ret) {
        ETRACE("wsbmBOSetReferenced failed with error code %d", ret);
        return ret;
    }

    *buf = (void *)wsbmBuf;

    VTRACE("wrap buffer %p for handle %#x", wsbmBuf, handle);
    return 0;
}
开发者ID:MIPS,项目名称:hardware-intel-img-hwcomposer,代码行数:30,代码来源:WsbmWrapper.c


示例6: CTRACE

OverlayBackBuffer* OverlayPlaneBase::createBackBuffer()
{
    CTRACE();

    // create back buffer
    OverlayBackBuffer *backBuffer = (OverlayBackBuffer *)malloc(sizeof(OverlayBackBuffer));
    if (!backBuffer) {
        ETRACE("failed to allocate back buffer");
        return 0;
    }


    int size = sizeof(OverlayBackBufferBlk);
    int alignment = 64 * 1024;
    void *wsbmBufferObject = 0;
    bool ret = mWsbm->allocateTTMBuffer(size, alignment, &wsbmBufferObject);
    if (ret == false) {
        ETRACE("failed to allocate TTM buffer");
        return 0;
    }

    void *virtAddr = mWsbm->getCPUAddress(wsbmBufferObject);
    uint32_t gttOffsetInPage = mWsbm->getGttOffset(wsbmBufferObject);

    backBuffer->buf = (OverlayBackBufferBlk *)virtAddr;
    backBuffer->gttOffsetInPage = gttOffsetInPage;
    backBuffer->bufObject = wsbmBufferObject;

    VTRACE("cpu %p, gtt %d", virtAddr, gttOffsetInPage);

    return backBuffer;
}
开发者ID:OMNI-Zenfone-2,项目名称:hwcomposer,代码行数:32,代码来源:OverlayPlaneBase.cpp


示例7: saudio_snd_init_ipc

static int saudio_snd_init_ipc(struct snd_saudio *saudio)
{
	int result = 0;
	int32_t i = 0, j = 0;
	struct saudio_stream *stream = NULL;
	struct saudio_dev_ctrl *dev_ctrl = NULL;

	ADEBUG();

	for (i = 0; i < SAUDIO_DEV_MAX; i++) {	/* now only support  one device */
		dev_ctrl = &saudio->dev_ctrl[i];
		result =
		    sblock_create(dev_ctrl->dst, dev_ctrl->monitor_channel,
				  SAUDIO_MONITOR_BLOCK_COUNT, CMD_BLOCK_SIZE,
				  SAUDIO_MONITOR_BLOCK_COUNT, CMD_BLOCK_SIZE);
		if (result) {
			ETRACE
			    ("saudio:monitor channel create  failed result is %d\n",
			     result);
			goto __nodev;
		}
		result =
		    sblock_create(dev_ctrl->dst, dev_ctrl->channel,
				  SAUDIO_CMD_BLOCK_COUNT, CMD_BLOCK_SIZE,
				  SAUDIO_CMD_BLOCK_COUNT, CMD_BLOCK_SIZE);
		if (result) {
			ETRACE
			    ("saudio_thread sblock create  failed result is %d\n",
			     result);
			goto __nodev;
		}
		pr_debug("saudio_thread sblock create  result is %d\n", result);

		for (j = 0; j < SAUDIO_STREAM_MAX; j++) {
			stream = &dev_ctrl->stream[j];
			result =
			    sblock_create(stream->dst, stream->channel,
					  SAUDIO_STREAM_BLOCK_COUNT,
					  TX_DATA_BLOCK_SIZE,
					  SAUDIO_STREAM_BLOCK_COUNT,
					  RX_DATA_BLOCK_SIZE);
			if (result) {
				ETRACE
				    ("saudio_thread sblock create  failed result is %d\n",
				     result);
				goto __nodev;
			}
			sblock_register_notifier(stream->dst, stream->channel,
						 sblock_notifier, stream);
			pr_debug("saudio_thread sblock create  result is %d\n",
				 result);
		}
	}
	ADEBUG();
	return result;
__nodev:
	ETRACE("initialization failed\n");
	return result;
}
开发者ID:dhs-shine,项目名称:sprd_project,代码行数:59,代码来源:saudio.c


示例8: UeventObserverThread

bool UeventObserver::initialize()
{
    mListeners.clear();

    if (mUeventFd != -1) {
        return true;
    }

    mThread = new UeventObserverThread(this);
    if (!mThread.get()) {
        ETRACE("failed to create uevent observer thread");
        return false;
    }

    // init uevent socket
    struct sockaddr_nl addr;
    // set the socket receive buffer to 64K
    // NOTE: this is only called for once
    int sz = 64 * 1024;

    memset(&addr, 0, sizeof(addr));
    addr.nl_family = AF_NETLINK;
    addr.nl_pid =  pthread_self() | getpid();
    addr.nl_groups = 0xffffffff;

    mUeventFd = socket(PF_NETLINK, SOCK_DGRAM, NETLINK_KOBJECT_UEVENT);
    if (mUeventFd < 0) {
        DEINIT_AND_RETURN_FALSE("failed to create uevent socket");
    }

    if (setsockopt(mUeventFd, SOL_SOCKET, SO_RCVBUFFORCE, &sz, sizeof(sz))) {
        WTRACE("setsockopt() failed");
        //return false;
    }

    if (bind(mUeventFd, (struct sockaddr *) &addr, sizeof(addr)) < 0) {
        DEINIT_AND_RETURN_FALSE("failed to bind scoket");
        return false;
    }

    memset(mUeventMessage, 0, UEVENT_MSG_LEN);

    int exitFds[2];
    if (pipe(exitFds) < 0) {
        ETRACE("failed to make pipe");
        deinitialize();
        return false;
    }
    mExitRDFd = exitFds[0];
    mExitWDFd = exitFds[1];

    return true;
}
开发者ID:MIPS,项目名称:hardware-intel-img-hwcomposer,代码行数:53,代码来源:UeventObserver.cpp


示例9: vp8_translate_parse_status

void vp8_translate_parse_status(vp8_Status status)
{
    switch (status)
    {
    case VP8_UNSUPPORTED_VERSION:
        ETRACE("Parser returns VP8_UNSUPPORTED_VERSION");
        break;
    case VP8_UNSUPPORTED_BITSTREAM:
        ETRACE("Parser returns VP8_UNSUPPORTED_BITSTREAM");
        break;
    case VP8_INVALID_FRAME_SYNC_CODE:
        ETRACE("Parser returns VP8_INVALID_FRAME_SYNC_CODE");
        break;
    case VP8_UNEXPECTED_END_OF_BITSTREAM:
        ETRACE("Parser returns VP8_UNEXPECTED_END_OF_BITSTREAM");
        break;
    case VP8_CORRUPT_FRAME:
        ETRACE("Parser returns VP8_CORRUPT_FRAME");
        break;
    case VP8_MEMORY_ERROR:
        ETRACE("Parser returns MEMORY_ERROR");
        break;
    case VP8_NO_INITIALIZATION:
        ETRACE("Parser returns VP8_NO_INITIALIZATION");
        break;
    case VP8_UNKNOWN_ERROR:
        ETRACE("Parser returns VP8_UNKNOWN_ERROR");
        break;
    }

    return;
}
开发者ID:knone1,项目名称:hardware_intel_common_libmix,代码行数:32,代码来源:vp8parse.c


示例10: psbWsbmInitialize

int psbWsbmInitialize(int drmFD)
{
    union drm_psb_extension_arg arg;
    const char drmExt[] = "psb_ttm_placement_alphadrop";
    int ret = 0;

    CTRACE();

    if (drmFD <= 0) {
        ETRACE("invalid drm fd %d", drmFD);
        return drmFD;
    }

    /*init wsbm*/
    ret = wsbmInit(wsbmNullThreadFuncs(), &vNodeFuncs);
    if (ret) {
        ETRACE("failed to initialize Wsbm, error code %d", ret);
        return ret;
    }

    VTRACE("DRM_PSB_EXTENSION %d", DRM_PSB_EXTENSION);

    /*get devOffset via drm IOCTL*/
    strncpy(arg.extension, drmExt, sizeof(drmExt));

    ret = drmCommandWriteRead(drmFD, 6/*DRM_PSB_EXTENSION*/, &arg, sizeof(arg));
    if(ret || !arg.rep.exists) {
        ETRACE("failed to get device offset, error code %d", ret);
        goto out;
    }

    VTRACE("ioctl offset %#x", arg.rep.driver_ioctl_offset);

    mainPool = wsbmTTMPoolInit(drmFD, arg.rep.driver_ioctl_offset);
    if(!mainPool) {
        ETRACE("failed to initialize TTM Pool");
        ret = -EINVAL;
        goto out;
    }

    VTRACE("Wsbm initialization succeeded. mainPool %p", mainPool);

    return 0;

out:
    psbWsbmTakedown();
    return ret;
}
开发者ID:MIPS,项目名称:hardware-intel-img-hwcomposer,代码行数:48,代码来源:WsbmWrapper.c


示例11: ETRACE

void
EventDispatcher::SetDragMessage(BMessage& message,
	ServerBitmap* bitmap, const BPoint& offsetFromCursor)
{
	ETRACE(("EventDispatcher::SetDragMessage()\n"));

	BAutolock _(this);

	if (fLastButtons == 0) {
		// mouse buttons has already been released or was never pressed
		bitmap->ReleaseReference();
		return;
	}

	if (fDragBitmap != bitmap) {
		if (fDragBitmap)
			fDragBitmap->ReleaseReference();

		fDragBitmap = bitmap;

		if (fDragBitmap != NULL)
			fDragBitmap->AcquireReference();
	}

	fHWInterface->SetDragBitmap(bitmap, offsetFromCursor);

	fDragMessage = message;
	fDraggingMessage = true;
	fDragOffset = offsetFromCursor;
}
开发者ID:mmadia,项目名称:Haiku-services-branch,代码行数:30,代码来源:EventDispatcher.cpp


示例12: ETRACE

bool FDHandler::AddFd(int fd) {
  if (fd < 0) {
    ETRACE("Cannot add negative fd: %d", fd);
    return false;
  }

  auto it = fds_.find(fd);
  if (it != fds_.end()) {
    ETRACE("FD already being watched: %d\n", it->first);
    return false;
  }

  fds_.emplace(fd, FDWatch());

  return true;
}
开发者ID:gaochun,项目名称:IA-Hardware-Composer,代码行数:16,代码来源:fdhandler.cpp


示例13: ETRACE

void TngSpritePlane::setZOrderConfig(ZOrderConfig& zorderConfig,
                                          void *nativeConfig)
{
    if (!nativeConfig) {
        ETRACE("Invalid parameter, no native config");
        return;
    }

    mAbovePrimary = false;

    int primaryIndex = -1;
    int spriteIndex = -1;
    // only consider force bottom when overlay is active
    for (size_t i = 0; i < zorderConfig.size(); i++) {
        DisplayPlane *plane = zorderConfig[i]->plane;
        if (plane->getType() == DisplayPlane::PLANE_PRIMARY)
            primaryIndex = i;
        if (plane->getType() == DisplayPlane::PLANE_SPRITE) {
            spriteIndex = i;
        }
    }

    // if has overlay plane which is below primary plane
    if (spriteIndex > primaryIndex) {
        mAbovePrimary = true;
    }

    struct intel_dc_plane_zorder *zorder =
        (struct intel_dc_plane_zorder *)nativeConfig;
    zorder->abovePrimary = mAbovePrimary ? 1 : 0;
}
开发者ID:OMNI-Zenfone-2,项目名称:hwcomposer,代码行数:31,代码来源:TngSpritePlane.cpp


示例14: vaudio_thread

    static int
vaudio_thread (void* data)
{
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
    daemonize();
#else
    daemonize("vaudio-fe");
#endif
    data = (void*) vaudio;
    while (!vaudio_thread_aborted) {
	down (&vaudio_thread_sem);

	if ( (vaudio_thread_init_now & 2) ) {
	    vaudio_thread_init_now &= ~2;
	    snd_card_free(vaudio_card);
	    if (vaudio_snd_probe() < 0) {
		ETRACE ("virtual audio ALSA card initialization failed\n");
	    }
	}

	if ( (vaudio_thread_init_now & 1) ) {
	    vaudio_thread_init_now &= ~1;
	    vaudio_snd_init_card(data);
	}
    }
    complete_and_exit(&vaudio_thread_completion, 0);
	/*NOTREACHED*/
    return 0;
}
开发者ID:LinkLunk,项目名称:android_kernel_samsung_mint,代码行数:29,代码来源:vaudio-fe.c


示例15: ETRACE

bool UeventObserver::threadLoop()
{
    if (mUeventFd == -1) {
        ETRACE("invalid uEvent file descriptor");
        return false;
    }

    struct pollfd fds[2];
    int nr;

    fds[0].fd = mUeventFd;
    fds[0].events = POLLIN;
    fds[0].revents = 0;
    fds[1].fd = mExitRDFd;
    fds[1].events = POLLIN;
    fds[1].revents = 0;
    nr = poll(fds, 2, -1);

    if (nr > 0 && fds[0].revents == POLLIN) {
        int count = recv(mUeventFd, mUeventMessage, UEVENT_MSG_LEN - 2, 0);
        if (count > 0) {
            onUevent();
        }
    } else if (fds[1].revents) {
        close(mExitRDFd);
        mExitRDFd = -1;
        ITRACE("exiting wait");
        return false;
    }
    // always looping
    return true;
}
开发者ID:MIPS,项目名称:hardware-intel-img-hwcomposer,代码行数:32,代码来源:UeventObserver.cpp


示例16: _RemoveTokens

bool
EventDispatcher::_AddTokens(BMessage* message, EventTarget* target,
	uint32 eventMask, BMessage* nextMouseMoved, int32* _viewToken)
{
	_RemoveTokens(message);

	int32 count = target->CountListeners();
	int32 added = 0;

	for (int32 i = 0; i < count; i++) {
		event_listener* listener = target->ListenerAt(i);
		if ((listener->EffectiveEventMask() & eventMask) == 0)
			continue;

		if (nextMouseMoved != NULL && message->what == B_MOUSE_MOVED
			&& (listener->EffectiveOptions() & B_NO_POINTER_HISTORY) != 0
			&& message != nextMouseMoved
			&& _viewToken != NULL) {
			if (listener->token == *_viewToken) {
				// focus view doesn't want to get pointer history
				*_viewToken = B_NULL_TOKEN;
			}
			continue;
		}

		ETRACE(("  add token %ld\n", listener->token));

		if (message->AddInt32(kTokenName, listener->token) == B_OK)
			added++;
	}

	return added != 0;
}
开发者ID:mmadia,项目名称:Haiku-services-branch,代码行数:33,代码来源:EventDispatcher.cpp


示例17: strlen

void UeventObserver::onUevent()
{
    char *msg = mUeventMessage;
    const char *envelope = DrmConfig::getUeventEnvelope();
    if (strncmp(msg, envelope, strlen(envelope)) != 0)
        return;

    msg += strlen(msg) + 1;

    UeventListener *listener;
    String8 key;
    while (*msg) {
        key = String8(msg);
        if (mListeners.indexOfKey(key) >= 0) {
            DTRACE("received Uevent: %s", msg);
            listener = mListeners.valueFor(key);
            if (listener) {
                listener->func(listener->data);
            } else {
                ETRACE("no listener for uevent %s", msg);
            }
        }
        msg += strlen(msg) + 1;
    }
}
开发者ID:MIPS,项目名称:hardware-intel-img-hwcomposer,代码行数:25,代码来源:UeventObserver.cpp


示例18: ETRACE

Decode_Status VideoDecoderVP8::decode(VideoDecodeBuffer *buffer) {
    Decode_Status status;
    vbp_data_vp8 *data = NULL;
    if (buffer == NULL) {
        ETRACE("VideoDecodeBuffer is NULL.");
        return DECODE_INVALID_DATA;
    }

    status = VideoDecoderBase::parseBuffer(
                 buffer->data,
                 buffer->size,
                 false,
                 (void**)&data);
    CHECK_STATUS("VideoDecoderBase::parseBuffer");

    mShowFrame = data->codec_data->show_frame;

    if (!mVAStarted) {
        status = startVA(data);
        CHECK_STATUS("startVA");
    }

    VideoDecoderBase::setRotationDegrees(buffer->rotationDegrees);

    status = decodeFrame(buffer, data);

    return status;
}
开发者ID:PDi-Communication-Systems-Inc,项目名称:lollipop_hardware_intel,代码行数:28,代码来源:VideoDecoderVP8.cpp


示例19: WTRACE

bool DisplayPlaneManager::initialize()
{
    int i, j;

    if (mInitialized) {
        WTRACE("object has been initialized");
        return true;
    }


    // calculate total plane number and free plane bitmaps
    mPlaneCount[DisplayPlane::PLANE_SPRITE] = mSpritePlaneCount;
    mPlaneCount[DisplayPlane::PLANE_OVERLAY] = mOverlayPlaneCount;
    mPlaneCount[DisplayPlane::PLANE_PRIMARY] = mPrimaryPlaneCount;
    mPlaneCount[DisplayPlane::PLANE_CURSOR] = mCursorPlaneCount;

    mTotalPlaneCount = mSpritePlaneCount+ mOverlayPlaneCount+ mPrimaryPlaneCount + mCursorPlaneCount;
    if (mTotalPlaneCount == 0) {
        ETRACE("plane count is not initialized");
        return false;
    }

    for (i = 0; i < DisplayPlane::PLANE_MAX; i++) {
        mFreePlanes[i] = ((1 << mPlaneCount[i]) - 1);
    }

    // allocate plane pools
    for (i = 0; i < DisplayPlane::PLANE_MAX; i++) {
        if (mPlaneCount[i]) {
            mPlanes[i].setCapacity(mPlaneCount[i]);

            for (j = 0; j < mPlaneCount[i]; j++) {
                DisplayPlane* plane = allocPlane(j, i);
                if (!plane) {
                    ETRACE("failed to allocate plane %d, type %d", j, i);
                    DEINIT_AND_RETURN_FALSE();
                }
                mPlanes[i].push_back(plane);
            }
        }
    }

    mInitialized = true;
    return true;
}
开发者ID:MIPS,项目名称:hardware-intel-img-hwcomposer,代码行数:45,代码来源:DisplayPlaneManager.cpp


示例20: saudio_ctrl_thread

static int saudio_ctrl_thread(void *data)
{
	int result = 0;
	struct snd_saudio *saudio = (struct snd_saudio *)data;
	ADEBUG();

	result = saudio_snd_init_ipc(saudio);
	if (result) {
		printk(KERN_ERR "saudio:saudio_snd_init_ipc error %d\n",
		       result);
		return -1;
	}
	while (!kthread_should_stop()) {
		printk(KERN_INFO
		       "%s,saudio: waiting for modem boot handshake,dst %d,channel %d\n",
		       __func__, saudio->dst, saudio->channel);
		saudio_snd_wait_modem_restart(saudio);

		saudio->in_init = 1;

		printk(KERN_INFO
		       "%s,saudio: modem boot and handshake ok,dst %d, channel %d\n",
		       __func__, saudio->dst, saudio->channel);
		saudio_snd_card_free(saudio);
		printk(KERN_INFO
		       "saudio_ctrl_thread flush work queue in dst %d, channel %d\n",
		       saudio->dst, saudio->channel);

		flush_workqueue(saudio->queue);

		saudio->in_init = 0;

		printk(KERN_INFO
		       "saudio_ctrl_thread flush work queue out,dst %d, channel %d\n",
		       saudio->dst, saudio->channel);

		if(saudio_snd_notify_modem_clear(saudio)) {
			printk(KERN_ERR " saudio_ctrl_thread modem error again when notify modem clear \n");
		    continue;
		}

		saudio_clear_ctrl_cmd(saudio);

		if(!saudio->card) {
			result = saudio_snd_init_card(saudio);
			printk(KERN_INFO
			       "saudio: snd card init reulst %d, dst %d, channel %d\n",
			       result, saudio->dst, saudio->channel);
		}
		mutex_lock(&saudio->mutex);
		saudio->state = 1;
		mutex_unlock(&saudio->mutex);
	}
	ETRACE("saudio_ctrl_thread  create  ok\n");

	return 0;
}
开发者ID:dhs-shine,项目名称:sprd_project,代码行数:57,代码来源:saudio.c



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ ETS_GPIO_INTR_DISABLE函数代码示例发布时间:2022-05-30
下一篇:
C++ ETK_OBJECT函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap