diff options
52 files changed, 209 insertions, 194 deletions
diff --git a/arch/arm/mach-msm/bam_dmux.c b/arch/arm/mach-msm/bam_dmux.c index 0ffd22eb85c2..4bc31e10d235 100644 --- a/arch/arm/mach-msm/bam_dmux.c +++ b/arch/arm/mach-msm/bam_dmux.c @@ -30,12 +30,12 @@ #include <linux/of.h> #include <linux/ipc_logging.h> #include <linux/srcu.h> +#include <soc/qcom/subsystem_restart.h> +#include <soc/qcom/subsystem_notif.h> #include <mach/sps.h> #include <mach/bam_dmux.h> #include <mach/msm_smsm.h> -#include <mach/subsystem_notif.h> #include <mach/socinfo.h> -#include <mach/subsystem_restart.h> #include "bam_dmux_private.h" diff --git a/arch/arm/mach-msm/hsic_sysmon.c b/arch/arm/mach-msm/hsic_sysmon.c index 744864b1f37f..c4b2875f6f7a 100644 --- a/arch/arm/mach-msm/hsic_sysmon.c +++ b/arch/arm/mach-msm/hsic_sysmon.c @@ -23,7 +23,7 @@ #include <linux/uaccess.h> #include <linux/usb.h> #include <linux/debugfs.h> -#include <mach/sysmon.h> +#include <soc/qcom/sysmon.h> #include "hsic_sysmon.h" diff --git a/arch/arm/mach-msm/hsic_sysmon_test.c b/arch/arm/mach-msm/hsic_sysmon_test.c index 3bdd9e3ee6bb..360f7862c9a7 100644 --- a/arch/arm/mach-msm/hsic_sysmon_test.c +++ b/arch/arm/mach-msm/hsic_sysmon_test.c @@ -19,7 +19,7 @@ #include <linux/device.h> #include <linux/debugfs.h> #include <linux/uaccess.h> -#include <mach/sysmon.h> +#include <soc/qcom/sysmon.h> #include "hsic_sysmon.h" diff --git a/arch/arm/mach-msm/include/mach/subsystem_restart.h b/arch/arm/mach-msm/include/mach/subsystem_restart.h index d54c825c6ea2..1049799ea019 100644 --- a/arch/arm/mach-msm/include/mach/subsystem_restart.h +++ b/arch/arm/mach-msm/include/mach/subsystem_restart.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2011-2013, The Linux Foundation. All rights reserved. +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -10,124 +10,8 @@ * GNU General Public License for more details. * */ - -#ifndef __SUBSYS_RESTART_H -#define __SUBSYS_RESTART_H - -#include <linux/spinlock.h> -#include <linux/interrupt.h> - -#define SUBSYS_NAME_MAX_LENGTH 40 - -struct subsys_device; - -enum { - RESET_SOC = 0, - RESET_SUBSYS_COUPLED, - RESET_LEVEL_MAX -}; - -struct device; -struct module; - -/** - * struct subsys_desc - subsystem descriptor - * @name: name of subsystem - * @depends_on: subsystem this subsystem depends on to operate - * @dev: parent device - * @owner: module the descriptor belongs to - * @shutdown: Stop a subsystem - * @powerup: Start a subsystem - * @crash_shutdown: Shutdown a subsystem when the system crashes (can't sleep) - * @ramdump: Collect a ramdump of the subsystem - * @is_not_loadable: Indicate if subsystem firmware is not loadable via pil - * framework +/* + * This header is deprecated and will be deleted soon. Please include + * the header below instead. */ -struct subsys_desc { - const char *name; - const char *depends_on; - struct device *dev; - struct module *owner; - - int (*shutdown)(const struct subsys_desc *desc, bool force_stop); - int (*powerup)(const struct subsys_desc *desc); - void (*crash_shutdown)(const struct subsys_desc *desc); - int (*ramdump)(int, const struct subsys_desc *desc); - irqreturn_t (*err_fatal_handler) (int irq, void *dev_id); - irqreturn_t (*stop_ack_handler) (int irq, void *dev_id); - irqreturn_t (*wdog_bite_handler) (int irq, void *dev_id); - int is_not_loadable; - unsigned int err_fatal_irq; - unsigned int err_ready_irq; - unsigned int stop_ack_irq; - unsigned int wdog_bite_irq; - int force_stop_gpio; -}; - -#if defined(CONFIG_MSM_SUBSYSTEM_RESTART) - -extern int subsys_get_restart_level(struct subsys_device *dev); -extern int subsystem_restart_dev(struct subsys_device *dev); -extern int subsystem_restart(const char *name); -extern int subsystem_crashed(const char *name); - -extern void *subsystem_get(const char *name); -extern void subsystem_put(void *subsystem); - -extern struct subsys_device *subsys_register(struct subsys_desc *desc); -extern void subsys_unregister(struct subsys_device *dev); - -extern void subsys_default_online(struct subsys_device *dev); -extern void subsys_set_crash_status(struct subsys_device *dev, bool crashed); -extern bool subsys_get_crash_status(struct subsys_device *dev); -void notify_proxy_vote(struct device *device); -void notify_proxy_unvote(struct device *device); -#else - -static inline int subsys_get_restart_level(struct subsys_device *dev) -{ - return 0; -} - -static inline int subsystem_restart_dev(struct subsys_device *dev) -{ - return 0; -} - -static inline int subsystem_restart(const char *name) -{ - return 0; -} - -static inline int subsystem_crashed(const char *name) -{ - return 0; -} - -static inline void *subsystem_get(const char *name) -{ - return NULL; -} - -static inline void subsystem_put(void *subsystem) { } - -static inline -struct subsys_device *subsys_register(struct subsys_desc *desc) -{ - return NULL; -} - -static inline void subsys_unregister(struct subsys_device *dev) { } - -static inline void subsys_default_online(struct subsys_device *dev) { } -static inline -void subsys_set_crash_status(struct subsys_device *dev, bool crashed) { } -static inline bool subsys_get_crash_status(struct subsys_device *dev) -{ - return false; -} -void notify_proxy_vote(struct device *device) { } -void notify_proxy_unvote(struct device *device) { } -#endif /* CONFIG_MSM_SUBSYSTEM_RESTART */ - -#endif +#include <soc/qcom/subsystem_restart.h> diff --git a/arch/arm/mach-msm/peripheral-loader.c b/arch/arm/mach-msm/peripheral-loader.c index c8a2e5264b55..f8b18496e8ae 100644 --- a/arch/arm/mach-msm/peripheral-loader.c +++ b/arch/arm/mach-msm/peripheral-loader.c @@ -33,14 +33,14 @@ #include <linux/of_gpio.h> #include <linux/of_address.h> #include <linux/io.h> +#include <soc/qcom/ramdump.h> +#include <soc/qcom/subsystem_restart.h> #include <asm/uaccess.h> #include <asm/setup.h> #include <asm-generic/io-64-nonatomic-lo-hi.h> #include <mach/msm_iomap.h> -#include <mach/ramdump.h> -#include <mach/subsystem_restart.h> #include "peripheral-loader.h" diff --git a/arch/arm/mach-msm/pil-pronto.c b/arch/arm/mach-msm/pil-pronto.c index 36a35f503b7f..ff0c8b22d329 100644 --- a/arch/arm/mach-msm/pil-pronto.c +++ b/arch/arm/mach-msm/pil-pronto.c @@ -26,10 +26,10 @@ #include <linux/workqueue.h> #include <linux/wcnss_wlan.h> #include <linux/of_gpio.h> +#include <soc/qcom/subsystem_restart.h> +#include <soc/qcom/ramdump.h> -#include <mach/subsystem_restart.h> #include <mach/msm_smsm.h> -#include <mach/ramdump.h> #include <mach/msm_bus_board.h> #include <soc/qcom/smem.h> diff --git a/arch/arm/mach-msm/pil-q6v5-lpass.c b/arch/arm/mach-msm/pil-q6v5-lpass.c index e9e501193716..1f91347568b7 100644 --- a/arch/arm/mach-msm/pil-q6v5-lpass.c +++ b/arch/arm/mach-msm/pil-q6v5-lpass.c @@ -24,13 +24,13 @@ #include <linux/sysfs.h> #include <linux/of_gpio.h> #include <linux/clk/msm-clk.h> +#include <soc/qcom/sysmon.h> +#include <soc/qcom/subsystem_restart.h> +#include <soc/qcom/subsystem_notif.h> +#include <soc/qcom/ramdump.h> #include <soc/qcom/scm.h> -#include <mach/subsystem_restart.h> -#include <mach/subsystem_notif.h> -#include <mach/ramdump.h> #include <mach/msm_bus_board.h> -#include <mach/sysmon.h> #include <soc/qcom/smem.h> diff --git a/arch/arm/mach-msm/pil-q6v5-mss.c b/arch/arm/mach-msm/pil-q6v5-mss.c index 8b25ef92a77a..b2075f5370b9 100644 --- a/arch/arm/mach-msm/pil-q6v5-mss.c +++ b/arch/arm/mach-msm/pil-q6v5-mss.c @@ -27,11 +27,11 @@ #include <linux/dma-mapping.h> #include <linux/of_gpio.h> #include <linux/clk/msm-clk.h> +#include <soc/qcom/sysmon.h> +#include <soc/qcom/subsystem_restart.h> +#include <soc/qcom/ramdump.h> -#include <mach/subsystem_restart.h> #include <mach/msm_smsm.h> -#include <mach/ramdump.h> -#include <mach/sysmon.h> #include <soc/qcom/smem.h> diff --git a/arch/arm/mach-msm/ramdump.c b/arch/arm/mach-msm/ramdump.c index 5417271e190a..bca0997c7d8f 100644 --- a/arch/arm/mach-msm/ramdump.c +++ b/arch/arm/mach-msm/ramdump.c @@ -24,8 +24,8 @@ #include <linux/uaccess.h> #include <linux/elf.h> #include <linux/wait.h> +#include <soc/qcom/ramdump.h> -#include <mach/ramdump.h> #define RAMDUMP_WAIT_MSECS 120000 diff --git a/arch/arm/mach-msm/sensors_adsp.c b/arch/arm/mach-msm/sensors_adsp.c index 77aef54f24a6..97870ed0be76 100644 --- a/arch/arm/mach-msm/sensors_adsp.c +++ b/arch/arm/mach-msm/sensors_adsp.c @@ -29,8 +29,8 @@ #include <linux/of_device.h> #include <linux/msm_dsps.h> #include <linux/uaccess.h> +#include <soc/qcom/subsystem_restart.h> #include <asm/arch_timer.h> -#include <mach/subsystem_restart.h> #include <mach/ocmem.h> #include <mach/msm_smd.h> #include <mach/sensors_adsp.h> diff --git a/arch/arm/mach-msm/smd.c b/arch/arm/mach-msm/smd.c index 934381bbe5f9..97aec5678dd5 100644 --- a/arch/arm/mach-msm/smd.c +++ b/arch/arm/mach-msm/smd.c @@ -38,11 +38,11 @@ #include <linux/of.h> #include <linux/of_irq.h> #include <linux/ipc_logging.h> +#include <soc/qcom/subsystem_restart.h> +#include <soc/qcom/subsystem_notif.h> +#include <soc/qcom/ramdump.h> #include <mach/msm_smd.h> -#include <mach/subsystem_notif.h> -#include <mach/subsystem_restart.h> -#include <mach/ramdump.h> #include <soc/qcom/smem.h> diff --git a/arch/arm/mach-msm/smp2p_test.c b/arch/arm/mach-msm/smp2p_test.c index af83bdcfae20..270abd5d1590 100644 --- a/arch/arm/mach-msm/smp2p_test.c +++ b/arch/arm/mach-msm/smp2p_test.c @@ -16,7 +16,7 @@ #include <linux/jiffies.h> #include <linux/delay.h> #include <linux/completion.h> -#include <mach/subsystem_restart.h> +#include <soc/qcom/subsystem_restart.h> #include "smp2p_private.h" #include "smp2p_test_common.h" diff --git a/arch/arm/mach-msm/subsys-pil-tz.c b/arch/arm/mach-msm/subsys-pil-tz.c index d8dbd25e55d1..332791f7fa36 100644 --- a/arch/arm/mach-msm/subsys-pil-tz.c +++ b/arch/arm/mach-msm/subsys-pil-tz.c @@ -24,8 +24,8 @@ #include <mach/msm_bus_board.h> #include <mach/msm_bus.h> -#include <mach/subsystem_restart.h> -#include <mach/ramdump.h> +#include <soc/qcom/subsystem_restart.h> +#include <soc/qcom/ramdump.h> #include <soc/qcom/smem.h> diff --git a/arch/arm/mach-msm/subsystem_notif.c b/arch/arm/mach-msm/subsystem_notif.c index f0db0e977add..431bbd8cee6f 100644 --- a/arch/arm/mach-msm/subsystem_notif.c +++ b/arch/arm/mach-msm/subsystem_notif.c @@ -26,8 +26,8 @@ #include <linux/stringify.h> #include <linux/delay.h> #include <linux/slab.h> +#include <soc/qcom/subsystem_notif.h> -#include <mach/subsystem_notif.h> struct subsys_notif_info { char name[50]; diff --git a/arch/arm/mach-msm/subsystem_restart.c b/arch/arm/mach-msm/subsystem_restart.c index 9e289cd3bead..29f4baeca5f3 100644 --- a/arch/arm/mach-msm/subsystem_restart.c +++ b/arch/arm/mach-msm/subsystem_restart.c @@ -34,12 +34,12 @@ #include <linux/of_gpio.h> #include <linux/cdev.h> #include <linux/platform_device.h> +#include <soc/qcom/subsystem_restart.h> +#include <soc/qcom/subsystem_notif.h> #include <asm/current.h> #include <mach/socinfo.h> -#include <mach/subsystem_notif.h> -#include <mach/subsystem_restart.h> static int enable_debug; module_param(enable_debug, int, S_IRUGO | S_IWUSR); diff --git a/arch/arm/mach-msm/sysmon.c b/arch/arm/mach-msm/sysmon.c index ea93bbb442f8..a4bbfe1233fe 100644 --- a/arch/arm/mach-msm/sysmon.c +++ b/arch/arm/mach-msm/sysmon.c @@ -20,10 +20,10 @@ #include <linux/string.h> #include <linux/completion.h> #include <linux/platform_device.h> +#include <soc/qcom/sysmon.h> +#include <soc/qcom/subsystem_notif.h> #include <mach/msm_smd.h> -#include <mach/subsystem_notif.h> -#include <mach/sysmon.h> #include "hsic_sysmon.h" #define TX_BUF_SIZE 50 diff --git a/drivers/char/msm_smd_pkt.c b/drivers/char/msm_smd_pkt.c index bf7d181ee1e4..2f42720598b8 100644 --- a/drivers/char/msm_smd_pkt.c +++ b/drivers/char/msm_smd_pkt.c @@ -30,13 +30,13 @@ #include <linux/completion.h> #include <linux/msm_smd_pkt.h> #include <linux/poll.h> +#include <soc/qcom/subsystem_restart.h> #include <asm/ioctls.h> #include <linux/pm.h> #include <linux/of.h> #include <linux/ipc_logging.h> #include <mach/msm_smd.h> -#include <mach/subsystem_restart.h> #include <mach/msm_smsm.h> #ifdef CONFIG_ARCH_FSM9XXX diff --git a/drivers/esoc/esoc-mdm-4x.c b/drivers/esoc/esoc-mdm-4x.c index 550878b4505f..add77c2b0b49 100644 --- a/drivers/esoc/esoc-mdm-4x.c +++ b/drivers/esoc/esoc-mdm-4x.c @@ -18,8 +18,8 @@ #include <linux/pinctrl/consumer.h> #include <linux/platform_device.h> #include <linux/workqueue.h> +#include <soc/qcom/sysmon.h> #include <mach/gpiomux.h> -#include <mach/sysmon.h> #include "esoc.h" #define MDM_PBLRDY_CNT 20 diff --git a/drivers/esoc/esoc.h b/drivers/esoc/esoc.h index 5eab16d5d3dd..c4c951e1651a 100644 --- a/drivers/esoc/esoc.h +++ b/drivers/esoc/esoc.h @@ -20,8 +20,8 @@ #include <linux/platform_device.h> #include <linux/slab.h> #include <linux/spinlock.h> -#include <mach/subsystem_notif.h> -#include <mach/subsystem_restart.h> +#include <soc/qcom/subsystem_restart.h> +#include <soc/qcom/subsystem_notif.h> #define ESOC_DEV_MAX 4 #define ESOC_NAME_LEN 20 diff --git a/drivers/media/platform/msm/broadcast/ensigma_uccp330.c b/drivers/media/platform/msm/broadcast/ensigma_uccp330.c index 93cf95ea6334..5c2b9fd682d1 100644 --- a/drivers/media/platform/msm/broadcast/ensigma_uccp330.c +++ b/drivers/media/platform/msm/broadcast/ensigma_uccp330.c @@ -35,13 +35,11 @@ #include <linux/platform_device.h> #include <linux/errno.h> #include <linux/regulator/consumer.h> -#include <mach/subsystem_restart.h> -#include <mach/subsystem_notif.h> +#include <soc/qcom/subsystem_restart.h> +#include <soc/qcom/subsystem_notif.h> #include <mach/msm_bus_board.h> #include <mach/msm_bus.h> #include <linux/clk/msm-clk.h> -#include <mach/subsystem_restart.h> -#include <mach/subsystem_notif.h> #include <linux/iommu.h> #include <mach/iommu.h> #include <mach/iommu_domains.h> diff --git a/drivers/media/platform/msm/vidc/msm_vidc_common.c b/drivers/media/platform/msm/vidc/msm_vidc_common.c index 7b9c71d95088..5b1dca2ad557 100644 --- a/drivers/media/platform/msm/vidc/msm_vidc_common.c +++ b/drivers/media/platform/msm/vidc/msm_vidc_common.c @@ -15,8 +15,8 @@ #include <linux/sched.h> #include <linux/slab.h> #include <linux/kernel.h> +#include <soc/qcom/subsystem_restart.h> #include <asm/div64.h> -#include <mach/subsystem_restart.h> #include "msm_vidc_common.h" #include "vidc_hfi_api.h" #include "msm_vidc_debug.h" diff --git a/drivers/media/platform/msm/vidc/q6_hfi.c b/drivers/media/platform/msm/vidc/q6_hfi.c index 7f029c696748..b223474c9e65 100644 --- a/drivers/media/platform/msm/vidc/q6_hfi.c +++ b/drivers/media/platform/msm/vidc/q6_hfi.c @@ -15,7 +15,7 @@ #include <linux/iommu.h> #include <linux/msm_iommu_domains.h> #include <linux/qdsp6v2/apr.h> -#include <mach/subsystem_restart.h> +#include <soc/qcom/subsystem_restart.h> #include "hfi_packetization.h" #include "msm_vidc_debug.h" #include "q6_hfi.h" diff --git a/drivers/media/platform/msm/vidc/venus_hfi.c b/drivers/media/platform/msm/vidc/venus_hfi.c index c17b2d386820..eede01526bcb 100644 --- a/drivers/media/platform/msm/vidc/venus_hfi.c +++ b/drivers/media/platform/msm/vidc/venus_hfi.c @@ -18,11 +18,11 @@ #include <linux/delay.h> #include <linux/of.h> #include <linux/iommu.h> +#include <soc/qcom/subsystem_restart.h> #include <soc/qcom/scm.h> #include <mach/iommu.h> #include <linux/msm_iommu_domains.h> #include <mach/ocmem.h> -#include <mach/subsystem_restart.h> #include <soc/qcom/smem.h> #include <asm/memory.h> #include <linux/iopoll.h> diff --git a/drivers/media/platform/msm/vpu/vpu_hfi.c b/drivers/media/platform/msm/vpu/vpu_hfi.c index 1d2dc76bfea1..10bbb6c5512c 100644 --- a/drivers/media/platform/msm/vpu/vpu_hfi.c +++ b/drivers/media/platform/msm/vpu/vpu_hfi.c @@ -22,8 +22,8 @@ #include <linux/mutex.h> #include <linux/spinlock.h> #include <linux/compiler.h> +#include <soc/qcom/subsystem_restart.h> #include <soc/qcom/scm.h> -#include <mach/subsystem_restart.h> #include "vpu_hfi.h" #include "vpu_hfi_intf.h" diff --git a/drivers/misc/qseecom.c b/drivers/misc/qseecom.c index 2d4a35e567bc..d6480c64a183 100644 --- a/drivers/misc/qseecom.c +++ b/drivers/misc/qseecom.c @@ -34,11 +34,11 @@ #include <linux/firmware.h> #include <linux/freezer.h> #include <linux/scatterlist.h> +#include <soc/qcom/subsystem_restart.h> #include <soc/qcom/scm.h> #include <mach/board.h> #include <mach/msm_bus.h> #include <mach/msm_bus_board.h> -#include <mach/subsystem_restart.h> #include <mach/socinfo.h> #include <mach/qseecomi.h> #include <asm/cacheflush.h> diff --git a/drivers/net/wireless/cnss/cnss.c b/drivers/net/wireless/cnss/cnss.c index 825a4fa82aca..eb30cdd634f8 100644 --- a/drivers/net/wireless/cnss/cnss.c +++ b/drivers/net/wireless/cnss/cnss.c @@ -25,10 +25,10 @@ #include <linux/pm_wakeup.h> #include <linux/sched.h> #include <linux/pm_qos.h> +#include <soc/qcom/subsystem_restart.h> +#include <soc/qcom/ramdump.h> #include <mach/gpiomux.h> #include <mach/msm_pcie.h> -#include <mach/subsystem_restart.h> -#include <mach/ramdump.h> #include <net/cnss.h> #define subsys_to_drv(d) container_of(d, struct cnss_data, subsys_desc) diff --git a/drivers/net/wireless/wcnss/wcnss_wlan.c b/drivers/net/wireless/wcnss/wcnss_wlan.c index 71a1e61a9bc4..919b0dddede6 100644 --- a/drivers/net/wireless/wcnss/wcnss_wlan.c +++ b/drivers/net/wireless/wcnss/wcnss_wlan.c @@ -35,11 +35,11 @@ #include <linux/rwsem.h> #include <linux/mfd/pm8xxx/misc.h> #include <linux/qpnp/qpnp-adc.h> +#include <soc/qcom/subsystem_restart.h> +#include <soc/qcom/subsystem_notif.h> #include <mach/msm_smd.h> #include <mach/msm_iomap.h> -#include <mach/subsystem_restart.h> -#include <mach/subsystem_notif.h> #ifdef CONFIG_WCNSS_MEM_PRE_ALLOC #include "wcnss_prealloc.h" diff --git a/drivers/slimbus/slim-msm.h b/drivers/slimbus/slim-msm.h index 3ea97e33b348..c8dbb0c6b50e 100644 --- a/drivers/slimbus/slim-msm.h +++ b/drivers/slimbus/slim-msm.h @@ -16,7 +16,7 @@ #include <linux/irq.h> #include <linux/kthread.h> #include <soc/qcom/msm_qmi_interface.h> -#include <mach/subsystem_notif.h> +#include <soc/qcom/subsystem_notif.h> /* Per spec.max 40 bytes per received message */ #define SLIM_MSGQ_BUF_LEN 40 diff --git a/drivers/soc/qcom/ipc_router_hsic_xprt.c b/drivers/soc/qcom/ipc_router_hsic_xprt.c index 8d2c8ab7d55f..7f07f1970a1d 100644 --- a/drivers/soc/qcom/ipc_router_hsic_xprt.c +++ b/drivers/soc/qcom/ipc_router_hsic_xprt.c @@ -23,9 +23,9 @@ #include <linux/skbuff.h> #include <linux/delay.h> #include <linux/sched.h> +#include <soc/qcom/subsystem_restart.h> #include <mach/ipc_bridge.h> -#include <mach/subsystem_restart.h> static int msm_ipc_router_hsic_xprt_debug_mask; module_param_named(debug_mask, msm_ipc_router_hsic_xprt_debug_mask, diff --git a/drivers/soc/qcom/ipc_router_smd_xprt.c b/drivers/soc/qcom/ipc_router_smd_xprt.c index 39043452f639..1cbd49bd5a41 100644 --- a/drivers/soc/qcom/ipc_router_smd_xprt.c +++ b/drivers/soc/qcom/ipc_router_smd_xprt.c @@ -23,9 +23,9 @@ #include <linux/skbuff.h> #include <linux/delay.h> #include <linux/sched.h> +#include <soc/qcom/subsystem_restart.h> #include <mach/msm_smd.h> -#include <mach/subsystem_restart.h> #include <mach/msm_smsm.h> static int msm_ipc_router_smd_xprt_debug_mask; diff --git a/drivers/soc/qcom/qdsp6v2/adsp-loader.c b/drivers/soc/qcom/qdsp6v2/adsp-loader.c index d2a463194353..1762508cdb74 100644 --- a/drivers/soc/qcom/qdsp6v2/adsp-loader.c +++ b/drivers/soc/qcom/qdsp6v2/adsp-loader.c @@ -17,10 +17,10 @@ #include <linux/err.h> #include <linux/delay.h> #include <linux/platform_device.h> -#include <mach/subsystem_restart.h> #include <linux/qdsp6v2/apr.h> #include <linux/of_device.h> #include <linux/sysfs.h> +#include <soc/qcom/subsystem_restart.h> #define Q6_PIL_GET_DELAY_MS 100 #define BOOT_CMD 1 diff --git a/drivers/soc/qcom/qdsp6v2/apr.c b/drivers/soc/qcom/qdsp6v2/apr.c index c3dd3d367099..d7d9448b0c4d 100644 --- a/drivers/soc/qcom/qdsp6v2/apr.c +++ b/drivers/soc/qcom/qdsp6v2/apr.c @@ -26,14 +26,13 @@ #include <linux/sysfs.h> #include <linux/device.h> #include <linux/slab.h> +#include <soc/qcom/subsystem_restart.h> +#include <soc/qcom/subsystem_notif.h> #include <sound/apr_audio-v2.h> -#include <mach/subsystem_restart.h> #include <mach/msm_smd.h> #include <linux/qdsp6v2/apr.h> #include <linux/qdsp6v2/apr_tal.h> #include <linux/qdsp6v2/dsp_debug.h> -#include <mach/subsystem_notif.h> -#include <mach/subsystem_restart.h> static struct apr_q6 q6; static struct apr_client client[APR_DEST_MAX][APR_CLIENT_MAX]; diff --git a/drivers/soc/qcom/qdsp6v2/msm_audio_ion.c b/drivers/soc/qcom/qdsp6v2/msm_audio_ion.c index c63cc62c0e24..c513b150d4d6 100644 --- a/drivers/soc/qcom/qdsp6v2/msm_audio_ion.c +++ b/drivers/soc/qcom/qdsp6v2/msm_audio_ion.c @@ -17,10 +17,10 @@ #include <linux/err.h> #include <linux/delay.h> #include <linux/platform_device.h> -#include <mach/subsystem_restart.h> #include <linux/qdsp6v2/apr.h> #include <linux/of_device.h> #include <linux/msm_audio_ion.h> +#include <soc/qcom/subsystem_restart.h> #include <linux/iommu.h> #include <linux/msm_iommu_domains.h> diff --git a/drivers/soc/qcom/smem.c b/drivers/soc/qcom/smem.c index 9952a4501064..9e59252bd5fa 100644 --- a/drivers/soc/qcom/smem.c +++ b/drivers/soc/qcom/smem.c @@ -23,11 +23,11 @@ #include <linux/printk.h> #include <linux/slab.h> #include <linux/stat.h> +#include <soc/qcom/subsystem_notif.h> +#include <soc/qcom/ramdump.h> #include <soc/qcom/smem.h> -#include <mach/ramdump.h> -#include <mach/subsystem_notif.h> #include "smem_private.h" diff --git a/drivers/soc/qcom/smem_private.h b/drivers/soc/qcom/smem_private.h index 02e2f0e77c13..7aeca5eed8d2 100644 --- a/drivers/soc/qcom/smem_private.h +++ b/drivers/soc/qcom/smem_private.h @@ -14,8 +14,8 @@ #define _ARCH_ARM_MACH_MSM_SMEM_PRIVATE_H_ #include <linux/remote_spinlock.h> +#include <soc/qcom/ramdump.h> -#include <mach/ramdump.h> #define SMD_HEAP_SIZE 512 diff --git a/drivers/tty/n_smux.c b/drivers/tty/n_smux.c index 6ac93d4c669a..7365871d957e 100644 --- a/drivers/tty/n_smux.c +++ b/drivers/tty/n_smux.c @@ -26,8 +26,8 @@ #include <linux/platform_device.h> #include <linux/delay.h> #include <linux/ipc_logging.h> -#include <mach/subsystem_notif.h> -#include <mach/subsystem_restart.h> +#include <soc/qcom/subsystem_restart.h> +#include <soc/qcom/subsystem_notif.h> #include <mach/msm_serial_hs.h> #include "smux_private.h" #include "smux_loopback.h" diff --git a/drivers/tty/serial/msm_smd_tty.c b/drivers/tty/serial/msm_smd_tty.c index a7663e683cea..243297976ce3 100644 --- a/drivers/tty/serial/msm_smd_tty.c +++ b/drivers/tty/serial/msm_smd_tty.c @@ -27,6 +27,7 @@ #include <linux/slab.h> #include <linux/ipc_logging.h> #include <linux/of.h> +#include <soc/qcom/subsystem_restart.h> #include <linux/tty.h> #include <linux/tty_driver.h> @@ -34,7 +35,6 @@ #include <mach/msm_smd.h> #include <mach/msm_smsm.h> -#include <mach/subsystem_restart.h> #define MODULE_NAME "msm_smdtty" #define MAX_SMD_TTYS 37 diff --git a/drivers/tty/smux_test.c b/drivers/tty/smux_test.c index 130b65e806b8..19ac182a9f31 100644 --- a/drivers/tty/smux_test.c +++ b/drivers/tty/smux_test.c @@ -22,7 +22,7 @@ #include <linux/termios.h> #include <linux/sched.h> #include <linux/smux.h> -#include <mach/subsystem_restart.h> +#include <soc/qcom/subsystem_restart.h> #include "smux_private.h" #define DEBUG_BUFMAX 4096 diff --git a/include/linux/qdsp6v2/apr.h b/include/linux/qdsp6v2/apr.h index 7f7707f0490b..e16cc338b58e 100644 --- a/include/linux/qdsp6v2/apr.h +++ b/include/linux/qdsp6v2/apr.h @@ -14,7 +14,7 @@ #define __APR_H_ #include <linux/mutex.h> -#include <mach/subsystem_notif.h> +#include <soc/qcom/subsystem_notif.h> enum apr_subsys_state { APR_SUBSYS_DOWN, diff --git a/arch/arm/mach-msm/include/mach/ramdump.h b/include/soc/qcom/ramdump.h index 7cd59dd89042..7cd59dd89042 100644 --- a/arch/arm/mach-msm/include/mach/ramdump.h +++ b/include/soc/qcom/ramdump.h diff --git a/arch/arm/mach-msm/include/mach/subsystem_notif.h b/include/soc/qcom/subsystem_notif.h index 61be8f4268d6..61be8f4268d6 100644 --- a/arch/arm/mach-msm/include/mach/subsystem_notif.h +++ b/include/soc/qcom/subsystem_notif.h diff --git a/include/soc/qcom/subsystem_restart.h b/include/soc/qcom/subsystem_restart.h new file mode 100644 index 000000000000..8f2aeceeb365 --- /dev/null +++ b/include/soc/qcom/subsystem_restart.h @@ -0,0 +1,133 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only 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. + * + */ + +#ifndef __SUBSYS_RESTART_H +#define __SUBSYS_RESTART_H + +#include <linux/spinlock.h> +#include <linux/interrupt.h> + +#define SUBSYS_NAME_MAX_LENGTH 40 + +struct subsys_device; + +enum { + RESET_SOC = 0, + RESET_SUBSYS_COUPLED, + RESET_LEVEL_MAX +}; + +struct device; +struct module; + +/** + * struct subsys_desc - subsystem descriptor + * @name: name of subsystem + * @depends_on: subsystem this subsystem depends on to operate + * @dev: parent device + * @owner: module the descriptor belongs to + * @shutdown: Stop a subsystem + * @powerup: Start a subsystem + * @crash_shutdown: Shutdown a subsystem when the system crashes (can't sleep) + * @ramdump: Collect a ramdump of the subsystem + * @is_not_loadable: Indicate if subsystem firmware is not loadable via pil + * framework + */ +struct subsys_desc { + const char *name; + const char *depends_on; + struct device *dev; + struct module *owner; + + int (*shutdown)(const struct subsys_desc *desc, bool force_stop); + int (*powerup)(const struct subsys_desc *desc); + void (*crash_shutdown)(const struct subsys_desc *desc); + int (*ramdump)(int, const struct subsys_desc *desc); + irqreturn_t (*err_fatal_handler) (int irq, void *dev_id); + irqreturn_t (*stop_ack_handler) (int irq, void *dev_id); + irqreturn_t (*wdog_bite_handler) (int irq, void *dev_id); + int is_not_loadable; + unsigned int err_fatal_irq; + unsigned int err_ready_irq; + unsigned int stop_ack_irq; + unsigned int wdog_bite_irq; + int force_stop_gpio; +}; + +#if defined(CONFIG_MSM_SUBSYSTEM_RESTART) + +extern int subsys_get_restart_level(struct subsys_device *dev); +extern int subsystem_restart_dev(struct subsys_device *dev); +extern int subsystem_restart(const char *name); +extern int subsystem_crashed(const char *name); + +extern void *subsystem_get(const char *name); +extern void subsystem_put(void *subsystem); + +extern struct subsys_device *subsys_register(struct subsys_desc *desc); +extern void subsys_unregister(struct subsys_device *dev); + +extern void subsys_default_online(struct subsys_device *dev); +extern void subsys_set_crash_status(struct subsys_device *dev, bool crashed); +extern bool subsys_get_crash_status(struct subsys_device *dev); +void notify_proxy_vote(struct device *device); +void notify_proxy_unvote(struct device *device); +#else + +static inline int subsys_get_restart_level(struct subsys_device *dev) +{ + return 0; +} + +static inline int subsystem_restart_dev(struct subsys_device *dev) +{ + return 0; +} + +static inline int subsystem_restart(const char *name) +{ + return 0; +} + +static inline int subsystem_crashed(const char *name) +{ + return 0; +} + +static inline void *subsystem_get(const char *name) +{ + return NULL; +} + +static inline void subsystem_put(void *subsystem) { } + +static inline +struct subsys_device *subsys_register(struct subsys_desc *desc) +{ + return NULL; +} + +static inline void subsys_unregister(struct subsys_device *dev) { } + +static inline void subsys_default_online(struct subsys_device *dev) { } +static inline +void subsys_set_crash_status(struct subsys_device *dev, bool crashed) { } +static inline bool subsys_get_crash_status(struct subsys_device *dev) +{ + return false; +} +void notify_proxy_vote(struct device *device) { } +void notify_proxy_unvote(struct device *device) { } +#endif /* CONFIG_MSM_SUBSYSTEM_RESTART */ + +#endif diff --git a/arch/arm/mach-msm/include/mach/sysmon.h b/include/soc/qcom/sysmon.h index 3f122cd2f8c0..ad399c9cdc61 100644 --- a/arch/arm/mach-msm/include/mach/sysmon.h +++ b/include/soc/qcom/sysmon.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011-2012, The Linux Foundation. All rights reserved. + * Copyright (c) 2011-2013, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -16,7 +16,7 @@ #define __MSM_SYSMON_H #include <mach/msm_smd.h> -#include <mach/subsystem_notif.h> +#include <soc/qcom/subsystem_notif.h> /** * enum subsys_id - Destination subsystems for events. diff --git a/net/ipc_router/ipc_router_core.c b/net/ipc_router/ipc_router_core.c index 414550353ecd..27911639eb80 100644 --- a/net/ipc_router/ipc_router_core.c +++ b/net/ipc_router/ipc_router_core.c @@ -32,6 +32,7 @@ #include <linux/uaccess.h> #include <linux/ipc_router.h> #include <linux/ipc_router_xprt.h> +#include <soc/qcom/subsystem_notif.h> #include <asm/byteorder.h> diff --git a/sound/soc/codecs/msm8x10-wcd.c b/sound/soc/codecs/msm8x10-wcd.c index a1a457d7b419..2ea8009fc07c 100644 --- a/sound/soc/codecs/msm8x10-wcd.c +++ b/sound/soc/codecs/msm8x10-wcd.c @@ -28,13 +28,13 @@ #include <linux/of_gpio.h> #include <linux/regulator/consumer.h> #include <linux/mfd/wcd9xxx/pdata.h> +#include <soc/qcom/subsystem_notif.h> #include <sound/pcm.h> #include <sound/pcm_params.h> #include <sound/soc.h> #include <sound/soc-dapm.h> #include <sound/tlv.h> #include <linux/qdsp6v2/apr.h> -#include <mach/subsystem_notif.h> #include "msm8x10-wcd.h" #include "wcd9xxx-resmgr.h" #include "msm8x10_wcd_registers.h" diff --git a/sound/soc/msm/apq8074.c b/sound/soc/msm/apq8074.c index 0ccfd7502128..4f9eb8bf9846 100644 --- a/sound/soc/msm/apq8074.c +++ b/sound/soc/msm/apq8074.c @@ -20,6 +20,7 @@ #include <linux/qpnp/clkdiv.h> #include <linux/regulator/consumer.h> #include <linux/io.h> +#include <soc/qcom/subsystem_notif.h> #include <sound/core.h> #include <sound/soc.h> #include <sound/soc-dapm.h> @@ -27,7 +28,6 @@ #include <sound/jack.h> #include <sound/q6afe-v2.h> #include <sound/pcm_params.h> -#include <mach/subsystem_notif.h> #include <mach/socinfo.h> #include "qdsp6v2/msm-pcm-routing-v2.h" diff --git a/sound/soc/msm/apq8084.c b/sound/soc/msm/apq8084.c index b9ebfb255717..2090bd2f7b82 100644 --- a/sound/soc/msm/apq8084.c +++ b/sound/soc/msm/apq8084.c @@ -22,6 +22,7 @@ #include <linux/io.h> #include <linux/pm_runtime.h> #include <linux/slimbus/slimbus.h> +#include <soc/qcom/subsystem_notif.h> #include <sound/core.h> #include <sound/soc.h> #include <sound/soc-dapm.h> @@ -29,7 +30,6 @@ #include <sound/jack.h> #include <sound/q6afe-v2.h> #include <sound/pcm_params.h> -#include <mach/subsystem_notif.h> #include "qdsp6v2/msm-pcm-routing-v2.h" #include "qdsp6v2/q6core.h" #include "../codecs/wcd9xxx-common.h" diff --git a/sound/soc/msm/mpq8092.c b/sound/soc/msm/mpq8092.c index ab93a877d781..912caf57622e 100644 --- a/sound/soc/msm/mpq8092.c +++ b/sound/soc/msm/mpq8092.c @@ -19,6 +19,7 @@ #include <linux/qpnp/clkdiv.h> #include <linux/regulator/consumer.h> #include <linux/io.h> +#include <soc/qcom/subsystem_notif.h> #include <sound/core.h> #include <sound/soc.h> #include <sound/soc-dapm.h> @@ -27,7 +28,6 @@ #include <sound/q6afe-v2.h> #include <sound/pcm_params.h> #include <asm/mach-types.h> -#include <mach/subsystem_notif.h> #include "qdsp6v2/msm-pcm-routing-v2.h" #include "qdsp6v2/q6core.h" #include "../codecs/wcd9xxx-common.h" diff --git a/sound/soc/msm/msm8226.c b/sound/soc/msm/msm8226.c index 44d40bb209a3..f081bee2f153 100644 --- a/sound/soc/msm/msm8226.c +++ b/sound/soc/msm/msm8226.c @@ -18,6 +18,7 @@ #include <linux/slab.h> #include <linux/mfd/pm8xxx/pm8921.h> #include <linux/io.h> +#include <soc/qcom/subsystem_notif.h> #include <sound/core.h> #include <sound/soc.h> #include <sound/soc-dapm.h> @@ -25,7 +26,6 @@ #include <sound/jack.h> #include <sound/q6afe-v2.h> #include <mach/socinfo.h> -#include <mach/subsystem_notif.h> #include <qdsp6v2/msm-pcm-routing-v2.h> #include "qdsp6v2/q6core.h" #include "../codecs/wcd9xxx-common.h" diff --git a/sound/soc/msm/msm8974.c b/sound/soc/msm/msm8974.c index 79c15e87d08c..d3ce2743cc59 100644 --- a/sound/soc/msm/msm8974.c +++ b/sound/soc/msm/msm8974.c @@ -20,6 +20,7 @@ #include <linux/qpnp/clkdiv.h> #include <linux/regulator/consumer.h> #include <linux/io.h> +#include <soc/qcom/subsystem_notif.h> #include <sound/core.h> #include <sound/soc.h> #include <sound/soc-dapm.h> @@ -27,7 +28,6 @@ #include <sound/jack.h> #include <sound/q6afe-v2.h> #include <sound/pcm_params.h> -#include <mach/subsystem_notif.h> #include "qdsp6v2/msm-pcm-routing-v2.h" #include "qdsp6v2/q6core.h" #include "../codecs/wcd9xxx-common.h" diff --git a/sound/soc/msm/msmsamarium.c b/sound/soc/msm/msmsamarium.c index 72ca91b0d6d4..d8e87f878d68 100644 --- a/sound/soc/msm/msmsamarium.c +++ b/sound/soc/msm/msmsamarium.c @@ -20,6 +20,7 @@ #include <linux/qpnp/clkdiv.h> #include <linux/regulator/consumer.h> #include <linux/io.h> +#include <soc/qcom/subsystem_notif.h> #include <sound/core.h> #include <sound/soc.h> #include <sound/soc-dapm.h> @@ -28,7 +29,6 @@ #include <sound/q6afe-v2.h> #include <sound/pcm_params.h> #include <mach/socinfo.h> -#include <mach/subsystem_notif.h> #include "qdsp6v2/msm-pcm-routing-v2.h" #include "qdsp6v2/q6core.h" #include "../codecs/wcd9xxx-common.h" diff --git a/sound/soc/msm/qdsp6v2/audio_ocmem.c b/sound/soc/msm/qdsp6v2/audio_ocmem.c index 56c454e27380..525cf8a3aa9b 100644 --- a/sound/soc/msm/qdsp6v2/audio_ocmem.c +++ b/sound/soc/msm/qdsp6v2/audio_ocmem.c @@ -23,13 +23,13 @@ #include <linux/io.h> #include <linux/of_device.h> #include <linux/dma-mapping.h> +#include <soc/qcom/subsystem_restart.h> +#include <soc/qcom/subsystem_notif.h> +#include <soc/qcom/ramdump.h> #include <mach/msm_bus.h> #include <mach/msm_bus_board.h> #include <mach/ocmem.h> -#include <mach/subsystem_notif.h> -#include <mach/subsystem_restart.h> #include <mach/msm_memtypes.h> -#include <mach/ramdump.h> #include "q6core.h" #include "audio_ocmem.h" |