cregit-Linux how code gets into the kernel

Release 4.12 include/linux/reset.h

Directory: include/linux
#ifndef _LINUX_RESET_H_

#define _LINUX_RESET_H_

#include <linux/device.h>

struct reset_control;

#ifdef CONFIG_RESET_CONTROLLER

int reset_control_reset(struct reset_control *rstc);
int reset_control_assert(struct reset_control *rstc);
int reset_control_deassert(struct reset_control *rstc);
int reset_control_status(struct reset_control *rstc);

struct reset_control *__of_reset_control_get(struct device_node *node,
				     const char *id, int index, bool shared,
				     bool optional);
struct reset_control *__reset_control_get(struct device *dev, const char *id,
					  int index, bool shared,
					  bool optional);
void reset_control_put(struct reset_control *rstc);
struct reset_control *__devm_reset_control_get(struct device *dev,
				     const char *id, int index, bool shared,
				     bool optional);

int __must_check device_reset(struct device *dev);


static inline int device_reset_optional(struct device *dev) { return device_reset(dev); }

Contributors

PersonTokensPropCommitsCommitProp
Philipp Zabel18100.00%1100.00%
Total18100.00%1100.00%

#else
static inline int reset_control_reset(struct reset_control *rstc) { return 0; }

Contributors

PersonTokensPropCommitsCommitProp
Philipp Zabel15100.00%1100.00%
Total15100.00%1100.00%


static inline int reset_control_assert(struct reset_control *rstc) { return 0; }

Contributors

PersonTokensPropCommitsCommitProp
Philipp Zabel15100.00%1100.00%
Total15100.00%1100.00%


static inline int reset_control_deassert(struct reset_control *rstc) { return 0; }

Contributors

PersonTokensPropCommitsCommitProp
Philipp Zabel1493.33%150.00%
Dinh Nguyen16.67%150.00%
Total15100.00%2100.00%


static inline int reset_control_status(struct reset_control *rstc) { return 0; }

Contributors

PersonTokensPropCommitsCommitProp
Dinh Nguyen1493.33%150.00%
Philipp Zabel16.67%150.00%
Total15100.00%2100.00%


static inline void reset_control_put(struct reset_control *rstc) { }

Contributors

PersonTokensPropCommitsCommitProp
Philipp Zabel11100.00%3100.00%
Total11100.00%3100.00%


static inline int __must_check device_reset(struct device *dev) { WARN_ON(1); return -ENOTSUPP; }

Contributors

PersonTokensPropCommitsCommitProp
Daniel Lezcano22100.00%1100.00%
Total22100.00%1100.00%


static inline int device_reset_optional(struct device *dev) { return -ENOTSUPP; }

Contributors

PersonTokensPropCommitsCommitProp
Philipp Zabel16100.00%2100.00%
Total16100.00%2100.00%


static inline struct reset_control *__of_reset_control_get( struct device_node *node, const char *id, int index, bool shared, bool optional) { return optional ? NULL : ERR_PTR(-ENOTSUPP); }

Contributors

PersonTokensPropCommitsCommitProp
Axel Lin2256.41%114.29%
Hans de Goede820.51%228.57%
Ramiro Oliveira410.26%228.57%
Philipp Zabel410.26%114.29%
John Youn12.56%114.29%
Total39100.00%7100.00%


static inline struct reset_control *__reset_control_get( struct device *dev, const char *id, int index, bool shared, bool optional) { return optional ? NULL : ERR_PTR(-ENOTSUPP); }

Contributors

PersonTokensPropCommitsCommitProp
Philipp Zabel39100.00%1100.00%
Total39100.00%1100.00%


static inline struct reset_control *__devm_reset_control_get( struct device *dev, const char *id, int index, bool shared, bool optional) { return optional ? NULL : ERR_PTR(-ENOTSUPP); }

Contributors

PersonTokensPropCommitsCommitProp
Axel Lin2461.54%114.29%
Hans de Goede615.38%228.57%
Philipp Zabel410.26%114.29%
Ramiro Oliveira410.26%228.57%
John Youn12.56%114.29%
Total39100.00%7100.00%

