Linux Audio

Check our new training course

Linux BSP upgrade and security maintenance

Need help to get security updates for your Linux BSP?
Loading...
v4.6
  1/*
  2 * Copyright (c) 2005-2014 Brocade Communications Systems, Inc.
  3 * Copyright (c) 2014- QLogic Corporation.
  4 * All rights reserved
  5 * www.qlogic.com
  6 *
  7 * Linux driver for QLogic BR-series Fibre Channel Host Bus Adapter.
  8 *
  9 * This program is free software; you can redistribute it and/or modify it
 10 * under the terms of the GNU General Public License (GPL) Version 2 as
 11 * published by the Free Software Foundation
 12 *
 13 * This program is distributed in the hope that it will be useful, but
 14 * WITHOUT ANY WARRANTY; without even the implied warranty of
 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 16 * General Public License for more details.
 17 */
 18
 19#ifndef __BFA_PORT_H__
 20#define __BFA_PORT_H__
 21
 22#include "bfa_defs_svc.h"
 23#include "bfa_ioc.h"
 24#include "bfa_cs.h"
 25
 26typedef void (*bfa_port_stats_cbfn_t) (void *dev, bfa_status_t status);
 27typedef void (*bfa_port_endis_cbfn_t) (void *dev, bfa_status_t status);
 28
 29struct bfa_port_s {
 30	void				*dev;
 31	struct bfa_ioc_s		*ioc;
 32	struct bfa_trc_mod_s		*trcmod;
 33	u32			msgtag;
 34	bfa_boolean_t			stats_busy;
 35	struct bfa_mbox_cmd_s		stats_mb;
 36	bfa_port_stats_cbfn_t		stats_cbfn;
 37	void				*stats_cbarg;
 38	bfa_status_t			stats_status;
 39	u32			stats_reset_time;
 40	union bfa_port_stats_u		*stats;
 41	struct bfa_dma_s		stats_dma;
 42	bfa_boolean_t			endis_pending;
 43	struct bfa_mbox_cmd_s		endis_mb;
 44	bfa_port_endis_cbfn_t		endis_cbfn;
 45	void				*endis_cbarg;
 46	bfa_status_t			endis_status;
 47	struct bfa_ioc_notify_s		ioc_notify;
 48	bfa_boolean_t			pbc_disabled;
 49	bfa_boolean_t			dport_enabled;
 50	struct bfa_mem_dma_s		port_dma;
 51};
 52
 53#define BFA_MEM_PORT_DMA(__bfa)		(&((__bfa)->modules.port.port_dma))
 54
 55void	     bfa_port_attach(struct bfa_port_s *port, struct bfa_ioc_s *ioc,
 56				void *dev, struct bfa_trc_mod_s *trcmod);
 57void	bfa_port_notify(void *arg, enum bfa_ioc_event_e event);
 58
 59bfa_status_t bfa_port_get_stats(struct bfa_port_s *port,
 60				 union bfa_port_stats_u *stats,
 61				 bfa_port_stats_cbfn_t cbfn, void *cbarg);
 62bfa_status_t bfa_port_clear_stats(struct bfa_port_s *port,
 63				   bfa_port_stats_cbfn_t cbfn, void *cbarg);
 64bfa_status_t bfa_port_enable(struct bfa_port_s *port,
 65			      bfa_port_endis_cbfn_t cbfn, void *cbarg);
 66bfa_status_t bfa_port_disable(struct bfa_port_s *port,
 67			       bfa_port_endis_cbfn_t cbfn, void *cbarg);
 68u32     bfa_port_meminfo(void);
 69void	     bfa_port_mem_claim(struct bfa_port_s *port,
 70				 u8 *dma_kva, u64 dma_pa);
 71void	bfa_port_set_dportenabled(struct bfa_port_s *port,
 72				  bfa_boolean_t enabled);
 73
 74/*
 75 * CEE declaration
 76 */
 77typedef void (*bfa_cee_get_attr_cbfn_t) (void *dev, bfa_status_t status);
 78typedef void (*bfa_cee_get_stats_cbfn_t) (void *dev, bfa_status_t status);
 79typedef void (*bfa_cee_reset_stats_cbfn_t) (void *dev, bfa_status_t status);
 80
 81struct bfa_cee_cbfn_s {
 82	bfa_cee_get_attr_cbfn_t		get_attr_cbfn;
 83	void				*get_attr_cbarg;
 84	bfa_cee_get_stats_cbfn_t	get_stats_cbfn;
 85	void				*get_stats_cbarg;
 86	bfa_cee_reset_stats_cbfn_t	reset_stats_cbfn;
 87	void				*reset_stats_cbarg;
 88};
 89
 90struct bfa_cee_s {
 91	void *dev;
 92	bfa_boolean_t		get_attr_pending;
 93	bfa_boolean_t		get_stats_pending;
 94	bfa_boolean_t		reset_stats_pending;
 95	bfa_status_t		get_attr_status;
 96	bfa_status_t		get_stats_status;
 97	bfa_status_t		reset_stats_status;
 98	struct bfa_cee_cbfn_s	cbfn;
 99	struct bfa_ioc_notify_s	ioc_notify;
100	struct bfa_trc_mod_s	*trcmod;
101	struct bfa_cee_attr_s	*attr;
102	struct bfa_cee_stats_s	*stats;
103	struct bfa_dma_s	attr_dma;
104	struct bfa_dma_s	stats_dma;
105	struct bfa_ioc_s	*ioc;
106	struct bfa_mbox_cmd_s	get_cfg_mb;
107	struct bfa_mbox_cmd_s	get_stats_mb;
108	struct bfa_mbox_cmd_s	reset_stats_mb;
109	struct bfa_mem_dma_s	cee_dma;
110};
111
112#define BFA_MEM_CEE_DMA(__bfa)	(&((__bfa)->modules.cee.cee_dma))
113
114u32	bfa_cee_meminfo(void);
115void	bfa_cee_mem_claim(struct bfa_cee_s *cee, u8 *dma_kva, u64 dma_pa);
116void	bfa_cee_attach(struct bfa_cee_s *cee,
117			struct bfa_ioc_s *ioc, void *dev);
118bfa_status_t	bfa_cee_get_attr(struct bfa_cee_s *cee,
119				struct bfa_cee_attr_s *attr,
120				bfa_cee_get_attr_cbfn_t cbfn, void *cbarg);
121bfa_status_t	bfa_cee_get_stats(struct bfa_cee_s *cee,
122				struct bfa_cee_stats_s *stats,
123				bfa_cee_get_stats_cbfn_t cbfn, void *cbarg);
124bfa_status_t	bfa_cee_reset_stats(struct bfa_cee_s *cee,
125				bfa_cee_reset_stats_cbfn_t cbfn, void *cbarg);
126
127#endif	/* __BFA_PORT_H__ */
v3.1
  1/*
  2 * Copyright (c) 2005-2010 Brocade Communications Systems, Inc.
 
  3 * All rights reserved
  4 * www.brocade.com
  5 *
  6 * Linux driver for Brocade Fibre Channel Host Bus Adapter.
  7 *
  8 * This program is free software; you can redistribute it and/or modify it
  9 * under the terms of the GNU General Public License (GPL) Version 2 as
 10 * published by the Free Software Foundation
 11 *
 12 * This program is distributed in the hope that it will be useful, but
 13 * WITHOUT ANY WARRANTY; without even the implied warranty of
 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 15 * General Public License for more details.
 16 */
 17
 18#ifndef __BFA_PORT_H__
 19#define __BFA_PORT_H__
 20
 21#include "bfa_defs_svc.h"
 22#include "bfa_ioc.h"
 23#include "bfa_cs.h"
 24
 25typedef void (*bfa_port_stats_cbfn_t) (void *dev, bfa_status_t status);
 26typedef void (*bfa_port_endis_cbfn_t) (void *dev, bfa_status_t status);
 27
 28struct bfa_port_s {
 29	void				*dev;
 30	struct bfa_ioc_s		*ioc;
 31	struct bfa_trc_mod_s		*trcmod;
 32	u32			msgtag;
 33	bfa_boolean_t			stats_busy;
 34	struct bfa_mbox_cmd_s		stats_mb;
 35	bfa_port_stats_cbfn_t		stats_cbfn;
 36	void				*stats_cbarg;
 37	bfa_status_t			stats_status;
 38	u32			stats_reset_time;
 39	union bfa_port_stats_u		*stats;
 40	struct bfa_dma_s		stats_dma;
 41	bfa_boolean_t			endis_pending;
 42	struct bfa_mbox_cmd_s		endis_mb;
 43	bfa_port_endis_cbfn_t		endis_cbfn;
 44	void				*endis_cbarg;
 45	bfa_status_t			endis_status;
 46	struct bfa_ioc_notify_s		ioc_notify;
 47	bfa_boolean_t			pbc_disabled;
 
 48	struct bfa_mem_dma_s		port_dma;
 49};
 50
 51#define BFA_MEM_PORT_DMA(__bfa)		(&((__bfa)->modules.port.port_dma))
 52
 53void	     bfa_port_attach(struct bfa_port_s *port, struct bfa_ioc_s *ioc,
 54				void *dev, struct bfa_trc_mod_s *trcmod);
 55void	bfa_port_notify(void *arg, enum bfa_ioc_event_e event);
 56
 57bfa_status_t bfa_port_get_stats(struct bfa_port_s *port,
 58				 union bfa_port_stats_u *stats,
 59				 bfa_port_stats_cbfn_t cbfn, void *cbarg);
 60bfa_status_t bfa_port_clear_stats(struct bfa_port_s *port,
 61				   bfa_port_stats_cbfn_t cbfn, void *cbarg);
 62bfa_status_t bfa_port_enable(struct bfa_port_s *port,
 63			      bfa_port_endis_cbfn_t cbfn, void *cbarg);
 64bfa_status_t bfa_port_disable(struct bfa_port_s *port,
 65			       bfa_port_endis_cbfn_t cbfn, void *cbarg);
 66u32     bfa_port_meminfo(void);
 67void	     bfa_port_mem_claim(struct bfa_port_s *port,
 68				 u8 *dma_kva, u64 dma_pa);
 
 
 69
 70/*
 71 * CEE declaration
 72 */
 73typedef void (*bfa_cee_get_attr_cbfn_t) (void *dev, bfa_status_t status);
 74typedef void (*bfa_cee_get_stats_cbfn_t) (void *dev, bfa_status_t status);
 75typedef void (*bfa_cee_reset_stats_cbfn_t) (void *dev, bfa_status_t status);
 76
 77struct bfa_cee_cbfn_s {
 78	bfa_cee_get_attr_cbfn_t		get_attr_cbfn;
 79	void				*get_attr_cbarg;
 80	bfa_cee_get_stats_cbfn_t	get_stats_cbfn;
 81	void				*get_stats_cbarg;
 82	bfa_cee_reset_stats_cbfn_t	reset_stats_cbfn;
 83	void				*reset_stats_cbarg;
 84};
 85
 86struct bfa_cee_s {
 87	void *dev;
 88	bfa_boolean_t		get_attr_pending;
 89	bfa_boolean_t		get_stats_pending;
 90	bfa_boolean_t		reset_stats_pending;
 91	bfa_status_t		get_attr_status;
 92	bfa_status_t		get_stats_status;
 93	bfa_status_t		reset_stats_status;
 94	struct bfa_cee_cbfn_s	cbfn;
 95	struct bfa_ioc_notify_s	ioc_notify;
 96	struct bfa_trc_mod_s	*trcmod;
 97	struct bfa_cee_attr_s	*attr;
 98	struct bfa_cee_stats_s	*stats;
 99	struct bfa_dma_s	attr_dma;
100	struct bfa_dma_s	stats_dma;
101	struct bfa_ioc_s	*ioc;
102	struct bfa_mbox_cmd_s	get_cfg_mb;
103	struct bfa_mbox_cmd_s	get_stats_mb;
104	struct bfa_mbox_cmd_s	reset_stats_mb;
105	struct bfa_mem_dma_s	cee_dma;
106};
107
108#define BFA_MEM_CEE_DMA(__bfa)	(&((__bfa)->modules.cee.cee_dma))
109
110u32	bfa_cee_meminfo(void);
111void	bfa_cee_mem_claim(struct bfa_cee_s *cee, u8 *dma_kva, u64 dma_pa);
112void	bfa_cee_attach(struct bfa_cee_s *cee,
113			struct bfa_ioc_s *ioc, void *dev);
114bfa_status_t	bfa_cee_get_attr(struct bfa_cee_s *cee,
115				struct bfa_cee_attr_s *attr,
116				bfa_cee_get_attr_cbfn_t cbfn, void *cbarg);
117bfa_status_t	bfa_cee_get_stats(struct bfa_cee_s *cee,
118				struct bfa_cee_stats_s *stats,
119				bfa_cee_get_stats_cbfn_t cbfn, void *cbarg);
120bfa_status_t	bfa_cee_reset_stats(struct bfa_cee_s *cee,
121				bfa_cee_reset_stats_cbfn_t cbfn, void *cbarg);
122
123#endif	/* __BFA_PORT_H__ */