History

Merge tag 'arm-drivers-5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc

Pull ARM driver updates from Arnd Bergmann: "These are the usual updates for SoC specific device drivers and related subsystems that don't have their own top-level maintainers: - ARM SCMI/SCPI updates to allow pluggable transport layers - TEE subsystem cleanups - A new driver for the Amlogic secure power domain controller - Various driver updates for the NXP Layerscape DPAA2, NXP i.MX SCU and TI OMAP2+ sysc drivers. - Qualcomm SoC driver updates, including a new library module for "protection domain" notifications - Lots of smaller bugfixes and cleanups in other drivers" * tag 'arm-drivers-5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (70 commits) soc: fsl: qe: fix sparse warnings for ucc_slow.c soc: fsl: qe: ucc_slow: remove 0 assignment for kzalloc'ed structure soc: fsl: qe: fix sparse warnings for ucc_fast.c soc: fsl: qe: fix sparse warnings for qe_ic.c soc: fsl: qe: fix sparse warnings for ucc.c soc: fsl: qe: fix sparse warning for qe_common.c soc: fsl: qe: fix sparse warnings for qe.c soc: qcom: Fix QCOM_APR dependencies soc: qcom: pdr: Avoid uninitialized use of found in pdr_indication_cb soc: imx: drop COMPILE_TEST for IMX_SCU_SOC firmware: imx: add COMPILE_TEST for IMX_SCU driver soc: imx: gpc: fix power up sequencing soc: imx: increase build coverage for imx8m soc driver soc: qcom: apr: Add avs/audio tracking functionality dt-bindings: soc: qcom: apr: Add protection domain bindings soc: qcom: Introduce Protection Domain Restart helpers devicetree: bindings: firmware: add ipq806x to qcom_scm memory: tegra: Correct debugfs clk rate-range on Tegra124 memory: tegra: Correct debugfs clk rate-range on Tegra30 memory: tegra: Correct debugfs clk rate-range on Tegra20 ...

Linus Torvalds committed 6 years ago

Commit d18292d2 parents 0e8fb69 cedb41468 files · +3692 −633Browse files

Showing the changes to include/linux (7 of 68 files). Show all

Unified · Split

7 files
  1. include/linux/firmware/imx/ipc.h +0 −1
  2. include/linux/firmware/meson/meson_sm.h +2 −0
  3. include/linux/platform_data/ti-sysc.h +5 −0
  4. include/linux/soc/qcom/apr.h +1 −0
  5. include/linux/soc/qcom/pdr.h +29 −0
  6. include/linux/soc/qcom/qmi.h +1 −0
  7. include/linux/tee_drv.h +1 −18
