Loading drivers/net/wireless/wcnss/wcnss_vreg.c +1 −3 Original line number Diff line number Diff line /* Copyright (c) 2011-2014, The Linux Foundation. All rights reserved. /* Copyright (c) 2011-2015, 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 Loading Loading @@ -34,7 +34,6 @@ static int auto_detect; static int is_power_on; #define RIVA_PMU_OFFSET 0x28 #define PRONTO_PMU_OFFSET 0x1004 #define RIVA_SPARE_OFFSET 0x0b4 #define PRONTO_SPARE_OFFSET 0x1088 Loading @@ -52,7 +51,6 @@ static int is_power_on; #define WCNSS_PMU_CFG_IRIS_XO_CFG BIT(3) #define WCNSS_PMU_CFG_IRIS_XO_EN BIT(4) #define WCNSS_PMU_CFG_GC_BUS_MUX_SEL_TOP BIT(5) #define WCNSS_PMU_CFG_IRIS_XO_CFG_STS BIT(6) /* 1: in progress, 0: done */ #define WCNSS_PMU_CFG_IRIS_RESET BIT(7) Loading drivers/net/wireless/wcnss/wcnss_wlan.c +16 −1 Original line number Diff line number Diff line /* Copyright (c) 2011-2014, The Linux Foundation. All rights reserved. /* Copyright (c) 2011-2015, 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 Loading Loading @@ -1083,6 +1083,19 @@ static void wcnss_log_iris_regs(void) } } void wcnss_get_mux_control(void) { void __iomem *pmu_conf_reg; struct wcnss_wlan_config *cfg = wcnss_get_wlan_config(); u32 reg = 0; pmu_conf_reg = cfg->msm_wcnss_base + PRONTO_PMU_OFFSET; writel_relaxed(0, pmu_conf_reg); reg = readl_relaxed(pmu_conf_reg); reg |= WCNSS_PMU_CFG_GC_BUS_MUX_SEL_TOP; writel_relaxed(reg, pmu_conf_reg); } void wcnss_log_debug_regs_on_bite(void) { struct platform_device *pdev = wcnss_get_platform_device(); Loading Loading @@ -1112,6 +1125,7 @@ void wcnss_log_debug_regs_on_bite(void) if (clk_rate) { wcnss_pronto_log_debug_regs(); wcnss_get_mux_control(); wcnss_log_iris_regs(); } else { pr_err("clock frequency is zero, cannot access PMU or other registers\n"); Loading @@ -1128,6 +1142,7 @@ void wcnss_reset_intr(void) { if (wcnss_hardware_type() == WCNSS_PRONTO_HW) { wcnss_pronto_log_debug_regs(); wcnss_get_mux_control(); wcnss_log_iris_regs(); wmb(); __raw_writel(1 << 16, penv->fiq_reg); Loading include/linux/wcnss_wlan.h +3 −1 Original line number Diff line number Diff line /* Copyright (c) 2011-2014, The Linux Foundation. All rights reserved. /* Copyright (c) 2011-2015, 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 Loading Loading @@ -66,6 +66,8 @@ enum { #define WLAN_RF_DATA0_SHIFT 0 #define WLAN_RF_DATA1_SHIFT 1 #define WLAN_RF_DATA2_SHIFT 2 #define PRONTO_PMU_OFFSET 0x1004 #define WCNSS_PMU_CFG_GC_BUS_MUX_SEL_TOP BIT(5) struct device *wcnss_wlan_get_device(void); void wcnss_get_monotonic_boottime(struct timespec *ts); Loading Loading
drivers/net/wireless/wcnss/wcnss_vreg.c +1 −3 Original line number Diff line number Diff line /* Copyright (c) 2011-2014, The Linux Foundation. All rights reserved. /* Copyright (c) 2011-2015, 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 Loading Loading @@ -34,7 +34,6 @@ static int auto_detect; static int is_power_on; #define RIVA_PMU_OFFSET 0x28 #define PRONTO_PMU_OFFSET 0x1004 #define RIVA_SPARE_OFFSET 0x0b4 #define PRONTO_SPARE_OFFSET 0x1088 Loading @@ -52,7 +51,6 @@ static int is_power_on; #define WCNSS_PMU_CFG_IRIS_XO_CFG BIT(3) #define WCNSS_PMU_CFG_IRIS_XO_EN BIT(4) #define WCNSS_PMU_CFG_GC_BUS_MUX_SEL_TOP BIT(5) #define WCNSS_PMU_CFG_IRIS_XO_CFG_STS BIT(6) /* 1: in progress, 0: done */ #define WCNSS_PMU_CFG_IRIS_RESET BIT(7) Loading
drivers/net/wireless/wcnss/wcnss_wlan.c +16 −1 Original line number Diff line number Diff line /* Copyright (c) 2011-2014, The Linux Foundation. All rights reserved. /* Copyright (c) 2011-2015, 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 Loading Loading @@ -1083,6 +1083,19 @@ static void wcnss_log_iris_regs(void) } } void wcnss_get_mux_control(void) { void __iomem *pmu_conf_reg; struct wcnss_wlan_config *cfg = wcnss_get_wlan_config(); u32 reg = 0; pmu_conf_reg = cfg->msm_wcnss_base + PRONTO_PMU_OFFSET; writel_relaxed(0, pmu_conf_reg); reg = readl_relaxed(pmu_conf_reg); reg |= WCNSS_PMU_CFG_GC_BUS_MUX_SEL_TOP; writel_relaxed(reg, pmu_conf_reg); } void wcnss_log_debug_regs_on_bite(void) { struct platform_device *pdev = wcnss_get_platform_device(); Loading Loading @@ -1112,6 +1125,7 @@ void wcnss_log_debug_regs_on_bite(void) if (clk_rate) { wcnss_pronto_log_debug_regs(); wcnss_get_mux_control(); wcnss_log_iris_regs(); } else { pr_err("clock frequency is zero, cannot access PMU or other registers\n"); Loading @@ -1128,6 +1142,7 @@ void wcnss_reset_intr(void) { if (wcnss_hardware_type() == WCNSS_PRONTO_HW) { wcnss_pronto_log_debug_regs(); wcnss_get_mux_control(); wcnss_log_iris_regs(); wmb(); __raw_writel(1 << 16, penv->fiq_reg); Loading
include/linux/wcnss_wlan.h +3 −1 Original line number Diff line number Diff line /* Copyright (c) 2011-2014, The Linux Foundation. All rights reserved. /* Copyright (c) 2011-2015, 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 Loading Loading @@ -66,6 +66,8 @@ enum { #define WLAN_RF_DATA0_SHIFT 0 #define WLAN_RF_DATA1_SHIFT 1 #define WLAN_RF_DATA2_SHIFT 2 #define PRONTO_PMU_OFFSET 0x1004 #define WCNSS_PMU_CFG_GC_BUS_MUX_SEL_TOP BIT(5) struct device *wcnss_wlan_get_device(void); void wcnss_get_monotonic_boottime(struct timespec *ts); Loading