Huang, Xinmei
2006-Dec-08 06:34 UTC
RE: [Xen-devel] [PATCH]UHC should not generate interrupt when USBdevice returns NAK
Hi all, Is there any comment on this patch? Current HID(mouse/tablet) emulator in qemu-dm persistently returns a data in an INTERRUPT transfer, even if the device (mouse/tablet) keeps the same status as the last interrupt transfer. This behavior does not reflect the HID/USB/UHCI spec. According to HID spec, USB HID device (using interrupt pipe) will return an NAK indicate no interrupt pending(i.e. no data needs to be transferred). Current HID always returns a data package, notifying UHC the device have data to transfer and a interrupt on complete will generate at the end of the frame in which this interrupt transfer is completed. In fact, most of these interrupts are useless and time-consuming. UHC should let a TD active if receiving an NAK (in non-setup transaction) and will not generate an interrtupt on complete for this TD. But current UHC emulator in qemu-dm behaves like this: 1)update int_mask when a TD is fetched 2)check int_mask to decide to generate an interrupt or not after this TD is executed.If NAK is return when executing this TD, an interrupt on complete, which is unwanted, will still be generated. This patch makes the UHC and HID device emulators work consistently with spec, decreasing unwanted interrupts to Guest OS.>-----Original Message----- >From: xen-devel-bounces@lists.xensource.com >[mailto:xen-devel-bounces@lists.xensource.com] On Behalf Of >Huang, Xinmei >Sent: 2006年12月5日 12:53 >To: xen-devel@lists.xensource.com >Subject: [Xen-devel] [PATCH]UHC should not generate interrupt >when USBdevice returns NAK > > >This patch adds support for USB mouse/tablet status check and restricts >Universal Host Controller interrupt generating when received NAK in >interrupt transfer. > >According to usb spec, USB mouse/tablet device returns NAK to host >controller if its status does not alter in interrupt transfer. >And UHC should leave a TD active when receiving NAK and execute this >incompleted TD in a subseqent frame. >UHC only generates an interrupt on complete after the TD with ICO bit=1 >is completed. > >This patch obliges UHC & USB mouse/tablet to behave consistently with >spec. > > >Signed-off-by: Xinmei Huang <xinmei.huang@intel.com> >_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Keir Fraser
2006-Dec-08 06:36 UTC
Re: [Xen-devel] [PATCH]UHC should not generate interrupt when USBdevice returns NAK
It''s checked in but nothing has pushed from our staging tree in the last 24 hours. -- Keir On 8/12/06 6:34 am, "Huang, Xinmei" <xinmei.huang@intel.com> wrote:> Hi all, > Is there any comment on this patch? > > Current HID(mouse/tablet) emulator in qemu-dm persistently returns a data in > an INTERRUPT transfer, even if the device (mouse/tablet) keeps the same status > as the last interrupt transfer. > This behavior does not reflect the HID/USB/UHCI spec. According to HID spec, > USB HID device (using interrupt pipe) will return an NAK indicate no interrupt > pending(i.e. no data needs to be transferred). > Current HID always returns a data package, notifying UHC the device have data > to transfer and a interrupt on complete will generate at the end of the frame > in which this interrupt transfer is completed. In fact, most of these > interrupts are useless and time-consuming. > UHC should let a TD active if receiving an NAK (in non-setup transaction) and > will not generate an interrtupt on complete for this TD. But current UHC > emulator in qemu-dm behaves like this: > 1)update int_mask when a TD is fetched > 2)check int_mask to decide to generate an interrupt or not after this TD is > executed.If NAK is return when executing this TD, an interrupt on complete, > which is unwanted, will still be generated. > > This patch makes the UHC and HID device emulators work consistently with spec, > decreasing unwanted interrupts to Guest OS. > > > >> -----Original Message----- >> From: xen-devel-bounces@lists.xensource.com >> [mailto:xen-devel-bounces@lists.xensource.com] On Behalf Of >> Huang, Xinmei >> Sent: 2006年12月5日 12:53 >> To: xen-devel@lists.xensource.com >> Subject: [Xen-devel] [PATCH]UHC should not generate interrupt >> when USBdevice returns NAK >> >> >> This patch adds support for USB mouse/tablet status check and restricts >> Universal Host Controller interrupt generating when received NAK in >> interrupt transfer. >> >> According to usb spec, USB mouse/tablet device returns NAK to host >> controller if its status does not alter in interrupt transfer. >> And UHC should leave a TD active when receiving NAK and execute this >> incompleted TD in a subseqent frame. >> UHC only generates an interrupt on complete after the TD with ICO bit=1 >> is completed. >> >> This patch obliges UHC & USB mouse/tablet to behave consistently with >> spec. >> >> >> Signed-off-by: Xinmei Huang <xinmei.huang@intel.com> >> > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xensource.com > http://lists.xensource.com/xen-devel_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel