1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33#ifndef _QED_MCP_H
34#define _QED_MCP_H
35
36#include <linux/types.h>
37#include <linux/delay.h>
38#include <linux/slab.h>
39#include <linux/spinlock.h>
40#include <linux/qed/qed_fcoe_if.h>
41#include "qed_hsi.h"
42#include "qed_dev_api.h"
43
44struct qed_mcp_link_speed_params {
45 bool autoneg;
46 u32 advertised_speeds;
47 u32 forced_speed;
48};
49
50struct qed_mcp_link_pause_params {
51 bool autoneg;
52 bool forced_rx;
53 bool forced_tx;
54};
55
56enum qed_mcp_eee_mode {
57 QED_MCP_EEE_DISABLED,
58 QED_MCP_EEE_ENABLED,
59 QED_MCP_EEE_UNSUPPORTED
60};
61
62struct qed_mcp_link_params {
63 struct qed_mcp_link_speed_params speed;
64 struct qed_mcp_link_pause_params pause;
65 u32 loopback_mode;
66 struct qed_link_eee_params eee;
67};
68
69struct qed_mcp_link_capabilities {
70 u32 speed_capabilities;
71 bool default_speed_autoneg;
72 enum qed_mcp_eee_mode default_eee;
73 u32 eee_lpi_timer;
74 u8 eee_speed_caps;
75};
76
77struct qed_mcp_link_state {
78 bool link_up;
79
80 u32 min_pf_rate;
81
82
83 u32 line_speed;
84
85
86
87
88 u32 speed;
89 bool full_duplex;
90
91 bool an;
92 bool an_complete;
93 bool parallel_detection;
94 bool pfc_enabled;
95
96#define QED_LINK_PARTNER_SPEED_1G_HD BIT(0)
97#define QED_LINK_PARTNER_SPEED_1G_FD BIT(1)
98#define QED_LINK_PARTNER_SPEED_10G BIT(2)
99#define QED_LINK_PARTNER_SPEED_20G BIT(3)
100#define QED_LINK_PARTNER_SPEED_25G BIT(4)
101#define QED_LINK_PARTNER_SPEED_40G BIT(5)
102#define QED_LINK_PARTNER_SPEED_50G BIT(6)
103#define QED_LINK_PARTNER_SPEED_100G BIT(7)
104 u32 partner_adv_speed;
105
106 bool partner_tx_flow_ctrl_en;
107 bool partner_rx_flow_ctrl_en;
108
109#define QED_LINK_PARTNER_SYMMETRIC_PAUSE (1)
110#define QED_LINK_PARTNER_ASYMMETRIC_PAUSE (2)
111#define QED_LINK_PARTNER_BOTH_PAUSE (3)
112 u8 partner_adv_pause;
113
114 bool sfp_tx_fault;
115 bool eee_active;
116 u8 eee_adv_caps;
117 u8 eee_lp_adv_caps;
118};
119
120struct qed_mcp_function_info {
121 u8 pause_on_host;
122
123 enum qed_pci_personality protocol;
124
125 u8 bandwidth_min;
126 u8 bandwidth_max;
127
128 u8 mac[ETH_ALEN];
129
130 u64 wwn_port;
131 u64 wwn_node;
132
133#define QED_MCP_VLAN_UNSET (0xffff)
134 u16 ovlan;
135
136 u16 mtu;
137};
138
139struct qed_mcp_nvm_common {
140 u32 offset;
141 u32 param;
142 u32 resp;
143 u32 cmd;
144};
145
146struct qed_mcp_drv_version {
147 u32 version;
148 u8 name[MCP_DRV_VER_STR_SIZE - 4];
149};
150
151struct qed_mcp_lan_stats {
152 u64 ucast_rx_pkts;
153 u64 ucast_tx_pkts;
154 u32 fcs_err;
155};
156
157struct qed_mcp_fcoe_stats {
158 u64 rx_pkts;
159 u64 tx_pkts;
160 u32 fcs_err;
161 u32 login_failure;
162};
163
164struct qed_mcp_iscsi_stats {
165 u64 rx_pdus;
166 u64 tx_pdus;
167 u64 rx_bytes;
168 u64 tx_bytes;
169};
170
171struct qed_mcp_rdma_stats {
172 u64 rx_pkts;
173 u64 tx_pkts;
174 u64 rx_bytes;
175 u64 tx_byts;
176};
177
178enum qed_mcp_protocol_type {
179 QED_MCP_LAN_STATS,
180 QED_MCP_FCOE_STATS,
181 QED_MCP_ISCSI_STATS,
182 QED_MCP_RDMA_STATS
183};
184
185union qed_mcp_protocol_stats {
186 struct qed_mcp_lan_stats lan_stats;
187 struct qed_mcp_fcoe_stats fcoe_stats;
188 struct qed_mcp_iscsi_stats iscsi_stats;
189 struct qed_mcp_rdma_stats rdma_stats;
190};
191
192enum qed_ov_eswitch {
193 QED_OV_ESWITCH_NONE,
194 QED_OV_ESWITCH_VEB,
195 QED_OV_ESWITCH_VEPA
196};
197
198enum qed_ov_client {
199 QED_OV_CLIENT_DRV,
200 QED_OV_CLIENT_USER,
201 QED_OV_CLIENT_VENDOR_SPEC
202};
203
204enum qed_ov_driver_state {
205 QED_OV_DRIVER_STATE_NOT_LOADED,
206 QED_OV_DRIVER_STATE_DISABLED,
207 QED_OV_DRIVER_STATE_ACTIVE
208};
209
210enum qed_ov_wol {
211 QED_OV_WOL_DEFAULT,
212 QED_OV_WOL_DISABLED,
213 QED_OV_WOL_ENABLED
214};
215
216enum qed_mfw_tlv_type {
217 QED_MFW_TLV_GENERIC = 0x1,
218 QED_MFW_TLV_ETH = 0x2,
219 QED_MFW_TLV_FCOE = 0x4,
220 QED_MFW_TLV_ISCSI = 0x8,
221 QED_MFW_TLV_MAX = 0x16,
222};
223
224struct qed_mfw_tlv_generic {
225#define QED_MFW_TLV_FLAGS_SIZE 2
226 struct {
227 u8 ipv4_csum_offload;
228 u8 lso_supported;
229 bool b_set;
230 } flags;
231
232#define QED_MFW_TLV_MAC_COUNT 3
233
234 u8 mac[QED_MFW_TLV_MAC_COUNT][6];
235 bool mac_set[QED_MFW_TLV_MAC_COUNT];
236
237 u64 rx_frames;
238 bool rx_frames_set;
239 u64 rx_bytes;
240 bool rx_bytes_set;
241 u64 tx_frames;
242 bool tx_frames_set;
243 u64 tx_bytes;
244 bool tx_bytes_set;
245};
246
247union qed_mfw_tlv_data {
248 struct qed_mfw_tlv_generic generic;
249 struct qed_mfw_tlv_eth eth;
250 struct qed_mfw_tlv_fcoe fcoe;
251 struct qed_mfw_tlv_iscsi iscsi;
252};
253
254
255
256
257
258
259
260
261struct qed_mcp_link_params *qed_mcp_get_link_params(struct qed_hwfn *);
262
263
264
265
266
267
268
269
270struct qed_mcp_link_state *qed_mcp_get_link_state(struct qed_hwfn *);
271
272
273
274
275
276
277
278
279struct qed_mcp_link_capabilities
280 *qed_mcp_get_link_capabilities(struct qed_hwfn *p_hwfn);
281
282
283
284
285
286
287
288
289
290
291int qed_mcp_set_link(struct qed_hwfn *p_hwfn,
292 struct qed_ptt *p_ptt,
293 bool b_up);
294
295
296
297
298
299
300
301
302
303
304
305int qed_mcp_get_mfw_ver(struct qed_hwfn *p_hwfn,
306 struct qed_ptt *p_ptt,
307 u32 *p_mfw_ver, u32 *p_running_bundle_id);
308
309
310
311
312
313
314
315
316
317
318int qed_mcp_get_mbi_ver(struct qed_hwfn *p_hwfn,
319 struct qed_ptt *p_ptt, u32 *p_mbi_ver);
320
321
322
323
324
325
326
327
328
329
330
331
332int qed_mcp_get_media_type(struct qed_hwfn *p_hwfn,
333 struct qed_ptt *p_ptt, u32 *media_type);
334
335
336
337
338
339
340
341
342
343
344
345
346
347int qed_mcp_get_transceiver_data(struct qed_hwfn *p_hwfn,
348 struct qed_ptt *p_ptt,
349 u32 *p_transceiver_state,
350 u32 *p_tranceiver_type);
351
352
353
354
355
356
357
358
359
360
361
362
363
364int qed_mcp_trans_speed_mask(struct qed_hwfn *p_hwfn,
365 struct qed_ptt *p_ptt, u32 *p_speed_mask);
366
367
368
369
370
371
372
373
374
375
376
377
378int qed_mcp_get_board_config(struct qed_hwfn *p_hwfn,
379 struct qed_ptt *p_ptt, u32 *p_board_config);
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398int qed_mcp_cmd(struct qed_hwfn *p_hwfn,
399 struct qed_ptt *p_ptt,
400 u32 cmd,
401 u32 param,
402 u32 *o_mcp_resp,
403 u32 *o_mcp_param);
404
405
406
407
408
409
410
411
412int qed_mcp_drain(struct qed_hwfn *p_hwfn,
413 struct qed_ptt *p_ptt);
414
415
416
417
418
419
420
421
422
423
424int qed_mcp_get_flash_size(struct qed_hwfn *p_hwfn,
425 struct qed_ptt *p_ptt,
426 u32 *p_flash_size);
427
428
429
430
431
432
433
434
435
436
437
438int
439qed_mcp_send_drv_version(struct qed_hwfn *p_hwfn,
440 struct qed_ptt *p_ptt,
441 struct qed_mcp_drv_version *p_ver);
442
443
444
445
446
447
448
449
450
451u32 qed_get_process_kill_counter(struct qed_hwfn *p_hwfn,
452 struct qed_ptt *p_ptt);
453
454
455
456
457
458
459
460
461
462int qed_start_recovery_process(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt);
463
464
465
466
467
468
469
470
471
472
473int qed_recovery_prolog(struct qed_dev *cdev);
474
475
476
477
478
479
480
481
482
483
484int qed_mcp_ov_update_current_config(struct qed_hwfn *p_hwfn,
485 struct qed_ptt *p_ptt,
486 enum qed_ov_client client);
487
488
489
490
491
492
493
494
495
496
497int qed_mcp_ov_update_driver_state(struct qed_hwfn *p_hwfn,
498 struct qed_ptt *p_ptt,
499 enum qed_ov_driver_state drv_state);
500
501
502
503
504
505
506
507
508
509
510int qed_mcp_ov_update_mtu(struct qed_hwfn *p_hwfn,
511 struct qed_ptt *p_ptt, u16 mtu);
512
513
514
515
516
517
518
519
520
521
522int qed_mcp_ov_update_mac(struct qed_hwfn *p_hwfn,
523 struct qed_ptt *p_ptt, u8 *mac);
524
525
526
527
528
529
530
531
532
533
534int qed_mcp_ov_update_wol(struct qed_hwfn *p_hwfn,
535 struct qed_ptt *p_ptt,
536 enum qed_ov_wol wol);
537
538
539
540
541
542
543
544
545
546
547int qed_mcp_set_led(struct qed_hwfn *p_hwfn,
548 struct qed_ptt *p_ptt,
549 enum qed_led_mode mode);
550
551
552
553
554
555
556
557
558
559
560
561int qed_mcp_nvm_read(struct qed_dev *cdev, u32 addr, u8 *p_buf, u32 len);
562
563
564
565
566
567
568
569
570
571
572
573
574int qed_mcp_nvm_write(struct qed_dev *cdev,
575 u32 cmd, u32 addr, u8 *p_buf, u32 len);
576
577
578
579
580
581
582
583
584
585int qed_mcp_nvm_resp(struct qed_dev *cdev, u8 *p_buf);
586
587struct qed_nvm_image_att {
588 u32 start_addr;
589 u32 length;
590};
591
592
593
594
595
596
597
598
599
600
601int
602qed_mcp_get_nvm_image_att(struct qed_hwfn *p_hwfn,
603 enum qed_nvm_images image_id,
604 struct qed_nvm_image_att *p_image_att);
605
606
607
608
609
610
611
612
613
614
615
616int qed_mcp_get_nvm_image(struct qed_hwfn *p_hwfn,
617 enum qed_nvm_images image_id,
618 u8 *p_buffer, u32 buffer_len);
619
620
621
622
623
624
625
626
627
628int qed_mcp_bist_register_test(struct qed_hwfn *p_hwfn,
629 struct qed_ptt *p_ptt);
630
631
632
633
634
635
636
637
638
639int qed_mcp_bist_clock_test(struct qed_hwfn *p_hwfn,
640 struct qed_ptt *p_ptt);
641
642
643
644
645
646
647
648
649
650
651
652int qed_mcp_bist_nvm_get_num_images(struct qed_hwfn *p_hwfn,
653 struct qed_ptt *p_ptt,
654 u32 *num_images);
655
656
657
658
659
660
661
662
663
664
665
666int qed_mcp_bist_nvm_get_image_att(struct qed_hwfn *p_hwfn,
667 struct qed_ptt *p_ptt,
668 struct bist_nvm_image_att *p_image_att,
669 u32 image_index);
670
671
672
673
674
675
676
677
678
679
680int qed_mfw_process_tlv_req(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt);
681
682
683
684
685
686
687
688#define MCP_PF_ID_BY_REL(p_hwfn, rel_pfid) (QED_IS_BB((p_hwfn)->cdev) ? \
689 ((rel_pfid) | \
690 ((p_hwfn)->abs_pf_id & 1) << 3) : \
691 rel_pfid)
692#define MCP_PF_ID(p_hwfn) MCP_PF_ID_BY_REL(p_hwfn, (p_hwfn)->rel_pf_id)
693
694struct qed_mcp_info {
695
696 struct list_head cmd_list;
697
698
699
700
701 spinlock_t cmd_lock;
702
703
704 bool b_block_cmd;
705
706
707
708
709 spinlock_t link_lock;
710
711 u32 public_base;
712 u32 drv_mb_addr;
713 u32 mfw_mb_addr;
714 u32 port_addr;
715 u16 drv_mb_seq;
716 u16 drv_pulse_seq;
717 struct qed_mcp_link_params link_input;
718 struct qed_mcp_link_state link_output;
719 struct qed_mcp_link_capabilities link_capabilities;
720 struct qed_mcp_function_info func_info;
721 u8 *mfw_mb_cur;
722 u8 *mfw_mb_shadow;
723 u16 mfw_mb_length;
724 u32 mcp_hist;
725
726
727 u32 capabilities;
728};
729
730struct qed_mcp_mb_params {
731 u32 cmd;
732 u32 param;
733 void *p_data_src;
734 void *p_data_dst;
735 u8 data_src_size;
736 u8 data_dst_size;
737 u32 mcp_resp;
738 u32 mcp_param;
739 u32 flags;
740#define QED_MB_FLAG_CAN_SLEEP (0x1 << 0)
741#define QED_MB_FLAG_AVOID_BLOCK (0x1 << 1)
742#define QED_MB_FLAGS_IS_SET(params, flag) \
743 ({ typeof(params) __params = (params); \
744 (__params && (__params->flags & QED_MB_FLAG_ ## flag)); })
745};
746
747struct qed_drv_tlv_hdr {
748 u8 tlv_type;
749 u8 tlv_length;
750 u8 tlv_reserved;
751#define QED_DRV_TLV_FLAGS_CHANGED 0x01
752 u8 tlv_flags;
753};
754
755
756
757
758
759
760
761
762
763int qed_mcp_cmd_init(struct qed_hwfn *p_hwfn,
764 struct qed_ptt *p_ptt);
765
766
767
768
769
770
771
772
773void qed_mcp_cmd_port_init(struct qed_hwfn *p_hwfn,
774 struct qed_ptt *p_ptt);
775
776
777
778
779
780
781
782
783
784int qed_mcp_free(struct qed_hwfn *p_hwfn);
785
786
787
788
789
790
791
792
793
794
795
796
797
798int qed_mcp_handle_events(struct qed_hwfn *p_hwfn,
799 struct qed_ptt *p_ptt);
800
801enum qed_drv_role {
802 QED_DRV_ROLE_OS,
803 QED_DRV_ROLE_KDUMP,
804};
805
806struct qed_load_req_params {
807
808 enum qed_drv_role drv_role;
809 u8 timeout_val;
810 bool avoid_eng_reset;
811 enum qed_override_force_load override_force_load;
812
813
814 u32 load_code;
815};
816
817
818
819
820
821
822
823
824
825
826
827int qed_mcp_load_req(struct qed_hwfn *p_hwfn,
828 struct qed_ptt *p_ptt,
829 struct qed_load_req_params *p_params);
830
831
832
833
834
835
836
837
838
839int qed_mcp_load_done(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt);
840
841
842
843
844
845
846
847
848
849int qed_mcp_unload_req(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt);
850
851
852
853
854
855
856
857
858
859int qed_mcp_unload_done(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt);
860
861
862
863
864
865
866
867void qed_mcp_read_mb(struct qed_hwfn *p_hwfn,
868 struct qed_ptt *p_ptt);
869
870
871
872
873
874
875
876
877
878
879int qed_mcp_ack_vf_flr(struct qed_hwfn *p_hwfn,
880 struct qed_ptt *p_ptt, u32 *vfs_to_ack);
881
882
883
884
885
886
887
888
889int qed_mcp_fill_shmem_func_info(struct qed_hwfn *p_hwfn,
890 struct qed_ptt *p_ptt);
891
892
893
894
895
896
897
898
899
900int qed_mcp_reset(struct qed_hwfn *p_hwfn,
901 struct qed_ptt *p_ptt);
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919int qed_mcp_nvm_rd_cmd(struct qed_hwfn *p_hwfn,
920 struct qed_ptt *p_ptt,
921 u32 cmd,
922 u32 param,
923 u32 *o_mcp_resp,
924 u32 *o_mcp_param, u32 *o_txn_size, u32 *o_buf);
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939int qed_mcp_phy_sfp_read(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt,
940 u32 port, u32 addr, u32 offset, u32 len, u8 *p_buf);
941
942
943
944
945
946
947
948
949bool qed_mcp_is_init(struct qed_hwfn *p_hwfn);
950
951
952
953
954
955
956
957
958
959
960
961int qed_mcp_config_vf_msix(struct qed_hwfn *p_hwfn,
962 struct qed_ptt *p_ptt, u8 vf_id, u8 num);
963
964
965
966
967
968
969
970
971
972int qed_mcp_halt(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt);
973
974
975
976
977
978
979
980
981
982int qed_mcp_resume(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt);
983
984int qed_configure_pf_min_bandwidth(struct qed_dev *cdev, u8 min_bw);
985int qed_configure_pf_max_bandwidth(struct qed_dev *cdev, u8 max_bw);
986int __qed_configure_pf_max_bandwidth(struct qed_hwfn *p_hwfn,
987 struct qed_ptt *p_ptt,
988 struct qed_mcp_link_state *p_link,
989 u8 max_bw);
990int __qed_configure_pf_min_bandwidth(struct qed_hwfn *p_hwfn,
991 struct qed_ptt *p_ptt,
992 struct qed_mcp_link_state *p_link,
993 u8 min_bw);
994
995int qed_mcp_mask_parities(struct qed_hwfn *p_hwfn,
996 struct qed_ptt *p_ptt, u32 mask_parities);
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009int
1010qed_mcp_set_resc_max_val(struct qed_hwfn *p_hwfn,
1011 struct qed_ptt *p_ptt,
1012 enum qed_resources res_id,
1013 u32 resc_max_val, u32 *p_mcp_resp);
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027int
1028qed_mcp_get_resc_info(struct qed_hwfn *p_hwfn,
1029 struct qed_ptt *p_ptt,
1030 enum qed_resources res_id,
1031 u32 *p_mcp_resp, u32 *p_resc_num, u32 *p_resc_start);
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042int qed_mcp_ov_update_eswitch(struct qed_hwfn *p_hwfn,
1043 struct qed_ptt *p_ptt,
1044 enum qed_ov_eswitch eswitch);
1045
1046#define QED_MCP_RESC_LOCK_MIN_VAL RESOURCE_DUMP
1047#define QED_MCP_RESC_LOCK_MAX_VAL 31
1048
1049enum qed_resc_lock {
1050 QED_RESC_LOCK_DBG_DUMP = QED_MCP_RESC_LOCK_MIN_VAL,
1051 QED_RESC_LOCK_PTP_PORT0,
1052 QED_RESC_LOCK_PTP_PORT1,
1053 QED_RESC_LOCK_PTP_PORT2,
1054 QED_RESC_LOCK_PTP_PORT3,
1055 QED_RESC_LOCK_RESC_ALLOC = QED_MCP_RESC_LOCK_MAX_VAL,
1056 QED_RESC_LOCK_RESC_INVALID
1057};
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067int qed_mcp_initiate_pf_flr(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt);
1068struct qed_resc_lock_params {
1069
1070 u8 resource;
1071
1072
1073 u8 timeout;
1074#define QED_MCP_RESC_LOCK_TO_DEFAULT 0
1075#define QED_MCP_RESC_LOCK_TO_NONE 255
1076
1077
1078 u8 retry_num;
1079#define QED_MCP_RESC_LOCK_RETRY_CNT_DFLT 10
1080
1081
1082 u16 retry_interval;
1083#define QED_MCP_RESC_LOCK_RETRY_VAL_DFLT 10000
1084
1085
1086 bool sleep_b4_retry;
1087
1088
1089 bool b_granted;
1090
1091
1092
1093
1094 u8 owner;
1095};
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106int
1107qed_mcp_resc_lock(struct qed_hwfn *p_hwfn,
1108 struct qed_ptt *p_ptt, struct qed_resc_lock_params *p_params);
1109
1110struct qed_resc_unlock_params {
1111
1112 u8 resource;
1113
1114
1115 bool b_force;
1116
1117
1118 bool b_released;
1119};
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130int
1131qed_mcp_resc_unlock(struct qed_hwfn *p_hwfn,
1132 struct qed_ptt *p_ptt,
1133 struct qed_resc_unlock_params *p_params);
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143void qed_mcp_resc_lock_default_init(struct qed_resc_lock_params *p_lock,
1144 struct qed_resc_unlock_params *p_unlock,
1145 enum qed_resc_lock
1146 resource, bool b_is_permanent);
1147
1148
1149
1150
1151
1152
1153
1154
1155bool qed_mcp_is_smart_an_supported(struct qed_hwfn *p_hwfn);
1156
1157
1158
1159
1160
1161
1162
1163int qed_mcp_get_capabilities(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt);
1164
1165
1166
1167
1168
1169
1170
1171
1172int qed_mcp_set_capabilities(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt);
1173
1174
1175
1176
1177
1178
1179
1180void qed_mcp_read_ufp_config(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt);
1181
1182
1183
1184
1185
1186
1187int qed_mcp_nvm_info_populate(struct qed_hwfn *p_hwfn);
1188
1189
1190
1191
1192
1193
1194
1195int qed_mcp_get_engine_config(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt);
1196
1197
1198
1199
1200
1201
1202
1203int qed_mcp_get_ppfid_bitmap(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt);
1204
1205#endif
1206