From: minskey g. <Minskey.Guo@Sun.COM> - 2007-12-26 00:01:15
|
Hi, guys, In intelWaitIrq() of intel_ioctl.c file, there is the following code: void intelWaitIrq( intelContextPtr intel, int seq ) { ... do { ret = drmCommandWrite( intel->driFd, DRM_I830_IRQ_WAIT, &intel->iw, sizeof(intel->iw) ); } while (ret == -EAGAIN || ret == -EINTR); ... } But the kernel i915 DRM driver doesn't return EAGAIN for ioctl DRM_I830_IRQ_WAIT. Refer to i915_wait_irq() in file i915_irq.c and DRM_WAIT_ON macro in drm_os_linux.h >From the macro of DRM_WAIT_ON, I think i915_wait_irq()/ ioctl DRM_I830_IRQ_WAIT can get return value of -EBUYS or -EINTR only, no -EAGAIN. So, I guess that the checking for -EAGAIN should be replaced with the checking for -EBUSY in intelWaitIrq() of intel_ioctl.c, Is my understanding right ? BTW, I cam not in this alias, please reply me directly. thanks -minskey |