#include #include #include #include #include #include #include #include "perf.h" #include "debug.h" #include "time-utils.h" int parse_nsec_time(const char *str, u64 *ptime) { u64 time_sec, time_nsec; char *end; time_sec = strtoul(str, &end, 10); if (*end != '.' && *end != '\0') return -1; if (*end == '.') { int i; char nsec_buf[10]; if (strlen(++end) > 9) return -1; strncpy(nsec_buf, end, 9); nsec_buf[9] = '\0'; /* make it nsec precision */ for (i = strlen(nsec_buf); i < 9; i++) nsec_buf[i] = '0'; time_nsec = strtoul(nsec_buf, &end, 10); if (*end != '\0') return -1; } else time_nsec = 0; *ptime = time_sec * NSEC_PER_SEC + time_nsec; return 0; } static int parse_timestr_sec_nsec(struct perf_time_interval *ptime, char *start_str, char *end_str) { if (start_str && (*start_str != '\0') && (parse_nsec_time(start_str, &ptime->start) != 0)) { return -1; } if (end_str && (*end_str != '\0') && (parse_nsec_time(end_str, &ptime->end) != 0)) { return -1; } return 0; } int perf_time__parse_str(struct perf_time_interval *ptime, const char *ostr) { char *start_str, *end_str; char *d, *str; int rc = 0; if (ostr == NULL || *ostr == '\0') return 0; /* copy original string because we need to modify it */ str = strdup(ostr); if (str == NULL) return -ENOMEM; ptime->start = 0; ptime->end = 0; /* str has the format: , * variations: , * , * , */ start_str = str; d = strchr(start_str, ','); if (d) { *d = '\0'; ++d; } end_str = d; rc = parse_timestr_sec_nsec(ptime, start_str, end_str); free(str); /* make sure end time is after start time if it was given */ if (rc == 0 && ptime->end && ptime->end < ptime->start) return -EINVAL; pr_debug("start time %" PRIu64 ", ", ptime->start); pr_debug("end time %" PRIu64 "\n", ptime->end); return rc; } bool perf_time__skip_sample(struct perf_time_interval *ptime, u64 timestamp) { /* if time is not set don't drop sample */ if (timestamp == 0) return false; /* otherwise compare sample time to time window */ if ((ptime->start && timestamp < ptime->start) || (ptime->end && timestamp > ptime->end)) { return true; } return false; } ='id' value='383d0fca7035a12f1201277d33e8fc87c9d60c9a'/>
diff options
context:
space:
mode:
authorVenkat Reddy Talla <vreddytalla@nvidia.com>2016-11-17 23:24:35 +0530
committerMark Brown <broonie@kernel.org>2016-11-23 16:27:24 +0000
commit383d0fca7035a12f1201277d33e8fc87c9d60c9a (patch)
treebb12c78d91ab8d69ae18fbbf4033277481b277ad /drivers/usb/gadget/udc/pxa25x_udc.c
parent9a40cb0cb8b55ecfdcd3cec1381bcc46ec488588 (diff)
regulator: max77620: add support to configure MPOK
Adding support to configure regulator POK mapping bit to control nRST_IO and GPIO1 POK function. In tegra based platform which uses MAX20024 pmic, when some of regulators are configured FPS_NONE(flexible power sequencer) causes PMIC GPIO1 to go low which lead to various other rails turning off, to avoid this MPOK bit of those regulators need to be set to 0 so that PMIC GPIO1 will not go low. Signed-off-by: Venkat Reddy Talla <vreddytalla@nvidia.com> Acked-by: Lee Jones <lee.jones@linaro.org> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'drivers/usb/gadget/udc/pxa25x_udc.c')