aboutsummaryrefslogtreecommitdiffstats
path: root/package/kernel/lantiq/ltq-atm/src/ifxmips_atm_ar9.c
diff options
context:
space:
mode:
authorMartin Schiller <ms@dev.tdt.de>2018-12-05 08:51:13 +0100
committerHauke Mehrtens <hauke@hauke-m.de>2019-03-10 16:49:31 +0100
commitff3cfe084885662843a6cc95a547eb9f8ef48fa5 (patch)
treeba59b42001269fb03490e5d5b03cbd706b66bbdd /package/kernel/lantiq/ltq-atm/src/ifxmips_atm_ar9.c
parenteae6cac6a30b95bef04d033ed8a303b7e35a078b (diff)
downloadupstream-ff3cfe084885662843a6cc95a547eb9f8ef48fa5.tar.gz
upstream-ff3cfe084885662843a6cc95a547eb9f8ef48fa5.tar.bz2
upstream-ff3cfe084885662843a6cc95a547eb9f8ef48fa5.zip
ltq-atm/ltq-ptm: re-enable/fix reset_ppe() functionality for VR9
This patch re-enables the reset_ppe() functionality for VR9 targets by using the new lantiq rcu subsystem. The reset sequence in the reset_ppe() function was taken from the ppa datapath driver of lantiq UGW 7.4.1. Additionally it adds the required reset definitions to the vr9 dtsi file. It also prepares the reset_ppe() function calls for the other lantiq targets. This feature is needed to be able to switch between ltq-atm/ltq-ptm driver in ATM/PTM Auto-Mode at runtime. Signed-off-by: Martin Schiller <ms@dev.tdt.de>
Diffstat (limited to 'package/kernel/lantiq/ltq-atm/src/ifxmips_atm_ar9.c')
-rw-r--r--package/kernel/lantiq/ltq-atm/src/ifxmips_atm_ar9.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/package/kernel/lantiq/ltq-atm/src/ifxmips_atm_ar9.c b/package/kernel/lantiq/ltq-atm/src/ifxmips_atm_ar9.c
index b68848b22d..2100aea81e 100644
--- a/package/kernel/lantiq/ltq-atm/src/ifxmips_atm_ar9.c
+++ b/package/kernel/lantiq/ltq-atm/src/ifxmips_atm_ar9.c
@@ -40,6 +40,7 @@
#include <linux/proc_fs.h>
#include <linux/init.h>
#include <linux/ioctl.h>
+#include <linux/platform_device.h>
#include <asm/delay.h>
/*
@@ -83,7 +84,7 @@
*/
static inline void init_pmu(void);
static inline void uninit_pmu(void);
-static inline void reset_ppe(void);
+static inline void reset_ppe(struct platform_device *pdev);
static inline void init_ema(void);
static inline void init_mailbox(void);
static inline void clear_share_buffer(void);
@@ -125,7 +126,7 @@ static inline void uninit_pmu(void)
{
}
-static inline void reset_ppe(void)
+static inline void reset_ppe(struct platform_device *pdev)
{
#ifdef MODULE
// reset PPE
@@ -193,10 +194,10 @@ void ar9_fw_ver(unsigned int *major, unsigned int *minor)
*minor = FW_VER_ID->minor;
}
-void ar9_init(void)
+void ar9_init(struct platform_device *pdev)
{
init_pmu();
- reset_ppe();
+ reset_ppe(pdev);
init_ema();
init_mailbox();
clear_share_buffer();