<?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 USB: arc otg device controller driver, spinlock problem with linux real time kernel in Other NXP Products</title>
    <link>https://community.nxp.com/t5/Other-NXP-Products/USB-arc-otg-device-controller-driver-spinlock-problem-with-linux/m-p/192188#M1761</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Hello,&lt;BR /&gt;&lt;BR /&gt;I have the following problem. I'm currently working on a Bluetechnix development board with an i.MX31 controller on it and using MontaVista Mobilinux 5.0.0 (2.6.21 rt). I wanted to the test usb mass storage gadet&lt;BR /&gt;&amp;nbsp;by doing the following:&lt;BR /&gt;First, I modprobed the corresponding drivers:&lt;BR /&gt;&amp;nbsp;modprobe isp1504_arc&lt;BR /&gt;&amp;nbsp;modprobe g_file_storage file=myfile.&lt;BR /&gt;Note: The error does only occur when the kernel runs in real time mode - I turned on 'Complete Preemption'.&lt;BR /&gt;After connecting a Mini-B-to-A cable between my board and my PC the driver crashes (I've attached the error output into a file). Then I stepped through the kernel sources, especially through arcotg_udc.c, which comes from Freescale, as it seems that the error occurs there. I noticed that a critical section is sometime locked twice, using spin_lock_irqsave(...), e.g.: when an interrupt is raised then arcotg_udc_poll(...) function is called which first locks a section with spin_lock_irqsave(&amp;amp;udc-&amp;gt;lock) and within this section it might implicitly call in a sub-function arcotg_rp_queue(...) which also locks a critical section using the same mutex as above in spin_lock_irqsave(&amp;amp;udc-&amp;gt;lock).&amp;nbsp; I do not really understand this, as I'm not an expert in this area. So could you please explain it to me.&lt;BR /&gt;&lt;BR /&gt;Best regards,&lt;BR /&gt;&lt;BR /&gt;Rudolf Dittrich&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 07 Oct 2008 16:06:53 GMT</pubDate>
    <dc:creator>rdittrich</dc:creator>
    <dc:date>2008-10-07T16:06:53Z</dc:date>
    <item>
      <title>USB: arc otg device controller driver, spinlock problem with linux real time kernel</title>
      <link>https://community.nxp.com/t5/Other-NXP-Products/USB-arc-otg-device-controller-driver-spinlock-problem-with-linux/m-p/192188#M1761</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Hello,&lt;BR /&gt;&lt;BR /&gt;I have the following problem. I'm currently working on a Bluetechnix development board with an i.MX31 controller on it and using MontaVista Mobilinux 5.0.0 (2.6.21 rt). I wanted to the test usb mass storage gadet&lt;BR /&gt;&amp;nbsp;by doing the following:&lt;BR /&gt;First, I modprobed the corresponding drivers:&lt;BR /&gt;&amp;nbsp;modprobe isp1504_arc&lt;BR /&gt;&amp;nbsp;modprobe g_file_storage file=myfile.&lt;BR /&gt;Note: The error does only occur when the kernel runs in real time mode - I turned on 'Complete Preemption'.&lt;BR /&gt;After connecting a Mini-B-to-A cable between my board and my PC the driver crashes (I've attached the error output into a file). Then I stepped through the kernel sources, especially through arcotg_udc.c, which comes from Freescale, as it seems that the error occurs there. I noticed that a critical section is sometime locked twice, using spin_lock_irqsave(...), e.g.: when an interrupt is raised then arcotg_udc_poll(...) function is called which first locks a section with spin_lock_irqsave(&amp;amp;udc-&amp;gt;lock) and within this section it might implicitly call in a sub-function arcotg_rp_queue(...) which also locks a critical section using the same mutex as above in spin_lock_irqsave(&amp;amp;udc-&amp;gt;lock).&amp;nbsp; I do not really understand this, as I'm not an expert in this area. So could you please explain it to me.&lt;BR /&gt;&lt;BR /&gt;Best regards,&lt;BR /&gt;&lt;BR /&gt;Rudolf Dittrich&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 07 Oct 2008 16:06:53 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Other-NXP-Products/USB-arc-otg-device-controller-driver-spinlock-problem-with-linux/m-p/192188#M1761</guid>
      <dc:creator>rdittrich</dc:creator>
      <dc:date>2008-10-07T16:06:53Z</dc:date>
    </item>
    <item>
      <title>Re: USB: arc otg device controller driver, spinlock problem with linux real time kernel</title>
      <link>https://community.nxp.com/t5/Other-NXP-Products/USB-arc-otg-device-controller-driver-spinlock-problem-with-linux/m-p/192189#M1762</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Rudolf,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I am not familiar with MontaVista's BSP, but on Freescale's BSP in order to get OTG functionality we need to load the drivers in the following order:&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;modprobe isp1504_arc&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;P&gt;modprobe ehci-hcd&lt;/P&gt;&lt;FONT face="CourierNewPSMT" size="2"&gt;&lt;/FONT&gt;&lt;P&gt;&lt;FONT face="CourierNewPSMT" size="2"&gt;modprobe g_file_storage file=/dev/ram/0&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="CourierNewPSMT" size="2"&gt;Can you try load ehci-hcd module?&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="CourierNewPSMT" size="2"&gt;Regards,&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="CourierNewPSMT" size="2"&gt;Fabio Estevam&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="CourierNewPSMT" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 30 Oct 2008 01:50:54 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Other-NXP-Products/USB-arc-otg-device-controller-driver-spinlock-problem-with-linux/m-p/192189#M1762</guid>
      <dc:creator>fabio_estevam</dc:creator>
      <dc:date>2008-10-30T01:50:54Z</dc:date>
    </item>
  </channel>
</rss>