include/linux/firmware/imx/ipc.h+0−1
@@ -25,7 +25,6 @@ enum imx_sc_rpc_svc { · 24 unmodified lines
2525 IMX_SC_RPC_SVC_PAD = 6,
2626 IMX_SC_RPC_SVC_MISC = 7,
2727 IMX_SC_RPC_SVC_IRQ = 8,
28− IMX_SC_RPC_SVC_ABORT = 9
2928 };
3029
3130 struct imx_sc_rpc_msg {
include/linux/firmware/meson/meson_sm.h+2−0
@@ -12,6 +12,8 @@ enum { · 11 unmodified lines
1212 SM_EFUSE_WRITE,
1313 SM_EFUSE_USER_MAX,
1414 SM_GET_CHIP_ID,
15+ SM_A1_PWRC_SET,
16+ SM_A1_PWRC_GET,
1517 };
1618
1719 struct meson_sm_firmware;
include/linux/platform_data/ti-sysc.h+5−0
@@ -17,6 +17,7 @@ enum ti_sysc_module_type { · 16 unmodified lines
1717 TI_SYSC_OMAP4_MCASP,
1818 TI_SYSC_OMAP4_USB_HOST_FS,
1919 TI_SYSC_DRA7_MCAN,
20+ TI_SYSC_PRUSS,
2021 };
2122
2223 struct ti_sysc_cookie {
@@ -49,6 +50,9 @@ struct sysc_regbits { · 26 unmodified lines
4950 s8 emufree_shift;
5051 };
5152
53+#define SYSC_MODULE_QUIRK_PRUSS BIT(24)
54+#define SYSC_MODULE_QUIRK_DSS_RESET BIT(23)
55+#define SYSC_MODULE_QUIRK_RTC_UNLOCK BIT(22)
5256 #define SYSC_QUIRK_CLKDM_NOAUTO BIT(21)
5357 #define SYSC_QUIRK_FORCE_MSTANDBY BIT(20)
5458 #define SYSC_MODULE_QUIRK_AESS BIT(19)
@@ -141,6 +145,7 @@ struct clk; · 86 unmodified lines
141145
142146 struct ti_sysc_platform_data {
143147 struct of_dev_auxdata *auxdata;
148+ bool (*soc_type_gp)(void);
144149 int (*init_clockdomain)(struct device *dev, struct clk *fck,
145150 struct clk *ick, struct ti_sysc_cookie *cookie);
146151 void (*clkdm_deny_idle)(struct device *dev,
include/linux/soc/qcom/apr.h+1−0
@@ -85,6 +85,7 @@ struct apr_device { · 84 unmodified lines
8585 uint16_t domain_id;
8686 uint32_t version;
8787 char name[APR_NAME_SIZE];
88+ const char *service_path;
8889 spinlock_t lock;
8990 struct list_head node;
9091 };
include/linux/soc/qcom/pdr.h+29−0
@@ -0,0 +1,29 @@
1+/* SPDX-License-Identifier: GPL-2.0 */
2+#ifndef __QCOM_PDR_HELPER__
3+#define __QCOM_PDR_HELPER__
4+
5+#include <linux/soc/qcom/qmi.h>
6+
7+#define SERVREG_NAME_LENGTH 64
8+
9+struct pdr_service;
10+struct pdr_handle;
11+
12+enum servreg_service_state {
13+ SERVREG_LOCATOR_ERR = 0x1,
14+ SERVREG_SERVICE_STATE_DOWN = 0x0FFFFFFF,
15+ SERVREG_SERVICE_STATE_UP = 0x1FFFFFFF,
16+ SERVREG_SERVICE_STATE_EARLY_DOWN = 0x2FFFFFFF,
17+ SERVREG_SERVICE_STATE_UNINIT = 0x7FFFFFFF,
18+};
19+
20+struct pdr_handle *pdr_handle_alloc(void (*status)(int state,
21+ char *service_path,
22+ void *priv), void *priv);
23+struct pdr_service *pdr_add_lookup(struct pdr_handle *pdr,
24+ const char *service_name,
25+ const char *service_path);
26+int pdr_restart_pd(struct pdr_handle *pdr, struct pdr_service *pds);
27+void pdr_handle_release(struct pdr_handle *pdr);
28+
29+#endif
include/linux/soc/qcom/qmi.h+1−0
@@ -88,6 +88,7 @@ struct qmi_elem_info { · 87 unmodified lines
8888 #define QMI_ERR_CLIENT_IDS_EXHAUSTED_V01 5
8989 #define QMI_ERR_INVALID_ID_V01 41
9090 #define QMI_ERR_ENCODING_V01 58
91+#define QMI_ERR_DISABLED_V01 69
9192 #define QMI_ERR_INCOMPATIBLE_STATE_V01 90
9293 #define QMI_ERR_NOT_SUPPORTED_V01 94
9394
include/linux/tee_drv.h+1−18
@@ -49,7 +49,6 @@ struct tee_shm_pool; · 48 unmodified lines
4949 */
5050 struct tee_context {
5151 struct tee_device *teedev;
52− struct list_head list_shm;
5352 void *data;
5453 struct kref refcount;
5554 bool releasing;
@@ -168,9 +167,7 @@ void tee_device_unregister(struct tee_device *teedev); · 112 unmodified lines
168167
169168 /**
170169 * struct tee_shm - shared memory object
171− * @teedev: device used to allocate the object
172− * @ctx: context using the object, if NULL the context is gone
173− * @link link element
170+ * @ctx: context using the object
174171 * @paddr: physical address of the shared memory
175172 * @kaddr: virtual address of the shared memory
176173 * @size: size of shared memory
@@ -185,9 +182,7 @@ void tee_device_unregister(struct tee_device *teedev); · 8 unmodified lines
185182 * subsystem and from drivers that implements their own shm pool manager.
186183 */
187184 struct tee_shm {
188− struct tee_device *teedev;
189185 struct tee_context *ctx;
190− struct list_head link;
191186 phys_addr_t paddr;
192187 void *kaddr;
193188 size_t size;
@@ -318,18 +313,6 @@ void *tee_get_drvdata(struct tee_device *teedev); · 124 unmodified lines
318313 */
319314 struct tee_shm *tee_shm_alloc(struct tee_context *ctx, size_t size, u32 flags);
320315
321−/**
322− * tee_shm_priv_alloc() - Allocate shared memory privately
323− * @dev: Device that allocates the shared memory
324− * @size: Requested size of shared memory
325− *
326− * Allocates shared memory buffer that is not associated with any client
327− * context. Such buffers are owned by TEE driver and used for internal calls.
328− *
329− * @returns a pointer to 'struct tee_shm'
330− */
331−struct tee_shm *tee_shm_priv_alloc(struct tee_device *teedev, size_t size);
332−
333316 /**
334317 * tee_shm_register() - Register shared memory buffer
335318 * @ctx: Context that registers the shared memory