fix nas compatibility and overrides for newer wla2-g54l units
authorImre Kaloz <kaloz@openwrt.org>
Fri, 10 Jun 2005 00:58:19 +0000 (00:58 +0000)
committerImre Kaloz <kaloz@openwrt.org>
Fri, 10 Jun 2005 00:58:19 +0000 (00:58 +0000)
SVN-Revision: 1181

openwrt/package/openwrt/libshared/bcmtimer.h
openwrt/package/openwrt/libshared/linux_timer.c
openwrt/target/default/target_skeleton/etc/nvram.overrides

index 560957cbfd7906c2d98accf8a1c465853e14d181..3db9e624f959178ec048ffbd8e9c38e0238c0183 100644 (file)
@@ -30,11 +30,13 @@ typedef void (*bcm_timer_cb)(bcm_timer_id id, int data);
 /* OS-independant interfaces, applications should call these functions only */
 int bcm_timer_module_init(int timer_entries, bcm_timer_module_id *module_id);
 int bcm_timer_module_cleanup(bcm_timer_module_id module_id);
+int bcm_timer_module_enable(bcm_timer_module_id module_id, int enable);
 int bcm_timer_create(bcm_timer_module_id module_id, bcm_timer_id *timer_id);
 int bcm_timer_delete(bcm_timer_id timer_id);
 int bcm_timer_gettime(bcm_timer_id timer_id, struct itimerspec *value);
 int bcm_timer_settime(bcm_timer_id timer_id, const struct itimerspec *value);
 int bcm_timer_connect(bcm_timer_id timer_id, bcm_timer_cb func, int data);
 int bcm_timer_cancel(bcm_timer_id timer_id);
+int bcm_timer_change_expirytime(bcm_timer_id timer_id, const struct itimerspec *timer_spec);
 
 #endif /* #ifndef __bcmtimer_h__ */
index eece9f84e818f56e9f55ae38a9457dfb07615190..0402e443784e70d7ae73fdbad1a95fce1cf56fa5 100644 (file)
@@ -112,7 +112,7 @@ static void check_timer();
 #if THIS_FINDS_USE
 static int count_queue(struct event *);
 #endif
-
+static int timer_change_settime(timer_t timer_id, const struct itimerspec *timer_spec);
 void block_timer();
 void unblock_timer();
 
@@ -247,6 +247,23 @@ int timer_connect
     return 0;
 }    
 
+/* 
+ * Please Call this function only from the call back functions of the alarm_handler.
+ * This is just a hack 
+*/
+int timer_change_settime
+(
+    timer_t                   timerid, /* timer ID */
+    const struct itimerspec * value   /* time to be set */
+)
+{
+    struct event *event = (struct event *) timerid;
+
+    TIMESPEC_TO_TIMEVAL(&event->it_interval, &value->it_interval);
+    TIMESPEC_TO_TIMEVAL(&event->it_value, &value->it_value);
+
+    return 1;  
+}
 
 int timer_settime
 (
@@ -673,6 +690,16 @@ int bcm_timer_module_cleanup(bcm_timer_module_id module_id)
        return 0;
 }
 
+/* Enable/Disable timer module */
+int bcm_timer_module_enable(bcm_timer_module_id module_id, int enable)
+{
+       if (enable)
+               unblock_timer();
+       else
+               block_timer();
+       return 0;
+}
+
 int bcm_timer_create(bcm_timer_module_id module_id, bcm_timer_id *timer_id)
 {
        module_id = 0;
@@ -704,4 +731,8 @@ int bcm_timer_cancel(bcm_timer_id timer_id)
        timer_cancel((timer_t)timer_id);
        return 0;
 }
-
+int bcm_timer_change_expirytime(bcm_timer_id timer_id, const struct itimerspec *timer_spec)
+{
+       timer_change_settime((timer_t)timer_id, timer_spec);
+       return 1;
+}
index 533edadaec2c1be86011d74afc9ec8a015d5739b..f58f7ed7e651ca03b3d01bf554b1239d91017b6f 100644 (file)
@@ -51,7 +51,8 @@ remap () {
 
 # hacks for buffalo wla2-g54l
 [ "$(nvram get boardnum)" = "00" ] && \
-[ "$(nvram get product_name)" = "Product_name" ] && {
+[ "$(nvram get product_name)" = "Product_name" ] || \
+[ "$(nvram get product_name)" = "WLA2-G54L" ] && {
   debug "### wla2-g54l hacks ###"
   NVRAM_wan_ifname="none"
   NVRAM_lan_ifnames="vlan0"