mirror of
https://github.com/Telecominfraproject/OpenNetworkLinux.git
synced 2025-12-25 17:27:01 +00:00
add API for read min_fan_speed.
change define MIN_LIMIT_*_FAN_RPM to api call
This commit is contained in:
parent
e892e00c8e
commit
682cf99e80
@@ -534,3 +534,14 @@ onlp_fani_ioctl(onlp_oid_t id, va_list vargs)
|
||||
return ONLP_STATUS_E_UNSUPPORTED;
|
||||
}
|
||||
|
||||
int
|
||||
onlp_fani_get_min_rpm(int id)
|
||||
{
|
||||
int len = 0, nbytes = 10;
|
||||
char r_data[10] = {0};
|
||||
char fullpath[65] = {0};
|
||||
|
||||
snprintf(fullpath, sizeof(fullpath), "%s%s", PREFIX_PATH, fan_path[id].min);
|
||||
OPEN_READ_FILE(fullpath, r_data, nbytes, len);
|
||||
return atoi(r_data);
|
||||
}
|
||||
|
||||
@@ -42,9 +42,6 @@
|
||||
#define PSU_POWER_PREFIX "/bsp/power/psu%d_%s"
|
||||
#define IDPROM_PATH "/bsp/eeprom/%s%d_info"
|
||||
|
||||
#define MIN_LIMIT_FRONT_FAN_RPM 21000
|
||||
#define MIN_LIMIT_REAR_FAN_RPM 21000
|
||||
|
||||
/* LED related data
|
||||
*/
|
||||
enum onlp_led_id
|
||||
@@ -69,4 +66,6 @@ psu_type_t get_psu_type(int id, char* modelname, int modelname_len);
|
||||
int psu_read_eeprom(int psu_index, onlp_psu_info_t* psu_info,
|
||||
onlp_fan_info_t* fan_info);
|
||||
|
||||
int onlp_fani_get_min_rpm(int id);
|
||||
|
||||
#endif /* __PLATFORM_LIB_H__ */
|
||||
|
||||
@@ -138,6 +138,7 @@ onlp_sysi_platform_manage_leds(void)
|
||||
{
|
||||
int fan_number;
|
||||
onlp_led_mode_t mode;
|
||||
int min_fan_speed;
|
||||
enum onlp_led_id fan_led_id[4] = { LED_FAN1, LED_FAN2, LED_FAN3, LED_FAN4 };
|
||||
|
||||
/* after reboot, status LED should blink green, SW set to solid green */
|
||||
@@ -168,7 +169,8 @@ onlp_sysi_platform_manage_leds(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
if( fi.rpm < MIN_LIMIT_FRONT_FAN_RPM )
|
||||
min_fan_speed = onlp_fani_get_min_rpm(fan_number);
|
||||
if( fi.rpm < min_fan_speed)
|
||||
{
|
||||
mode = ONLP_LED_MODE_RED;
|
||||
}
|
||||
@@ -186,7 +188,8 @@ onlp_sysi_platform_manage_leds(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
if( fi.rpm < MIN_LIMIT_REAR_FAN_RPM )
|
||||
min_fan_speed = onlp_fani_get_min_rpm(fan_number+1);
|
||||
if( fi.rpm < min_fan_speed)
|
||||
{
|
||||
mode = ONLP_LED_MODE_RED;
|
||||
}
|
||||
|
||||
@@ -533,3 +533,14 @@ onlp_fani_ioctl(onlp_oid_t id, va_list vargs)
|
||||
return ONLP_STATUS_E_UNSUPPORTED;
|
||||
}
|
||||
|
||||
int
|
||||
onlp_fani_get_min_rpm(int id)
|
||||
{
|
||||
int len = 0, nbytes = 10;
|
||||
char r_data[10] = {0};
|
||||
char fullpath[65] = {0};
|
||||
|
||||
snprintf(fullpath, sizeof(fullpath), "%s%s", PREFIX_PATH, fan_path[id].min);
|
||||
OPEN_READ_FILE(fullpath, r_data, nbytes, len);
|
||||
return atoi(r_data);
|
||||
}
|
||||
|
||||
@@ -50,6 +50,9 @@
|
||||
} \
|
||||
} while(0)
|
||||
|
||||
/* LED related data
|
||||
*/
|
||||
|
||||
typedef struct led_light_mode_map {
|
||||
enum onlp_led_id id;
|
||||
char* driver_led_mode;
|
||||
|
||||
@@ -44,9 +44,6 @@
|
||||
#define PSU_POWER_PREFIX "/bsp/power/psu%d_%s"
|
||||
#define IDPROM_PATH "/bsp/eeprom/%s%d_info"
|
||||
|
||||
#define MIN_LIMIT_FRONT_FAN_RPM 21000
|
||||
#define MIN_LIMIT_REAR_FAN_RPM 21000
|
||||
|
||||
/* LED related data
|
||||
*/
|
||||
enum onlp_led_id
|
||||
|
||||
@@ -139,6 +139,7 @@ onlp_sysi_platform_manage_leds(void)
|
||||
{
|
||||
int fan_number;
|
||||
onlp_led_mode_t mode;
|
||||
int min_fan_speed;
|
||||
enum onlp_led_id fan_led_id[4] = { LED_FAN1, LED_FAN2, LED_FAN3, LED_FAN4 };
|
||||
|
||||
/* after reboot, status LED should blink green, SW set to solid green */
|
||||
@@ -169,7 +170,8 @@ onlp_sysi_platform_manage_leds(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
if( fi.rpm < MIN_LIMIT_FRONT_FAN_RPM )
|
||||
min_fan_speed = onlp_fani_get_min_rpm(fan_number);
|
||||
if( fi.rpm < min_fan_speed)
|
||||
{
|
||||
mode = ONLP_LED_MODE_RED;
|
||||
}
|
||||
@@ -187,7 +189,8 @@ onlp_sysi_platform_manage_leds(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
if( fi.rpm < MIN_LIMIT_REAR_FAN_RPM )
|
||||
min_fan_speed = onlp_fani_get_min_rpm(fan_number+1);
|
||||
if( fi.rpm < min_fan_speed)
|
||||
{
|
||||
mode = ONLP_LED_MODE_RED;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user