Esempio n. 1
0
int mv_eth_tool_write (struct file *file, const char *buffer,
                      unsigned long count, void *data) {

	sscanf(buffer,"%x",&command);

	switch (command) {
		case COM_RX_COAL:
		case COM_TX_COAL:
        case COM_TX_EN:
        case COM_EJP_MODE:
		case COM_TX_NOQUEUE:
			run_port_com(buffer);
			break;
		case COM_TXDONE_Q:
        case COM_SKB_REUSE:
			run_eth_com(buffer);
			break;

		case COM_TOS_MAP:
            run_port_queue_cmd(buffer);
			break;

#ifdef CONFIG_MV_ETH_NFP
		case COM_IP_RULE_SET:
			run_ip_rule_set_com(buffer);
			break;
		case COM_IP_RULE_DEL:
			run_ip_rule_del_com(buffer);
			break;
		case COM_FP_DISABLE:
			fp_mgr_disable();
			break;
		case COM_FP_ENABLE:
			fp_mgr_enable();
			break;
		case COM_FP_STATUS:
			fp_mgr_status();
			break;
		case COM_FP_PRINT:
			run_fp_db_print_com(buffer);
			break;
#endif /* CONFIG_MV_ETH_NFP */
#ifdef CONFIG_PM
		/* liron, for debug only */
		case COM_SUSPEND:
			state.event = 0;
			mv_eth_suspend(NULL, state);
			break;
		case COM_RESUME:
			mv_eth_resume(NULL);
			break;
#endif /* CONFIG_PM */
		default:
			run_com_general(buffer);
			break;
	}
	return count;
}
Esempio n. 2
0
int run_eth_com(const char *buffer) {

    int scan_count;
    scan_count = sscanf(buffer, ETH_CMD_STRING, ETH_SCANF_LIST);
    if( scan_count != ETH_LIST_LEN) {
	printk("eth command bad format %x != %x\n", scan_count, ETH_LIST_LEN );
	return 1;
    }
    switch(command) {

        case COM_TXDONE_Q:
            mv_eth_tx_done_quota = value;
            break;

#ifdef CONFIG_MV_ETH_SKB_REUSE
        case COM_SKB_REUSE:
            mv_eth_skb_reuse_enable = value;
            break;
#endif /* CONFIG_MV_ETH_SKB_REUSE */

#ifdef CONFIG_NET_SKB_RECYCLE
        case COM_SKB_RECYCLE:
            mv_eth_skb_recycle_enable = value;
	    break;
#endif /* CONFIG_NET_SKB_RECYCLE */

#ifdef CONFIG_MV_ETH_NFP
        case COM_NFP:
	    if (value)
	    {
		printk("Enabling NFP\n");
		fp_mgr_enable();
	    }
	    else
	    {
		printk("Disabling NFP\n");
		fp_mgr_disable();
	    }
            break;
#endif /* CONFIG_MV_ETH_NFP */

	default:
            printk(" Unknown ETH command \n");
    }
    return 0;
}