diff options
author | Martin Schiller <ms@dev.tdt.de> | 2018-12-05 08:51:13 +0100 |
---|---|---|
committer | Hauke Mehrtens <hauke@hauke-m.de> | 2019-03-10 16:49:31 +0100 |
commit | ff3cfe084885662843a6cc95a547eb9f8ef48fa5 (patch) | |
tree | ba59b42001269fb03490e5d5b03cbd706b66bbdd /package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_ar9.c | |
parent | eae6cac6a30b95bef04d033ed8a303b7e35a078b (diff) | |
download | upstream-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-ptm/src/ifxmips_ptm_ar9.c')
-rw-r--r-- | package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_ar9.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_ar9.c b/package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_ar9.c index 777d5cfc9b..2f108286e2 100644 --- a/package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_ar9.c +++ b/package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_ar9.c @@ -40,6 +40,8 @@ #include <linux/proc_fs.h> #include <linux/init.h> #include <linux/ioctl.h> +#include <linux/platform_device.h> +#include <linux/reset.h> #include <asm/delay.h> /* @@ -80,7 +82,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 init_atm_tc(void); @@ -130,7 +132,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 @@ -283,11 +285,11 @@ void ifx_ptm_get_fw_ver(unsigned int *major, unsigned int *minor) *minor = FW_VER_ID->minor; } -void ifx_ptm_init_chip(void) +void ifx_ptm_init_chip(struct platform_device *pdev) { init_pmu(); - reset_ppe(); + reset_ppe(pdev); init_ema(); |