/* * Copyright (c) 2013 Luis R. Rodriguez * * Linux backport symbols for kernels 3.10. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ #include #include #include #include #include #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)) #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)) */ #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)) /** * regulator_map_voltage_ascend - map_voltage() for ascendant voltage list * * @rdev: Regulator to operate on * @min_uV: Lower bound for voltage * @max_uV: Upper bound for voltage * * Drivers that have ascendant voltage list can use this as their * map_voltage() operation. */ int regulator_map_voltage_ascend(struct regulator_dev *rdev, int min_uV, int max_uV) { int i, ret; for (i = 0; i < rdev->desc->n_voltages; i++) { ret = rdev->desc->ops->list_voltage(rdev, i); if (ret < 0) continue; if (ret > max_uV) break; if (ret >= min_uV && ret <= max_uV) return i; } return -EINVAL; } EXPORT_SYMBOL_GPL(regulator_map_voltage_ascend); #endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)) */ void proc_set_size(struct proc_dir_entry *de, loff_t size) { de->size = size; } EXPORT_SYMBOL_GPL(proc_set_size); void proc_set_user(struct proc_dir_entry *de, kuid_t uid, kgid_t gid) { de->uid = uid; de->gid = gid; } EXPORT_SYMBOL_GPL(proc_set_user); /* * Allocator for buffer that is going to be passed to hid_output_report() */ u8 *hid_alloc_report_buf(struct hid_report *report, gfp_t flags) { /* * 7 extra bytes are necessary to achieve proper functionality * of implement() working on 8 byte chunks */ int len = ((report->size - 1) >> 3) + 1 + (report->id > 0) + 7; return kmalloc(len, flags); } EXPORT_SYMBOL_GPL(hid_alloc_report_buf);