[PATCH] Updated Legacy code in arm rtl22xx

Vipul Nayyar nayyar_vipul at yahoo.com
Sat Jul 13 08:18:44 UTC 2013


I think I understood what you were trying to say over previous emails. As suggested by you, I went over the code in search of where all these functions are called resulting in getting not all, but some answers.
I sincerely hope this time the patch is right !! :-)

Regards
Vipul Nayyar 



________________________________
 From: Vipul Nayyar <nayyar_vipul at yahoo.com>
To: rtems-devel at rtems.org 
Sent: Saturday, 13 July 2013 1:44 PM
Subject: [PATCH] Updated Legacy code in arm rtl22xx
 

---
c/src/lib/libbsp/arm/rtl22xx/network/network.c | 33 ++++++++++++++++----------
1 file changed, 20 insertions(+), 13 deletions(-)

diff --git a/c/src/lib/libbsp/arm/rtl22xx/network/network.c b/c/src/lib/libbsp/arm/rtl22xx/network/network.c
index 3b54862..a42bd07 100644
--- a/c/src/lib/libbsp/arm/rtl22xx/network/network.c
+++ b/c/src/lib/libbsp/arm/rtl22xx/network/network.c
@@ -3,24 +3,18 @@
#include <sys/mbuf.h>
#include <bsp/irq.h>
#include <libchip/cs8900.h>
+#include <assert.h>

#define CS8900_BASE 0x20000300
unsigned int bsp_cs8900_io_base = 0;
unsigned int bsp_cs8900_memory_base = 0;
-cs8900_device *g_cs;
-void cs8900_isr(rtems_irq_hdl_param unused);
-rtems_irq_connect_data cs8900_isr_data = {LPC22xx_INTERRUPT_EINT2,
-                                         cs8900_isr,
-                      NULL,
-                      NULL,
-                      NULL,
-                      NULL};
+static void cs8900_isr(void *);

char g_enetbuf[1520];

-void cs8900_isr(rtems_irq_hdl_param unused)
+static void cs8900_isr(void *arg)
{
-    cs8900_interrupt(LPC22xx_INTERRUPT_EINT2, g_cs);
+    cs8900_interrupt(LPC22xx_INTERRUPT_EINT2, arg);
}

/* cs8900_io_set_reg - set one of the I/O addressed registers */
@@ -69,13 +63,26 @@ unsigned short cs8900_mem_get_reg (cs8900_device *cs, unsigned long reg)

void cs8900_attach_interrupt (cs8900_device *cs)
{
-    g_cs = cs;
-    BSP_install_rtems_irq_handler(&cs8900_isr_data);
+    rtems_status_code status = RTEMS_SUCCESSFUL;
+    status = rtems_interrupt_handler_install(
+        LPC22xx_INTERRUPT_EINT2,
+        "Network",
+        RTEMS_INTERRUPT_UNIQUE,
+        (rtems_interrupt_handler)cs8900_isr,
+        cs
+    );
+    assert(status == RTEMS_SUCCESSFUL);
}

void cs8900_detach_interrupt (cs8900_device *cs)
{
-    BSP_remove_rtems_irq_handler(&cs8900_isr_data);
+    rtems_status_code status = RTEMS_SUCCESSFUL;
+    status = rtems_interrupt_handler_remove(
+        LPC22xx_INTERRUPT_EINT2,
+        (rtems_interrupt_handler)cs8900_isr,
+        cs
+    );
+    assert(status == RTEMS_SUCCESSFUL);
}

unsigned short cs8900_get_data_block (cs8900_device *cs, unsigned char *data)
-- 
1.7.11.7

_______________________________________________
rtems-devel mailing list
rtems-devel at rtems.org
http://www.rtems.org/mailman/listinfo/rtems-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20130713/6ec01d45/attachment.html>


More information about the devel mailing list