xref: /f-stack/dpdk/drivers/net/ionic/ionic_mac_api.c (revision 2d9fd380)
1*2d9fd380Sjfb8856606 /* SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0)
2*2d9fd380Sjfb8856606  * Copyright(c) 2018-2019 Pensando Systems, Inc. All rights reserved.
3*2d9fd380Sjfb8856606  */
4*2d9fd380Sjfb8856606 
5*2d9fd380Sjfb8856606 #include <stdbool.h>
6*2d9fd380Sjfb8856606 
7*2d9fd380Sjfb8856606 #include "ionic_mac_api.h"
8*2d9fd380Sjfb8856606 
9*2d9fd380Sjfb8856606 int32_t
ionic_init_mac(struct ionic_hw * hw)10*2d9fd380Sjfb8856606 ionic_init_mac(struct ionic_hw *hw)
11*2d9fd380Sjfb8856606 {
12*2d9fd380Sjfb8856606 	int err = 0;
13*2d9fd380Sjfb8856606 
14*2d9fd380Sjfb8856606 	IONIC_PRINT_CALL();
15*2d9fd380Sjfb8856606 
16*2d9fd380Sjfb8856606 	/*
17*2d9fd380Sjfb8856606 	 * Set the mac type
18*2d9fd380Sjfb8856606 	 */
19*2d9fd380Sjfb8856606 	ionic_set_mac_type(hw);
20*2d9fd380Sjfb8856606 
21*2d9fd380Sjfb8856606 	switch (hw->mac.type) {
22*2d9fd380Sjfb8856606 	case IONIC_MAC_CAPRI:
23*2d9fd380Sjfb8856606 		break;
24*2d9fd380Sjfb8856606 	default:
25*2d9fd380Sjfb8856606 		err = -EINVAL;
26*2d9fd380Sjfb8856606 		break;
27*2d9fd380Sjfb8856606 	}
28*2d9fd380Sjfb8856606 
29*2d9fd380Sjfb8856606 	return err;
30*2d9fd380Sjfb8856606 }
31*2d9fd380Sjfb8856606 
32*2d9fd380Sjfb8856606 int32_t
ionic_set_mac_type(struct ionic_hw * hw)33*2d9fd380Sjfb8856606 ionic_set_mac_type(struct ionic_hw *hw)
34*2d9fd380Sjfb8856606 {
35*2d9fd380Sjfb8856606 	int err = 0;
36*2d9fd380Sjfb8856606 
37*2d9fd380Sjfb8856606 	IONIC_PRINT_CALL();
38*2d9fd380Sjfb8856606 
39*2d9fd380Sjfb8856606 	if (hw->vendor_id != IONIC_PENSANDO_VENDOR_ID) {
40*2d9fd380Sjfb8856606 		IONIC_PRINT(ERR, "Unsupported vendor id: %" PRIx32 "",
41*2d9fd380Sjfb8856606 			hw->vendor_id);
42*2d9fd380Sjfb8856606 		return -EINVAL;
43*2d9fd380Sjfb8856606 	}
44*2d9fd380Sjfb8856606 
45*2d9fd380Sjfb8856606 	switch (hw->device_id) {
46*2d9fd380Sjfb8856606 	case IONIC_DEV_ID_ETH_PF:
47*2d9fd380Sjfb8856606 	case IONIC_DEV_ID_ETH_VF:
48*2d9fd380Sjfb8856606 	case IONIC_DEV_ID_ETH_MGMT:
49*2d9fd380Sjfb8856606 		hw->mac.type = IONIC_MAC_CAPRI;
50*2d9fd380Sjfb8856606 		break;
51*2d9fd380Sjfb8856606 	default:
52*2d9fd380Sjfb8856606 		err = -EINVAL;
53*2d9fd380Sjfb8856606 		IONIC_PRINT(ERR, "Unsupported device id: %" PRIx32 "",
54*2d9fd380Sjfb8856606 			hw->device_id);
55*2d9fd380Sjfb8856606 		break;
56*2d9fd380Sjfb8856606 	}
57*2d9fd380Sjfb8856606 
58*2d9fd380Sjfb8856606 	IONIC_PRINT(INFO, "Mac: %d (%d)",
59*2d9fd380Sjfb8856606 		hw->mac.type, err);
60*2d9fd380Sjfb8856606 
61*2d9fd380Sjfb8856606 	return err;
62*2d9fd380Sjfb8856606 }
63*2d9fd380Sjfb8856606 
64