numam-dpdk/drivers/net/ionic/ionic_mac_api.c

64 lines
1008 B
C
Raw Normal View History

/* SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0)
* Copyright(c) 2018-2019 Pensando Systems, Inc. All rights reserved.
*/
2020-03-09 09:09:27 +00:00
#include <stdbool.h>
#include "ionic_mac_api.h"
int32_t
ionic_init_mac(struct ionic_hw *hw)
{
int err = 0;
IONIC_PRINT_CALL();
/*
* Set the mac type
*/
ionic_set_mac_type(hw);
switch (hw->mac.type) {
case IONIC_MAC_CAPRI:
break;
default:
err = -EINVAL;
break;
}
return err;
}
int32_t
ionic_set_mac_type(struct ionic_hw *hw)
{
int err = 0;
IONIC_PRINT_CALL();
if (hw->vendor_id != IONIC_PENSANDO_VENDOR_ID) {
IONIC_PRINT(ERR, "Unsupported vendor id: %" PRIx32 "",
hw->vendor_id);
return -EINVAL;
}
switch (hw->device_id) {
case IONIC_DEV_ID_ETH_PF:
case IONIC_DEV_ID_ETH_VF:
case IONIC_DEV_ID_ETH_MGMT:
hw->mac.type = IONIC_MAC_CAPRI;
break;
default:
err = -EINVAL;
IONIC_PRINT(ERR, "Unsupported device id: %" PRIx32 "",
hw->device_id);
break;
}
IONIC_PRINT(INFO, "Mac: %d (%d)",
hw->mac.type, err);
return err;
}