From 2d6c7c2526b6cc522975e27c26cd1d42ebb7bcd1 Mon Sep 17 00:00:00 2001 From: Martin Schiller Date: Thu, 29 Jun 2017 06:54:00 +0200 Subject: [PATCH] lantiq: ltq-atm/ltq-ptm: fix showtime handling on driver load This is needed to be able to load the ltq-atm/ltq-ptm driver from a notify script during synchronization, because the line can reach showtime state before the driver is fully loaded. Signed-off-by: Martin Schiller --- package/kernel/lantiq/ltq-atm/src/ltq_atm.c | 10 +++------- package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_adsl.c | 3 +++ package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_vdsl.c | 5 ++++- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/package/kernel/lantiq/ltq-atm/src/ltq_atm.c b/package/kernel/lantiq/ltq-atm/src/ltq_atm.c index 1208dd87dd..a08fa22ce2 100644 --- a/package/kernel/lantiq/ltq-atm/src/ltq_atm.c +++ b/package/kernel/lantiq/ltq-atm/src/ltq_atm.c @@ -1866,15 +1866,11 @@ static int ltq_atm_probe(struct platform_device *pdev) port_cell.port_num = ATM_PORT_NUMBER; ifx_mei_atm_showtime_check(&g_showtime, &port_cell, &g_xdata_addr); if ( g_showtime ) { - for ( i = 0; i < ATM_PORT_NUMBER; i++ ) - if ( port_cell.tx_link_rate[i] != 0 ) - break; - for ( j = 0; j < ATM_PORT_NUMBER; j++ ) - g_atm_priv_data.port[j].tx_max_cell_rate = - port_cell.tx_link_rate[j] != 0 ? port_cell.tx_link_rate[j] : port_cell.tx_link_rate[i]; + atm_showtime_enter(&port_cell, &g_xdata_addr); + } else { + qsb_global_set(); } - qsb_global_set(); validate_oam_htu_entry(); ifx_mei_atm_showtime_enter = atm_showtime_enter; diff --git a/package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_adsl.c b/package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_adsl.c index 00a967b34b..4ce2e90ccd 100644 --- a/package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_adsl.c +++ b/package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_adsl.c @@ -1518,6 +1518,9 @@ static int ifx_ptm_init(void) port_cell.port_num = 1; ifx_mei_atm_showtime_check(&g_showtime, &port_cell, &xdata_addr); + if ( g_showtime ) { + ptm_showtime_enter(&port_cell, &g_xdata_addr); + } ifx_mei_atm_showtime_enter = ptm_showtime_enter; ifx_mei_atm_showtime_exit = ptm_showtime_exit; diff --git a/package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_vdsl.c b/package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_vdsl.c index 0a357f1742..22f1e23c4a 100644 --- a/package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_vdsl.c +++ b/package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_vdsl.c @@ -1022,7 +1022,10 @@ static int ifx_ptm_init(void) enable_irq(PPE_MAILBOX_IGU1_INT); ifx_mei_atm_showtime_check(&g_showtime, &port_cell, &g_xdata_addr); - + if ( g_showtime ) { + ptm_showtime_enter(&port_cell, &g_xdata_addr); + } + ifx_mei_atm_showtime_enter = ptm_showtime_enter; ifx_mei_atm_showtime_exit = ptm_showtime_exit;