static int PollingPowerSWStatus(unsigned long data){ TRACE(printk(">%s, data=%u, PSW_LONG_WAIT_COUNT=%d\n", __FUNCTION__, data, PSW_LONG_WAIT_COUNT)); unsigned int PowerStat = buffalo_gpio_read(); if(PowerStat & BIT(BIT_POWER)){ if((data >= PSW_LONG_WAIT_COUNT) && !(power_pushed_status & SW_LONG_PUSHED)){ power_pushed_status |= SW_LONG_PUSHED; #if defined CONFIG_BUFFALO_USE_KERNEL_EVENT_DRIVER buffalo_kernevnt_queuein("PSW_pushed"); #endif }else if((data >= PSW_WAIT_COUNT) && !(power_pushed_status & SW_PUSHED)){ power_pushed_status |= SW_PUSHED; #if defined CONFIG_BUFFALO_USE_KERNEL_EVENT_DRIVER buffalo_kernevnt_queuein("PSW_short_pushed"); #endif } PollingTimerGoOn(); }else{ PollingTimerStop(); if(g_irq) enable_irq(g_irq); power_pushed_status = 0; } return 0; }
static int PollingINITSWStatus(unsigned long data){ TRACE(printk(">%s, data=%u, INIT_WAIT_COUNT=%d\n", __FUNCTION__, data, INIT_WAIT_COUNT)); unsigned int InitStat=buffalo_gpio_read(); if(InitStat & BIT(BIT_INIT)){ if((data > INIT_WAIT_COUNT) && !(init_pushed_status & SW_PUSHED)){ init_pushed_status |= SW_PUSHED; #if defined CONFIG_BUFFALO_USE_KERNEL_EVENT_DRIVER buffalo_kernevnt_queuein("INITSW_pushed"); #else #endif // keep Polling untile button would be released. TRACE(printk("initialize start\n")); } PollingTimerGoOnInit(); }else{ PollingTimerStopInit(); if(g_irq_init) enable_irq(g_irq_init); } return 0; }
static int PollingFuncSWStatus(unsigned long data) { TRACE(printk(">%s, data=%u, FUNC_WAIT_COUNT=%d\n", __FUNCTION__, data, FUNC_WAIT_COUNT)); unsigned int FuncStat = buffalo_gpio_read(); if (FuncStat & BIT(BIT_FUNC)){ func_pushed_status |= SW_PUSHED; if ((data > FUNC_LONG_WAIT_COUNT) && !(func_pushed_status & SW_LONG_PUSHED)){ func_pushed_status |= SW_LONG_PUSHED; #if defined CONFIG_BUFFALO_USE_KERNEL_EVENT_DRIVER buffalo_kernevnt_queuein("FUNCSW_long_pushed"); #endif } PollingTimerGoOnFunc(); }else{ PollingTimerStopFunc(); if (irq_func) enable_irq(irq_func); if ((data > FUNC_WAIT_COUNT) && !(func_pushed_status ^ SW_PUSHED)) { #if defined CONFIG_BUFFALO_USE_KERNEL_EVENT_DRIVER buffalo_kernevnt_queuein("FUNCSW_pushed"); #endif } func_pushed_status = 0; } return 0; }
static int BuffaloAutoPowerReadProc(char *page, char **start, off_t offset, int length, int *eof, void *data) { int len = 0; off_t begin = 0; unsigned int PinStat = buffalo_gpio_read(); if(PinStat & BIT(BIT_AUTO_POWER)) len = sprintf(page, "on\n"); else len = sprintf(page, "off\n"); *start = page + (offset - begin); len -= (offset - begin); if (len > length) len = length; return (len); }
static int BuffaloAllLedReadProc(char *page, char **start, off_t offset, int length, int *eof, void *data) { int len = 0; off_t begin = 0; unsigned int PinStat = buffalo_gpio_read(); if (BIT_LED_PWR >= 0) { if(~PinStat & BIT(BIT_LED_PWR)) len += sprintf(page+len, "power led :on\n"); else len += sprintf(page+len, "power led :off\n"); } if (BIT_LED_INFO >=0) { if(~PinStat & BIT(BIT_LED_INFO)) len += sprintf(page+len, "info led :on\n"); else len += sprintf(page+len, "info led :off\n"); } if (BIT_LED_ALARM >= 0) { if(~PinStat & BIT(BIT_LED_ALARM)) len += sprintf(page+len, "alarm led :on\n"); else len += sprintf(page+len, "alarm led :off\n"); } if (BIT_LED_FUNC >= 0) { if(PinStat & BIT(BIT_LED_FUNC)) len += sprintf(page+len, "func led :on\n"); else len += sprintf(page+len, "func led :off\n"); } if(len == 0) len += sprintf(page + len, "available led not found.\n"); *start = page + (offset - begin); len -= (offset - begin); if (len > length) len = length; return (len); }
static int BuffaloEthLedReadProc(char *page, char **start, off_t offset, int length, int *eof, void *data) { if (BIT_LED_ETH < 0) return 0; int len = 0; off_t begin = 0; unsigned int PinStat = buffalo_gpio_read(); if(PinStat & BIT(BIT_LED_ETH)) len = sprintf(page, "on\n"); else len = sprintf(page, "off\n"); *start = page + (offset - begin); len -= (offset - begin); if(len > length) len = length; return (len); }
static int BuffaloFanStatusReadProc(char *page, char **start, off_t offset, int length, int *eof, void *data) { if (BIT_FAN_LCK < 0) return 0; int len = 0; off_t begin = 0; unsigned int PinStat = buffalo_gpio_read(); FUNCTRACE(printk(" %s > ~PinStat & BIT(BIT_FAN_LCK) = %d\n", __FUNCTION__, (~PinStat & BIT(BIT_FAN_LCK)))); if(~PinStat & BIT(BIT_FAN_LCK)) len = sprintf(page, "Fine\n"); else len = sprintf(page, "Stop\n"); *start = page + (offset - begin); len -= (offset - begin); if(len > length) len = length; return (len); }
static int gpio_power_read_proc(char *page, char **start, off_t offset, int length) { if (BIT_POWER < 0) return 0; int len=0; off_t begin=0; unsigned int PowerStat=buffalo_gpio_read(); int i; len += sprintf(page + len, "GpioStat=0x%04x\n", PowerStat); len += sprintf(page + len, "BIT(%d)=0x%04x\n", BIT_POWER, BIT(BIT_POWER)); len += sprintf(page + len, "PowerStat=%d\n", (PowerStat & BIT(BIT_POWER))? 1:0); if (BIT_LED_INFO >= 0) len += sprintf(page + len, "LedInfo=%d\n", (PowerStat & BIT(BIT_LED_INFO))? 0:1); if (BIT_LED_ALARM >= 0) len += sprintf(page + len, "LedAlarm=%d\n", (PowerStat & BIT(BIT_LED_ALARM))? 0:1); if (BIT_LED_FUNC >= 0) len += sprintf(page + len, "LedFunc=%d\n", (PowerStat & BIT(BIT_LED_FUNC))? 0:1); for (i=0; i<BUF_NV_SIZE_BIT_HDD_POWER; i++) { if (bitHddPower[i] >= 0) len += sprintf(page + len, "HddPower%d=%d\n", i, (PowerStat & BIT(bitHddPower[i]))? 0:1); } for (i=0; i<BUF_NV_SIZE_BIT_USB_POWER; i++) { if (bitUsbPower[i] >= 0) len += sprintf(page + len, "UsbPower%d=%d\n", i, (PowerStat & BIT(bitUsbPower[i]))? 0:1); } *start = page + (offset - begin); len -= (offset - begin); if (len > length) len = length; return (len); }