#endif /* CONFIG_RESET_CONTROLLER */ /** * reset_control_get_exclusive - Lookup and obtain an exclusive reference * to a reset controller. * @dev: device to be reset by the controller * @id: reset line name * * Returns a struct reset_control or IS_ERR() condition containing errno. * If this function is called more then once for the same reset_control it will * return -EBUSY. * * See reset_control_get_shared for details on shared references to * reset-controls. * * Use of id names is optional. */
static inline struct reset_control * __must_check reset_control_get_exclusive(struct device *dev, const char *id) { #ifndef CONFIG_RESET_CONTROLLER WARN_ON(1); #endif return __reset_control_get(dev, id, 0, false, false); }

Contributors

PersonTokensPropCommitsCommitProp
Philipp Zabel2352.27%342.86%
Hans de Goede1738.64%228.57%
Ramiro Oliveira36.82%114.29%
Lee Jones12.27%114.29%
Total44100.00%7100.00%

/** * reset_control_get_shared - Lookup and obtain a shared reference to a * reset controller. * @dev: device to be reset by the controller * @id: reset line name * * Returns a struct reset_control or IS_ERR() condition containing errno. * This function is intended for use with reset-controls which are shared * between hardware-blocks. * * When a reset-control is shared, the behavior of reset_control_assert / * deassert is changed, the reset-core will keep track of a deassert_count * and only (re-)assert the reset after reset_control_assert has been called * as many times as reset_control_deassert was called. Also see the remark * about shared reset-controls in the reset_control_assert docs. * * Calling reset_control_assert without first calling reset_control_deassert * is not allowed on a shared reset control. Calling reset_control_reset is * also not allowed on a shared reset control. * * Use of id names is optional. */
static inline struct reset_control *reset_control_get_shared( struct device *dev, const char *id) { return __reset_control_get(dev, id, 0, true, false); }

Contributors

PersonTokensPropCommitsCommitProp
Philipp Zabel2369.70%337.50%
Hans de Goede618.18%225.00%
Ramiro Oliveira39.09%225.00%
Lee Jones13.03%112.50%
Total33100.00%8100.00%


static inline struct reset_control *reset_control_get_optional_exclusive( struct device *dev, const char *id) { return __reset_control_get(dev, id, 0, false, true); }

Contributors

PersonTokensPropCommitsCommitProp
Hans de Goede2884.85%120.00%
Ramiro Oliveira39.09%240.00%
Philipp Zabel13.03%120.00%
Lee Jones13.03%120.00%
Total33100.00%5100.00%


static inline struct reset_control *reset_control_get_optional_shared( struct device *dev, const char *id) { return __reset_control_get(dev, id, 0, true, true); }

Contributors

PersonTokensPropCommitsCommitProp
Hans de Goede2884.85%120.00%
Ramiro Oliveira39.09%240.00%
Lee Jones13.03%120.00%
Philipp Zabel13.03%120.00%
Total33100.00%5100.00%

/** * of_reset_control_get_exclusive - Lookup and obtain an exclusive reference * to a reset controller. * @node: device to be reset by the controller * @id: reset line name * * Returns a struct reset_control or IS_ERR() condition containing errno. * * Use of id names is optional. */
static inline struct reset_control *of_reset_control_get_exclusive( struct device_node *node, const char *id) { return __of_reset_control_get(node, id, 0, false, false); }

Contributors

PersonTokensPropCommitsCommitProp
Hans de Goede2987.88%360.00%
Ramiro Oliveira39.09%120.00%
Lee Jones13.03%120.00%
Total33100.00%5100.00%

/** * of_reset_control_get_shared - Lookup and obtain an shared reference * to a reset controller. * @node: device to be reset by the controller * @id: reset line name * * When a reset-control is shared, the behavior of reset_control_assert / * deassert is changed, the reset-core will keep track of a deassert_count * and only (re-)assert the reset after reset_control_assert has been called * as many times as reset_control_deassert was called. Also see the remark * about shared reset-controls in the reset_control_assert docs. * * Calling reset_control_assert without first calling reset_control_deassert * is not allowed on a shared reset control. Calling reset_control_reset is * also not allowed on a shared reset control. * Returns a struct reset_control or IS_ERR() condition containing errno. * * Use of id names is optional. */
static inline struct reset_control *of_reset_control_get_shared( struct device_node *node, const char *id) { return __of_reset_control_get(node, id, 0, true, false); }

Contributors

PersonTokensPropCommitsCommitProp
Lee Jones2575.76%125.00%
Vince Hsu515.15%125.00%
Ramiro Oliveira39.09%250.00%
Total33100.00%4100.00%

/** * of_reset_control_get_exclusive_by_index - Lookup and obtain an exclusive * reference to a reset controller * by index. * @node: device to be reset by the controller * @index: index of the reset controller * * This is to be used to perform a list of resets for a device or power domain * in whatever order. Returns a struct reset_control or IS_ERR() condition * containing errno. */
static inline struct reset_control *of_reset_control_get_exclusive_by_index( struct device_node *node, int index) { return __of_reset_control_get(node, NULL, index, false, false); }

Contributors

PersonTokensPropCommitsCommitProp
Vince Hsu2064.52%116.67%
Hans de Goede722.58%233.33%
Ramiro Oliveira39.68%233.33%
Lee Jones13.23%116.67%
Total31100.00%6100.00%

/** * of_reset_control_get_shared_by_index - Lookup and obtain an shared * reference to a reset controller * by index. * @node: device to be reset by the controller * @index: index of the reset controller * * When a reset-control is shared, the behavior of reset_control_assert / * deassert is changed, the reset-core will keep track of a deassert_count * and only (re-)assert the reset after reset_control_assert has been called * as many times as reset_control_deassert was called. Also see the remark * about shared reset-controls in the reset_control_assert docs. * * Calling reset_control_assert without first calling reset_control_deassert * is not allowed on a shared reset control. Calling reset_control_reset is * also not allowed on a shared reset control. * Returns a struct reset_control or IS_ERR() condition containing errno. * * This is to be used to perform a list of resets for a device or power domain * in whatever order. Returns a struct reset_control or IS_ERR() condition * containing errno. */
static inline struct reset_control *of_reset_control_get_shared_by_index( struct device_node *node, int index) { return __of_reset_control_get(node, NULL, index, true, false); }

Contributors

PersonTokensPropCommitsCommitProp
Lee Jones2890.32%133.33%
Ramiro Oliveira39.68%266.67%
Total31100.00%3100.00%

/** * devm_reset_control_get_exclusive - resource managed * reset_control_get_exclusive() * @dev: device to be reset by the controller * @id: reset line name * * Managed reset_control_get_exclusive(). For reset controllers returned * from this function, reset_control_put() is called automatically on driver * detach. * * See reset_control_get_exclusive() for more information. */
static inline struct reset_control * __must_check devm_reset_control_get_exclusive(struct device *dev, const char *id) { #ifndef CONFIG_RESET_CONTROLLER WARN_ON(1); #endif return __devm_reset_control_get(dev, id, 0, false, false); }

Contributors

PersonTokensPropCommitsCommitProp
Hans de Goede3886.36%233.33%
Ramiro Oliveira36.82%233.33%
Philipp Zabel24.55%116.67%
Lee Jones12.27%116.67%
Total44100.00%6100.00%

/** * devm_reset_control_get_shared - resource managed reset_control_get_shared() * @dev: device to be reset by the controller * @id: reset line name * * Managed reset_control_get_shared(). For reset controllers returned from * this function, reset_control_put() is called automatically on driver detach. * See reset_control_get_shared() for more information. */
static inline struct reset_control *devm_reset_control_get_shared( struct device *dev, const char *id) { return __devm_reset_control_get(dev, id, 0, true, false); }

Contributors

PersonTokensPropCommitsCommitProp
Hans de Goede2987.88%240.00%
Ramiro Oliveira39.09%240.00%
Lee Jones13.03%120.00%
Total33100.00%5100.00%


static inline struct reset_control *devm_reset_control_get_optional_exclusive( struct device *dev, const char *id) { return __devm_reset_control_get(dev, id, 0, false, true); }

Contributors

PersonTokensPropCommitsCommitProp
Hans de Goede2369.70%233.33%
Lee Jones721.21%233.33%
Ramiro Oliveira39.09%233.33%
Total33100.00%6100.00%


static inline struct reset_control *devm_reset_control_get_optional_shared( struct device *dev, const char *id) { return __devm_reset_control_get(dev, id, 0, true, true); }

Contributors

PersonTokensPropCommitsCommitProp
Hans de Goede2987.88%125.00%
Ramiro Oliveira39.09%250.00%
Lee Jones13.03%125.00%
Total33100.00%4100.00%

/** * devm_reset_control_get_exclusive_by_index - resource managed * reset_control_get_exclusive() * @dev: device to be reset by the controller * @index: index of the reset controller * * Managed reset_control_get_exclusive(). For reset controllers returned from * this function, reset_control_put() is called automatically on driver * detach. * * See reset_control_get_exclusive() for more information. */
static inline struct reset_control * devm_reset_control_get_exclusive_by_index(struct device *dev, int index) { return __devm_reset_control_get(dev, NULL, index, false, false); }

Contributors

PersonTokensPropCommitsCommitProp
Hans de Goede2374.19%120.00%
Lee Jones516.13%240.00%
Ramiro Oliveira39.68%240.00%
Total31100.00%5100.00%

/** * devm_reset_control_get_shared_by_index - resource managed * reset_control_get_shared * @dev: device to be reset by the controller * @index: index of the reset controller * * Managed reset_control_get_shared(). For reset controllers returned from * this function, reset_control_put() is called automatically on driver detach. * See reset_control_get_shared() for more information. */
static inline struct reset_control * devm_reset_control_get_shared_by_index(struct device *dev, int index) { return __devm_reset_control_get(dev, NULL, index, true, false); }

Contributors

PersonTokensPropCommitsCommitProp
Hans de Goede2890.32%250.00%
Ramiro Oliveira39.68%250.00%
Total31100.00%4100.00%

/* * TEMPORARY calls to use during transition: * * of_reset_control_get() => of_reset_control_get_exclusive() * * These inline function calls will be removed once all consumers * have been moved over to the new explicit API. */
static inline struct reset_control *reset_control_get( struct device *dev, const char *id) { return reset_control_get_exclusive(dev, id); }

Contributors

PersonTokensPropCommitsCommitProp
Lee Jones27100.00%1100.00%
Total27100.00%1100.00%


static inline struct reset_control *reset_control_get_optional( struct device *dev, const char *id) { return reset_control_get_optional_exclusive(dev, id); }

Contributors

PersonTokensPropCommitsCommitProp
Lee Jones27100.00%1100.00%
Total27100.00%1100.00%


static inline struct reset_control *of_reset_control_get( struct device_node *node, const char *id) { return of_reset_control_get_exclusive(node, id); }

Contributors

PersonTokensPropCommitsCommitProp
Lee Jones27100.00%1100.00%
Total27100.00%1100.00%


static inline struct reset_control *of_reset_control_get_by_index( struct device_node *node, int index) { return of_reset_control_get_exclusive_by_index(node, index); }

Contributors

PersonTokensPropCommitsCommitProp
Lee Jones25100.00%1100.00%
Total25100.00%1100.00%


static inline struct reset_control *devm_reset_control_get( struct device *dev, const char *id) { return devm_reset_control_get_exclusive(dev, id); }

Contributors

PersonTokensPropCommitsCommitProp
Lee Jones27100.00%1100.00%
Total27100.00%1100.00%


static inline struct reset_control *devm_reset_control_get_optional( struct device *dev, const char *id) { return devm_reset_control_get_optional_exclusive(dev, id); }

Contributors

PersonTokensPropCommitsCommitProp
Lee Jones27100.00%1100.00%
Total27100.00%1100.00%


static inline struct reset_control *devm_reset_control_get_by_index( struct device *dev, int index) { return devm_reset_control_get_exclusive_by_index(dev, index); }

Contributors

PersonTokensPropCommitsCommitProp
Lee Jones25100.00%1100.00%
Total25100.00%1100.00%

#endif

Overall Contributors

PersonTokensPropCommitsCommitProp
Hans de Goede32130.06%315.00%
Philipp Zabel28826.97%525.00%
Lee Jones26925.19%420.00%
Ramiro Oliveira585.43%210.00%
Axel Lin464.31%15.00%
Vince Hsu252.34%15.00%
Dinh Nguyen242.25%15.00%
Daniel Lezcano222.06%15.00%
Maxime Ripard131.22%15.00%
John Youn20.19%15.00%
Total1068100.00%20100.00%
Directory: include/linux
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.