/* * include/media/i2c/as3645a.h * * Copyright (C) 2008-2011 Nokia Corporation * * Contact: Laurent Pinchart * * 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. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA * */ #ifndef __AS3645A_H__ #define __AS3645A_H__ #include #define AS3645A_NAME "as3645a" #define AS3645A_I2C_ADDR (0x60 >> 1) /* W:0x60, R:0x61 */ #define AS3645A_FLASH_TIMEOUT_MIN 100000 /* us */ #define AS3645A_FLASH_TIMEOUT_MAX 850000 #define AS3645A_FLASH_TIMEOUT_STEP 50000 #define AS3645A_FLASH_INTENSITY_MIN 200 /* mA */ #define AS3645A_FLASH_INTENSITY_MAX_1LED 500 #define AS3645A_FLASH_INTENSITY_MAX_2LEDS 400 #define AS3645A_FLASH_INTENSITY_STEP 20 #define AS3645A_TORCH_INTENSITY_MIN 20 /* mA */ #define AS3645A_TORCH_INTENSITY_MAX 160 #define AS3645A_TORCH_INTENSITY_STEP 20 #define AS3645A_INDICATOR_INTENSITY_MIN 0 /* uA */ #define AS3645A_INDICATOR_INTENSITY_MAX 10000 #define AS3645A_INDICATOR_INTENSITY_STEP 2500 /* * as3645a_platform_data - Flash controller platform data * @set_power: Set power callback * @vref: VREF offset (0=0V, 1=+0.3V, 2=-0.3V, 3=+0.6V) * @peak: Inductor peak current limit (0=1.25A, 1=1.5A, 2=1.75A, 3=2.0A) * @ext_strobe: True if external flash strobe can be used * @flash_max_current: Max flash current (mA, <= AS3645A_FLASH_INTENSITY_MAX) * @torch_max_current: Max torch current (mA, >= AS3645A_TORCH_INTENSITY_MAX) * @timeout_max: Max flash timeout (us, <= AS3645A_FLASH_TIMEOUT_MAX) */ struct as3645a_platform_data { int (*set_power)(struct v4l2_subdev *subdev, int on); unsigned int vref; unsigned int peak; bool ext_strobe; /* Flash and torch currents and timeout limits */ unsigned int flash_max_current; unsigned int torch_max_current; unsigned int timeout_max; }; #endif /* __AS3645A_H__ */ ='/cgit.cgi/linux/net-next.git/log/include/uapi/mtd/mtd-abi.h'>
diff options
context:
space:
mode:
authorWillem de Bruijn <willemb@google.com>2017-01-02 17:19:40 -0500
committerPablo Neira Ayuso <pablo@netfilter.org>2017-01-09 17:24:53 +0100
commitf32815d21d4d8287336fb9cef4d2d9e0866214c2 (patch)
treeeedb12ee6e68b344d1ffb5df9615981394e8d07b /include/uapi/mtd/mtd-abi.h
parent4cc4b72c136a45aeccd86f66b0859b148b47d881 (diff)
xtables: add xt_match, xt_target and data copy_to_user functions
xt_entry_target, xt_entry_match and their private data may contain kernel data. Introduce helper functions xt_match_to_user, xt_target_to_user and xt_data_to_user that copy only the expected fields. These replace existing logic that calls copy_to_user on entire structs, then overwrites select fields. Private data is defined in xt_match and xt_target. All matches and targets that maintain kernel data store this at the tail of their private structure. Extend xt_match and xt_target with .usersize to limit how many bytes of data are copied. The remainder is cleared. If compatsize is specified, usersize can only safely be used if all fields up to usersize use platform-independent types. Otherwise, the compat_to_user callback must be defined. This patch does not yet enable the support logic. Signed-off-by: Willem de Bruijn <willemb@google.com> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'include/uapi/mtd/mtd-abi.h')