return FRSH_NO_ERROR;
}
+int frsh_resource_get_speed
+ (frsh_resource_type_t resource_type,
+ frsh_resource_id_t resource_id,
+ frsh_power_level_t power_level,
+ double *speed_ratio)
+{
+ switch(resource_type)
+ {
+#ifdef CONFIG_ACPI_CPU
+ case FRSH_RT_PROCESSOR:
+ {
+ int ret;
+
+ ret = fra_CPU_power_init(resource_id);
+ if (ret) return FRSH_ERR_INTERNAL_ERROR;
+ ret = fra_CPU_get_speed(resource_id,
+ (int) power_level,
+ speed_ratio);
+ if (ret) return FRSH_ERR_INTERNAL_ERROR;
+
+ break;
+ }
+#endif
+#ifdef CONFIG_ACPI_LCD
+ case FRSH_RT_LCD:
+ {
+ int ret;
+
+ ret = fra_LCD_power_init(resource_id);
+ if (ret) return FRSH_ERR_INTERNAL_ERROR;
+ ret = fra_LCD_get_speed(resource_id,
+ (int) power_level,
+ speed_ratio);
+ if (ret) return FRSH_ERR_INTERNAL_ERROR;
+
+ break;
+ }
+#endif
+ default:
+ return FRSH_ERR_NOT_IMPLEMENTED;
+ }
+
+ return FRSH_NO_ERROR;
+}
+
int frsh_resource_get_num_power_levels
(frsh_resource_type_t resource_type,
frsh_resource_id_t resource_id,
if (ret) return FRSH_ERR_INTERNAL_ERROR;
ret = fra_battery_expiration(&interval);
- if (ret == EAGAIN) {
- *expiration = fosa_msec_to_abs_time(0);
- goto out;
- }
- if (ret)
- return FRSH_ERR_INTERNAL_ERROR;
+ if (ret == EAGAIN) return ret;
+ if (ret) return FRSH_ERR_INTERNAL_ERROR;
fosa_clock_get_time(FOSA_CLOCK_REALTIME, expiration);
*expiration = fosa_abs_time_incr(*expiration, interval);
-out:
return FRSH_NO_ERROR;
#else
return FRSH_ERR_NOT_IMPLEMENTED;