forked from Ivasoft/openwrt
lantiq: ltq-ptm: set carrier status
Principal purpose is to prevent the error message ifxmips_ptm_vdsl.c:281:ptm_hard_start_xmit: not in showtime which is printed at least once per second to the serial console, if the ptm interface is not in showtime, but a processes already sends packages over that interface. This happens for adsl as well as vdsl over ptm. It's pppd which sends packages over the ptm device before in showtime. As far as I can see, pppd is started unconditionally since netif can not gather the link status of the ptm network interface. Signed-off-by: Mathias Kresin <openwrt@kresin.me> SVN-Revision: 47917
This commit is contained in:
@@ -43,6 +43,7 @@
|
||||
#include <linux/ioctl.h>
|
||||
#include <linux/etherdevice.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/netdevice.h>
|
||||
#include <asm/io.h>
|
||||
|
||||
/*
|
||||
@@ -277,6 +278,10 @@ static int g_showtime = 0;
|
||||
|
||||
static void ptm_setup(struct net_device *dev, int ndev)
|
||||
{
|
||||
#if defined(CONFIG_IFXMIPS_DSL_CPE_MEI) || defined(CONFIG_IFXMIPS_DSL_CPE_MEI_MODULE)
|
||||
netif_carrier_off(dev);
|
||||
#endif
|
||||
|
||||
/* hook network operations */
|
||||
dev->netdev_ops = &g_ptm_netdev_ops;
|
||||
netif_napi_add(dev, &g_ptm_priv_data.itf[ndev].napi, ptm_napi_poll, 25);
|
||||
@@ -1384,9 +1389,13 @@ static INLINE void init_tables(void)
|
||||
|
||||
static int ptm_showtime_enter(struct port_cell_info *port_cell, void *xdata_addr)
|
||||
{
|
||||
int i;
|
||||
|
||||
g_showtime = 1;
|
||||
|
||||
for ( i = 0; i < ARRAY_SIZE(g_net_dev); i++ )
|
||||
netif_carrier_on(g_net_dev[i]);
|
||||
|
||||
printk("enter showtime\n");
|
||||
|
||||
return 0;
|
||||
@@ -1394,9 +1403,14 @@ static int ptm_showtime_enter(struct port_cell_info *port_cell, void *xdata_addr
|
||||
|
||||
static int ptm_showtime_exit(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
if ( !g_showtime )
|
||||
return -1;
|
||||
|
||||
for ( i = 0; i < ARRAY_SIZE(g_net_dev); i++ )
|
||||
netif_carrier_off(g_net_dev[i]);
|
||||
|
||||
g_showtime = 0;
|
||||
|
||||
printk("leave showtime\n");
|
||||
|
||||
Reference in New Issue
Block a user