<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Possible device postinit bug in the USB 5.0 stack in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Possible-device-postinit-bug-in-the-USB-5-0-stack/m-p/360071#M18252</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi John,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for the suggestion! I will forward this to our USB stack develop team.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks again and Best Regards,&lt;/P&gt;&lt;P&gt;Kan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 18 Dec 2014 07:44:59 GMT</pubDate>
    <dc:creator>Kan_Li</dc:creator>
    <dc:date>2014-12-18T07:44:59Z</dc:date>
    <item>
      <title>Possible device postinit bug in the USB 5.0 stack</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Possible-device-postinit-bug-in-the-USB-5-0-stack/m-p/360070#M18251</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Routine usb_dci_khci_postinit() enables the D+ pullup resistor, enables the USB module, and clears the Suspend condition on the bus.&amp;nbsp; Presumably, there is an equivalent routine in ehci_dev.c, but I haven't looked for it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;usb_dci_khci_postinit() is called through usb_device_postinit().&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Every device class driver's class init routine includes a call to usb_device_postinit().&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;That specifically includes usb_composite.c, the Composite device class driver.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This means that a composite device is going to issue several calls to usb_device_postinit().&amp;nbsp; This is probably OK for now, until/unless someone adds code to the routine that should only be executed once.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Suggested fix:&amp;nbsp; Wrap the calls in usb_audio.c, usb_dfu.c, usb_hid.c, usb_msc.c, ..., in #if !USBCFG_DEV_COMPOSITE/#endif pairs.&amp;nbsp; This guarantees that devices compiled as standalone devices (not composite) will execute the call as always, and composite devices will only execute the call in usb_composite.c.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 17 Dec 2014 20:48:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Possible-device-postinit-bug-in-the-USB-5-0-stack/m-p/360070#M18251</guid>
      <dc:creator>johnstrohm</dc:creator>
      <dc:date>2014-12-17T20:48:11Z</dc:date>
    </item>
    <item>
      <title>Re: Possible device postinit bug in the USB 5.0 stack</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Possible-device-postinit-bug-in-the-USB-5-0-stack/m-p/360071#M18252</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi John,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for the suggestion! I will forward this to our USB stack develop team.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks again and Best Regards,&lt;/P&gt;&lt;P&gt;Kan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 18 Dec 2014 07:44:59 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Possible-device-postinit-bug-in-the-USB-5-0-stack/m-p/360071#M18252</guid>
      <dc:creator>Kan_Li</dc:creator>
      <dc:date>2014-12-18T07:44:59Z</dc:date>
    </item>
  </channel>
</rss>

