<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>change log for rtems (2011-07-11)</title>
</head>
<body text='#000000' bgcolor='#ffffff'>
<a name='cs1'></a>
<table border='0' cellspacing='0' cellpadding='5' width='100%' bgcolor='#eeeeee'>
<tr><td colspan='3' bgcolor='#dddddd'>
 <font color='#bb2222'><strong>sh</strong></font>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>2011-07-11 Sebastian Huber <sebastian.huber@embedded-brains.de>

        * libchip/serial/ns16550_p.h, libchip/serial/ns16550.c: Remove
        interrupt handler during last close.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/ChangeLog.diff?r1=text&tr1=1.551&r2=text&tr2=1.552&diff_format=h">M</a></td><td width='1%'>1.552</td><td width='100%'>c/src/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/libchip/serial/ns16550.c.diff?r1=text&tr1=1.49&r2=text&tr2=1.50&diff_format=h">M</a></td><td width='1%'>1.50</td><td width='100%'>c/src/libchip/serial/ns16550.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/libchip/serial/ns16550_p.h.diff?r1=text&tr1=1.16&r2=text&tr2=1.17&diff_format=h">M</a></td><td width='1%'>1.17</td><td width='100%'>c/src/libchip/serial/ns16550_p.h</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/c/src/ChangeLog:1.551 rtems/c/src/ChangeLog:1.552
--- rtems/c/src/ChangeLog:1.551 Thu Jul  7 17:15:24 2011
+++ rtems/c/src/ChangeLog       Mon Jul 11 08:31:12 2011
</font><font color='#997700'>@@ -1,3 +1,8 @@
</font><font color='#000088'>+2011-07-11    Sebastian Huber <sebastian.huber@embedded-brains.de>
+
+       * libchip/serial/ns16550_p.h, libchip/serial/ns16550.c: Remove
+       interrupt handler during last close.
+
</font> 2011-07-07        Joel Sherrill <joel.sherrill@oarcorp.com>
 
        * libchip/display/disp_hcms29xx.c, libchip/flash/am29lv160.c,

<font color='#006600'>diff -u rtems/c/src/libchip/serial/ns16550.c:1.49 rtems/c/src/libchip/serial/ns16550.c:1.50
--- rtems/c/src/libchip/serial/ns16550.c:1.49   Wed Feb 16 02:25:00 2011
+++ rtems/c/src/libchip/serial/ns16550.c        Mon Jul 11 08:31:13 2011
</font><font color='#997700'>@@ -203,15 +203,21 @@
</font>   void    * arg
 )
 {
<font color='#000088'>+  console_tbl *c = &Console_Port_Tbl [minor];
+
</font>   /*
    * Negate DTR
    */
<font color='#880000'>-  if(Console_Port_Tbl[minor].pDeviceFlow != &ns16550_flow_DTRCTS) {
</font><font color='#000088'>+  if (c->pDeviceFlow != &ns16550_flow_DTRCTS) {
</font>     ns16550_negate_DTR(minor);
   }
 
   ns16550_enable_interrupts(minor, NS16550_DISABLE_ALL_INTR);
 
<font color='#000088'>+  if (c->pDeviceFns->deviceOutputUsesInterrupts) {
+    ns16550_cleanup_interrupts(minor);
+  }
+
</font>   return(RTEMS_SUCCESSFUL);
 }
 
<font color='#997700'>@@ -651,6 +657,38 @@
</font>   #endif
 }
 
<font color='#000088'>+NS16550_STATIC void ns16550_cleanup_interrupts(int minor)
+{
+  #if defined(BSP_FEATURE_IRQ_EXTENSION)
+    rtems_status_code sc = RTEMS_SUCCESSFUL;
+    console_tbl *c = &Console_Port_Tbl [minor];
+    sc = rtems_interrupt_handler_remove(
+      c->ulIntVector,
+      ns16550_isr,
+      (void *) minor
+    );
+    if (sc != RTEMS_SUCCESSFUL) {
+      /* FIXME */
+      printk("%s: Error: Remove interrupt handler\n", __func__);
+      rtems_fatal_error_occurred(0xdeadbeef);
+    }
+  #elif defined(BSP_FEATURE_IRQ_LEGACY)
+    int rv = 0;
+    console_tbl *c = &Console_Port_Tbl [minor];
+    rtems_irq_connect_data cd = {
+      .name = c->ulIntVector,
+      .hdl = ns16550_isr,
+      .handle = (void *) minor
+    };
+    rv = BSP_remove_rtems_irq_handler(&cd);
+    if (rv == 0) {
+      /* FIXME */
+      printk("%s: Error: Remove interrupt handler\n", __func__);
+      rtems_fatal_error_occurred(0xdeadbeef);
+    }
+  #endif
+}
+
</font> /*
  *  ns16550_write_support_polled
  *

<font color='#006600'>diff -u rtems/c/src/libchip/serial/ns16550_p.h:1.16 rtems/c/src/libchip/serial/ns16550_p.h:1.17
--- rtems/c/src/libchip/serial/ns16550_p.h:1.16 Tue Feb 15 17:25:24 2011
+++ rtems/c/src/libchip/serial/ns16550_p.h      Mon Jul 11 08:31:13 2011
</font><font color='#997700'>@@ -171,6 +171,8 @@
</font> 
 NS16550_STATIC void ns16550_initialize_interrupts(int minor);
 
<font color='#000088'>+NS16550_STATIC void ns16550_cleanup_interrupts(int minor);
+
</font> NS16550_STATIC ssize_t ns16550_write_support_int(
   int   minor,
   const char *buf,
</pre>
<p> </p>

<p>--<br />
<small>Generated by <a href="http://www.codewiz.org/projects/index.html#loginfo">Deluxe Loginfo</a> 2.122 by Bernardo Innocenti <bernie@develer.com></small></p>
</body>
</html>