mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-09-18 22:59:29 +02:00
Pull char/misc/IIO/etc driver updates from Greg KH:
"Here is the big set of char, misc, iio, counter, fpga, and other small
driver subsystems for 7.3-rc1.
Overall, due to some driver removals we only added a bit more code
than removed, which was a nice change. Highlights in this merge
request are:
- Loads of IIO driver updates and additions
- binder driver updates (more on that below...)
- Removal of the SGI XP and GRU drivers as they are not used anymore
and turn out to be pretty insecure overall
- Removal of the obsolete ibmasm driver as it's not being used
anymore
- Coresight driver updates and additions
- Mei driver udpates
- Counter driver updates
- FPGA driver updates
- ICC driver updates
- lots and lots of other tiny driver updates to resolve reported
issues
All of these have been in linux-next for a while"
* tag 'char-misc-7.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (513 commits)
iio: chemical: atlas-sensor: use iio_trigger_poll_nested() to fix remove UAF
iio: adc: pac1921: fix wrong channel used in trigger handler read
iio: light: gp2ap002: re-enable irq if runtime suspend fails
iio: light: gp2ap002: Fix unbalanced runtime PM on repeated event writes
iio: light: apds9306: fix PM reference leak in apds9306_read_data()
iio: gyro: mpu3050: fix sign of raw angular velocity readings
iio: srf04: fix pm_runtime handling on probe error path
iio: adc: ad4080: configure backend data size
iio: adc: adi-axi-adc: add data size support for AD408X backend
iio: chemical: atlas-sensor: fix PM reference leak in buffer postenable
iio: dac: ad5446: fix OF module device table
iio: light: opt4001: Fix reversed GENMASK() arguments in fault count mask
iio: light: opt4001: Reject integration times with a non-zero seconds part
iio: light: opt4001: Fix incompatible pointer type passed to div_u64_rem()
iio: light: opt4001: Fix power down clearing bits of the wrong register
iio: light: opt4060: Fix incorrect register name in threshold read error message
iio: light: opt4060: Fix pointer type passed to div_u64_rem()
iio: light: opt4060: Reject integration times with a non-zero seconds part
iio: light: ltrf216a: fix runtime PM reference leak in error path
iio: pressure: dps310: fix NULL pointer dereference on ACPI probe
...
66 lines
1.6 KiB
C
66 lines
1.6 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
|
|
#ifndef _LINUX_NVMEM_INTERNALS_H
|
|
#define _LINUX_NVMEM_INTERNALS_H
|
|
|
|
#include <linux/device.h>
|
|
#include <linux/nvmem-consumer.h>
|
|
#include <linux/nvmem-provider.h>
|
|
|
|
/* Hold pointers to callbacks owned by the nvmem provider module. */
|
|
struct nvmem_operations {
|
|
nvmem_reg_read_t reg_read;
|
|
nvmem_reg_write_t reg_write;
|
|
};
|
|
|
|
struct nvmem_device {
|
|
struct module *owner;
|
|
struct device dev;
|
|
int stride;
|
|
int word_size;
|
|
int id;
|
|
struct kref refcnt;
|
|
size_t size;
|
|
bool read_only;
|
|
bool root_only;
|
|
int flags;
|
|
enum nvmem_type type;
|
|
struct bin_attribute eeprom;
|
|
struct device *base_dev;
|
|
struct list_head cells;
|
|
void (*fixup_dt_cell_info)(struct nvmem_device *nvmem,
|
|
struct nvmem_cell_info *cell);
|
|
const struct nvmem_keepout *keepout;
|
|
unsigned int nkeepout;
|
|
struct gpio_desc *wp_gpio;
|
|
struct nvmem_layout *layout;
|
|
struct nvmem_operations *ops;
|
|
void *priv;
|
|
bool sysfs_cells_populated;
|
|
};
|
|
|
|
int nvmem_add_cells_from_dt(struct nvmem_device *nvmem, struct device_node *np);
|
|
|
|
#if IS_ENABLED(CONFIG_OF)
|
|
int nvmem_layout_bus_register(void);
|
|
void nvmem_layout_bus_unregister(void);
|
|
int nvmem_populate_layout(struct nvmem_device *nvmem);
|
|
void nvmem_destroy_layout(struct nvmem_device *nvmem);
|
|
#else /* CONFIG_OF */
|
|
static inline int nvmem_layout_bus_register(void)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
static inline void nvmem_layout_bus_unregister(void) {}
|
|
|
|
static inline int nvmem_populate_layout(struct nvmem_device *nvmem)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
static inline void nvmem_destroy_layout(struct nvmem_device *nvmem) { }
|
|
#endif /* CONFIG_OF */
|
|
|
|
#endif /* ifndef _LINUX_NVMEM_INTERNALS_H */
|