Char/Misc patches for 4.17-rc1
Here is the big set of char/misc driver patches for 4.17-rc1.
There are a lot of little things in here, nothing huge, but all
important to the different hardware types involved:
- thunderbolt driver updates
- parport updates (people still care...)
- nvmem driver updates
- mei updates (as always)
- hwtracing driver updates
- hyperv driver updates
- extcon driver updates
- and a handfull of even smaller driver subsystem and individual
driver updates
All of these have been in linux-next with no reported issues.
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-----BEGIN PGP SIGNATURE-----
iG0EABECAC0WIQT0tgzFv3jCIUoxPcsxR9QN2y37KQUCWsShSQ8cZ3JlZ0Brcm9h
aC5jb20ACgkQMUfUDdst+ykNqwCfUbfvopswb1PesHCLABDBsFQChgoAniDa6pS9
kI8TN5MdLN85UU27Mkb6
=BzFR
-----END PGP SIGNATURE-----
Merge tag 'char-misc-4.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc
Pull char/misc updates from Greg KH:
"Here is the big set of char/misc driver patches for 4.17-rc1.
There are a lot of little things in here, nothing huge, but all
important to the different hardware types involved:
- thunderbolt driver updates
- parport updates (people still care...)
- nvmem driver updates
- mei updates (as always)
- hwtracing driver updates
- hyperv driver updates
- extcon driver updates
- ... and a handful of even smaller driver subsystem and individual
driver updates
All of these have been in linux-next with no reported issues"
* tag 'char-misc-4.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (149 commits)
hwtracing: Add HW tracing support menu
intel_th: Add ACPI glue layer
intel_th: Allow forcing host mode through drvdata
intel_th: Pick up irq number from resources
intel_th: Don't touch switch routing in host mode
intel_th: Use correct method of finding hub
intel_th: Add SPDX GPL-2.0 header to replace GPLv2 boilerplate
stm class: Make dummy's master/channel ranges configurable
stm class: Add SPDX GPL-2.0 header to replace GPLv2 boilerplate
MAINTAINERS: Bestow upon myself the care for drivers/hwtracing
hv: add SPDX license id to Kconfig
hv: add SPDX license to trace
Drivers: hv: vmbus: do not mark HV_PCIE as perf_device
Drivers: hv: vmbus: respect what we get from hv_get_synint_state()
/dev/mem: Avoid overwriting "err" in read_mem()
eeprom: at24: use SPDX identifier instead of GPL boiler-plate
eeprom: at24: simplify the i2c functionality checking
eeprom: at24: fix a line break
eeprom: at24: tweak newlines
eeprom: at24: refactor at24_probe()
...
This commit is contained in:
commit
06dd3dfeea
141 changed files with 3384 additions and 1214 deletions
|
|
@ -230,6 +230,7 @@ extern void devm_extcon_unregister_notifier_all(struct device *dev,
|
|||
* Following APIs get the extcon_dev from devicetree or by through extcon name.
|
||||
*/
|
||||
extern struct extcon_dev *extcon_get_extcon_dev(const char *extcon_name);
|
||||
extern struct extcon_dev *extcon_find_edev_by_node(struct device_node *node);
|
||||
extern struct extcon_dev *extcon_get_edev_by_phandle(struct device *dev,
|
||||
int index);
|
||||
|
||||
|
|
@ -283,6 +284,11 @@ static inline struct extcon_dev *extcon_get_extcon_dev(const char *extcon_name)
|
|||
return ERR_PTR(-ENODEV);
|
||||
}
|
||||
|
||||
static inline struct extcon_dev *extcon_find_edev_by_node(struct device_node *node)
|
||||
{
|
||||
return ERR_PTR(-ENODEV);
|
||||
}
|
||||
|
||||
static inline struct extcon_dev *extcon_get_edev_by_phandle(struct device *dev,
|
||||
int index)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,47 +0,0 @@
|
|||
/*
|
||||
* Single-state GPIO extcon driver based on extcon class
|
||||
*
|
||||
* Copyright (C) 2012 Samsung Electronics
|
||||
* Author: MyungJoo Ham <myungjoo.ham@samsung.com>
|
||||
*
|
||||
* based on switch class driver
|
||||
* Copyright (C) 2008 Google, Inc.
|
||||
* Author: Mike Lockwood <lockwood@android.com>
|
||||
*
|
||||
* This software is licensed under the terms of the GNU General Public
|
||||
* License version 2, as published by the Free Software Foundation, and
|
||||
* may be copied, distributed, and modified under those terms.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
#ifndef __EXTCON_GPIO_H__
|
||||
#define __EXTCON_GPIO_H__ __FILE__
|
||||
|
||||
#include <linux/extcon.h>
|
||||
|
||||
/**
|
||||
* struct gpio_extcon_pdata - A simple GPIO-controlled extcon device.
|
||||
* @extcon_id: The unique id of specific external connector.
|
||||
* @gpio: Corresponding GPIO.
|
||||
* @gpio_active_low: Boolean describing whether gpio active state is 1 or 0
|
||||
* If true, low state of gpio means active.
|
||||
* If false, high state of gpio means active.
|
||||
* @debounce: Debounce time for GPIO IRQ in ms.
|
||||
* @irq_flags: IRQ Flags (e.g., IRQF_TRIGGER_LOW).
|
||||
* @check_on_resume: Boolean describing whether to check the state of gpio
|
||||
* while resuming from sleep.
|
||||
*/
|
||||
struct gpio_extcon_pdata {
|
||||
unsigned int extcon_id;
|
||||
unsigned gpio;
|
||||
bool gpio_active_low;
|
||||
unsigned long debounce;
|
||||
unsigned long irq_flags;
|
||||
|
||||
bool check_on_resume;
|
||||
};
|
||||
|
||||
#endif /* __EXTCON_GPIO_H__ */
|
||||
|
|
@ -844,7 +844,7 @@ struct vmbus_channel {
|
|||
|
||||
/*
|
||||
* NUMA distribution policy:
|
||||
* We support teo policies:
|
||||
* We support two policies:
|
||||
* 1) Balanced: Here all performance critical channels are
|
||||
* distributed evenly amongst all the NUMA nodes.
|
||||
* This policy will be the default policy.
|
||||
|
|
|
|||
|
|
@ -22,6 +22,31 @@ typedef int (*nvmem_reg_read_t)(void *priv, unsigned int offset,
|
|||
typedef int (*nvmem_reg_write_t)(void *priv, unsigned int offset,
|
||||
void *val, size_t bytes);
|
||||
|
||||
/**
|
||||
* struct nvmem_config - NVMEM device configuration
|
||||
*
|
||||
* @dev: Parent device.
|
||||
* @name: Optional name.
|
||||
* @id: Optional device ID used in full name. Ignored if name is NULL.
|
||||
* @owner: Pointer to exporter module. Used for refcounting.
|
||||
* @cells: Optional array of pre-defined NVMEM cells.
|
||||
* @ncells: Number of elements in cells.
|
||||
* @read_only: Device is read-only.
|
||||
* @root_only: Device is accessibly to root only.
|
||||
* @reg_read: Callback to read data.
|
||||
* @reg_write: Callback to write data.
|
||||
* @size: Device size.
|
||||
* @word_size: Minimum read/write access granularity.
|
||||
* @stride: Minimum read/write access stride.
|
||||
* @priv: User context passed to read/write callbacks.
|
||||
*
|
||||
* Note: A default "nvmem<id>" name will be assigned to the device if
|
||||
* no name is specified in its configuration. In such case "<id>" is
|
||||
* generated with ida_simple_get() and provided id field is ignored.
|
||||
*
|
||||
* Note: Specifying name and setting id to -1 implies a unique device
|
||||
* whose name is provided as-is (kept unaltered).
|
||||
*/
|
||||
struct nvmem_config {
|
||||
struct device *dev;
|
||||
const char *name;
|
||||
|
|
@ -47,6 +72,11 @@ struct nvmem_config {
|
|||
struct nvmem_device *nvmem_register(const struct nvmem_config *cfg);
|
||||
int nvmem_unregister(struct nvmem_device *nvmem);
|
||||
|
||||
struct nvmem_device *devm_nvmem_register(struct device *dev,
|
||||
const struct nvmem_config *cfg);
|
||||
|
||||
int devm_nvmem_unregister(struct device *dev, struct nvmem_device *nvmem);
|
||||
|
||||
#else
|
||||
|
||||
static inline struct nvmem_device *nvmem_register(const struct nvmem_config *c)
|
||||
|
|
@ -59,5 +89,17 @@ static inline int nvmem_unregister(struct nvmem_device *nvmem)
|
|||
return -ENOSYS;
|
||||
}
|
||||
|
||||
static inline struct nvmem_device *
|
||||
devm_nvmem_register(struct device *dev, const struct nvmem_config *c)
|
||||
{
|
||||
return nvmem_register(c);
|
||||
}
|
||||
|
||||
static inline int
|
||||
devm_nvmem_unregister(struct device *dev, struct nvmem_device *nvmem)
|
||||
{
|
||||
return nvmem_unregister(nvmem);
|
||||
}
|
||||
|
||||
#endif /* CONFIG_NVMEM */
|
||||
#endif /* ifndef _LINUX_NVMEM_PROVIDER_H */
|
||||
|
|
|
|||
|
|
@ -1562,6 +1562,8 @@
|
|||
#define PCI_DEVICE_ID_SERVERWORKS_CSB6LPC 0x0227
|
||||
#define PCI_DEVICE_ID_SERVERWORKS_HT1100LD 0x0408
|
||||
|
||||
#define PCI_VENDOR_ID_ALTERA 0x1172
|
||||
|
||||
#define PCI_VENDOR_ID_SBE 0x1176
|
||||
#define PCI_DEVICE_ID_SBE_WANXL100 0x0301
|
||||
#define PCI_DEVICE_ID_SBE_WANXL200 0x0302
|
||||
|
|
|
|||
|
|
@ -1,15 +1,7 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* System Trace Module (STM) infrastructure apis
|
||||
* Copyright (C) 2014 Intel Corporation.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms and conditions of the GNU General Public License,
|
||||
* version 2, as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope 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.
|
||||
*/
|
||||
|
||||
#ifndef _STM_H_
|
||||
|
|
|
|||
|
|
@ -45,12 +45,16 @@ enum tb_cfg_pkg_type {
|
|||
* @TB_SECURITY_USER: User approval required at minimum
|
||||
* @TB_SECURITY_SECURE: One time saved key required at minimum
|
||||
* @TB_SECURITY_DPONLY: Only tunnel Display port (and USB)
|
||||
* @TB_SECURITY_USBONLY: Only tunnel USB controller of the connected
|
||||
* Thunderbolt dock (and Display Port). All PCIe
|
||||
* links downstream of the dock are removed.
|
||||
*/
|
||||
enum tb_security_level {
|
||||
TB_SECURITY_NONE,
|
||||
TB_SECURITY_USER,
|
||||
TB_SECURITY_SECURE,
|
||||
TB_SECURITY_DPONLY,
|
||||
TB_SECURITY_USBONLY,
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -65,6 +69,7 @@ enum tb_security_level {
|
|||
* @cm_ops: Connection manager specific operations vector
|
||||
* @index: Linux assigned domain number
|
||||
* @security_level: Current security level
|
||||
* @nboot_acl: Number of boot ACLs the domain supports
|
||||
* @privdata: Private connection manager specific data
|
||||
*/
|
||||
struct tb {
|
||||
|
|
@ -77,6 +82,7 @@ struct tb {
|
|||
const struct tb_cm_ops *cm_ops;
|
||||
int index;
|
||||
enum tb_security_level security_level;
|
||||
size_t nboot_acl;
|
||||
unsigned long privdata[0];
|
||||
};
|
||||
|
||||
|
|
@ -237,6 +243,7 @@ int tb_xdomain_enable_paths(struct tb_xdomain *xd, u16 transmit_path,
|
|||
u16 receive_ring);
|
||||
int tb_xdomain_disable_paths(struct tb_xdomain *xd);
|
||||
struct tb_xdomain *tb_xdomain_find_by_uuid(struct tb *tb, const uuid_t *uuid);
|
||||
struct tb_xdomain *tb_xdomain_find_by_route(struct tb *tb, u64 route);
|
||||
|
||||
static inline struct tb_xdomain *
|
||||
tb_xdomain_find_by_uuid_locked(struct tb *tb, const uuid_t *uuid)
|
||||
|
|
@ -250,6 +257,18 @@ tb_xdomain_find_by_uuid_locked(struct tb *tb, const uuid_t *uuid)
|
|||
return xd;
|
||||
}
|
||||
|
||||
static inline struct tb_xdomain *
|
||||
tb_xdomain_find_by_route_locked(struct tb *tb, u64 route)
|
||||
{
|
||||
struct tb_xdomain *xd;
|
||||
|
||||
mutex_lock(&tb->lock);
|
||||
xd = tb_xdomain_find_by_route(tb, route);
|
||||
mutex_unlock(&tb->lock);
|
||||
|
||||
return xd;
|
||||
}
|
||||
|
||||
static inline struct tb_xdomain *tb_xdomain_get(struct tb_xdomain *xd)
|
||||
{
|
||||
if (xd)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue