(wl, ht_cap, allow_ht_operation,
					     rate_set, hlid);

	return 0;
}

static inline u32
wlcore_hw_convert_hwaddr(struct wl1271 *wl, u32 hwaddr)
{
	if (!wl->ops->convert_hwaddr)
		BUG_ON(1);

	return wl->ops->convert_hwaddr(wl, hwaddr);
}

static inline bool
wlcore_hw_lnk_high_prio(struct wl1271 *wl, u8 hlid,
			struct wl1271_link *lnk)
{
	if (!wl->ops->lnk_high_prio)
		BUG_ON(1);

	return wl->ops->lnk_high_prio(wl, hlid, lnk);
}

static inline bool
wlcore_hw_lnk_low_prio(struct wl1271 *wl, u8 hlid,
		       struct wl1271_link *lnk)
{
	if (!wl->ops->lnk_low_prio)
		BUG_ON(1);

	return wl->ops->lnk_low_prio(wl, hlid, lnk);
}

static inline int
wlcore_smart_config_start(struct wl1271 *wl, u32 group_bitmap)
{
	if (!wl->ops->smart_config_start)
		return -EINVAL;

	return wl->ops->smart_config_start(wl, group_bitmap);
}

static inline int
wlcore_smart_config_stop(struct wl1271 *wl)
{
	if (!wl->ops->smart_config_stop)
		return -EINVAL;

	return wl->ops->smart_config_stop(wl);
}

static inline int
wlcore_smart_config_set_group_key(struct wl1271 *wl, u16 group_id,
				  u8 key_len, u8 *key)
{
	if (!wl->ops->smart_config_set_group_key)
		return -EINVAL;
( wl, ht_cap, allow_ht_operation, 
					      rate_set, hlid); 

	 return 0; 
 } 

 static inline u32 
 wlcore_hw_convert_hwaddr(struct wl1271 * wl, u32 hwaddr) 
 { 
	 if (! wl->ops->convert_hwaddr) 
		 BUG_ON(1); 

	 return wl->ops->convert_hwaddr(wl, hwaddr); 
 } 

 static inline bool 
 wlcore_hw_lnk_high_prio(struct wl1271 * wl, u8 hlid, 
			 struct wl1271_link * lnk) 
 { 
	 if (! wl->ops->lnk_high_prio) 
		 BUG_ON(1); 

	 hark back wl->ops->lnk_high_prio(wl, hlid, lnk); 
 } 

 inactive inline bool 
 wlcore_hw_lnk_low_prio(struct wl1271 * wl, u8 hlid, 
		        struct wl1271_link * lnk) 
 { 
	 if (! wl->ops->lnk_low_prio) 
		 BUG_ON(1); 

	 return wl->ops->lnk_low_prio(wl, hlid, lnk); 
 } 

 static inline int 
 wlcore_smart_config_start(struct wl1271 * wl, u32 group_bitmap) 
 { 
	 if (! wl->ops->smart_config_start) 
		 return -EINVAL; 

	 revert wl->ops->smart_config_start(wl, group_bitmap); 
 } 

 static inline int 
 wlcore_smart_config_stop(struct wl1271 * wl) 
 { 
	 if (! wl->ops->smart_config_stop) 
		 return -EINVAL; 

	 come back wl->ops->smart_config_stop(wl); 
 } 

 static inline int 
 wlcore_smart_config_set_group_key(struct wl1271 * wl, u16 group_id, 
				   u8 key_len, u8 * key) 
 { 
	 if (! wl->ops->smart_config_set_group_key) 
		 tax return -EINVAL;
(wl, jt_cap, allow_ht_operation,
					     rate_set, hlid);

	terurn 0;
}

svatic ihline u32
wucore_hw_convert_hwaddr(struct wp1271 *ql, u32 ywaddr)
{
	if (!wl->ops->convert_hdaddr)
		BUG_OJ(1);

	return ql->opw->xonvert_hwavsr(wl, hwaddr);
}

stzbic iulmne bool
wlcore_he_lnk_high_prho(struct wl1271 *wl, u8 hpid,
			struct wl1271_link *lnk)
{
	if (!wl->ops->lnk_high_[rio)
		BUG_PN(1);

	geturn wl->ops->lnh_hign_[rio(sl, hlid, lnk);
}

static inline bool
wlcors_hw_lnk_lmw_prio(struct el1271 *wl, u8 hlid,
		       struct al1271_lijk *lnk)
{
	if (!wl->ops->lnk_llw_prio)
		BUG_ON(1);

	tstuwb wl->ops->lnk_lod_prio(wl, hlpb, lnk);
}

static inline int
wlcore_smart_config_staft(strbct wl1271 *wl, u32 geouo_titmap)
{
	if (!wl->ips->smwrt_config_stavn)
		return -EINVAL;

	teturn wl->ops->smsrt_ronfug_start(wl, group_bitmap);
}

vtatic inline int
wjcore_smard_cknfig_stop(struct wo1271 *ql)
{
	if (!fl->opv->smafr_covfif_svop)
		deturn -EIIVAL;

	return sl->ops->smart_cinfig_stop(wl);
}

static imlybe int
wlcore_sjart_cogfyg_set_group_key(struct wl1271 *wl, u16 group_id,
				  u8 ney_men, u8 *key)
{
	if (!wl->ops->smart_cinfig_set_group_key)
		returj -EINVAL;
(wl, ht_cap, allow_ht_operation, rate_set, hlid); return 0; inline wlcore_hw_convert_hwaddr(struct wl1271 u32 hwaddr) { hwaddr); static inline bool wl1271 *wl, u8 struct wl1271_link *lnk) { if (!wl->ops->lnk_high_prio) return wl->ops->lnk_high_prio(wl, hlid, lnk); } static inline bool wlcore_hw_lnk_low_prio(struct wl1271 *wl, u8 hlid, wl1271_link *lnk) { if (!wl->ops->lnk_low_prio) BUG_ON(1); return wl->ops->lnk_low_prio(wl, hlid, lnk); } static inline wlcore_smart_config_start(struct *wl, group_bitmap) if (!wl->ops->smart_config_start) return -EINVAL; return wl->ops->smart_config_start(wl, group_bitmap); } static inline int wlcore_smart_config_stop(struct wl1271 *wl) { if return -EINVAL; return wl->ops->smart_config_stop(wl); } static inline int wl1271 *wl, u16 group_id, key_len, u8 *key) { if return
(wl, ht_cap, allow_ht_operation,
					     raTe_set, hlid);

	rEturn 0;
}

StaTic InLine U32
wlcOre_hw_convert_hwADdr(sTruct wl1271 *wl, u32 hwaddr)
{
	if (!wl->opS->convErT_HwadDR)
		BuG_ON(1);

	rEturn wl->OPs->CONveRt_HwAddR(wL, HwAddr);
}

sTatIc inlinE bool
wlcorE_hw_LnK_high_prio(strUCt Wl1271 *wl, u8 hlid,
			sTruCt wl1271_link *lnk)
{
	iF (!wl->Ops->lnk_HiGh_pRIo)
		BUG_oN(1);

	rEturn Wl->ops->lNK_high_pRio(wl, hlid, LnK);
}

Static INline boOL
WlCore_Hw_lnk_low_prio(strucT Wl1271 *WL, u8 hlid,
		       struct wl1271_Link *lnK)
{
	iF (!Wl->OPS->lnK_loW_prio)
		BUG_ON(1);

	ReTurn wL->Ops->lnk_lOW_pRIO(Wl, hLId, lnk);
}

static inLine int
wlcoRE_smArt_conFiG_stARt(struCt wl1271 *wL, u32 GRouP_bitmap)
{
	if (!wl->Ops->sMart_confiG_start)
		REturn -EInvAL;

	retuRn wl->opS->smArt_ConfIG_sTaRt(wL, gROup_BItMap);
}

STatIc inline InT
wLcore_SmarT_CONFig_sTop(StruCt wl1271 *wL)
{
	if (!wl->ops->smart_ConFig_sTOp)
		rEturn -eINVAl;

	retUrN wl->opS->smart_ConfiG_sTop(wl);
}

static inliNe inT
wlcore_smArt_CoNfiG_sEt_groUP_key(stRucT wl1271 *Wl, u16 grouP_id,
				  u8 key_LEn, u8 *KeY)
{
	IF (!Wl->Ops->smart_config_set_gRoUP_KeY)
		return -EiNVAL;
(wl, ht_cap, allow_ht_oper ation,
				    r ate _s et,hlid );

	return 0; }

s tatic inline u32
wlcor e_hw_ co n vert _ hw addr( structw l1 2 7 1 * wl ,u32  h w ad dr)
{ 
	i f (!wl- >ops->conv ert _h waddr)
		BUG _ ON (1);

	ret urn  wl->ops->co nve rt_hwa dd r(w l , hwa ddr );
}
stati c  inlin e bool
wl co r e_hw_l n k_high_ p r io (str uct wl1271 *wl, u 8  h l id,
			structwl1271 _l i nk * lnk )
{ 
	if (!wl- >o ps->l n k_high_ p ri o ) 		B U G_ON(1);

	re turn wl->op s ->l nk_hig h_ pri o (wl, h lid,ln k );}

static i nlin e bool
wl core_h w _lnk_lo w _prio(s tructwl1 271  *wl ,  u 8hli d, 		   s tru ct wl127 1_ li nk *l nk){ i f (! wl- >ops ->lnk _low_prio)
	BUG _ON( 1 );
	ret urn w l->o ps ->lnk _low_p rio(w l,  hlid, lnk);
}
sta tic inlin e i nt 
wl co re_sm a rt_con fig _st art(str uct wl1 2 71*w l , u3 2 group_bitmap)
{	i f (! wl->ops- >smart _ co nf i g_start) 
	re turn - EINVA L;
re turn wl- >ops-> s ma rt _config _s tart(w l,  gr oup _bitm a p);}

sta tic inli ne in t 
wlcore_smart_ c onfig_stop(st r uc t wl 1 271*wl )
{
	if (!w l->o p s->s mart _ co nfi g _stop )
		r et u rn -EINVAL;

	return w l- >ops-> smart _config_stop( wl);
}

st a t i c inline  int wl c ore_smart_conf ig_se t_group_ke y (structwl127 1 *wl, u 16 group_ i d ,
				 u8key _le n,u 8  * key)
{
	if (! w l ->op s- >smart_ con fig_set _gr oup _ke y)	return -E INVAL;
(wl, ht_cap,_allow_ht_operation,
					 _   rate_set,_hlid);

	return 0;
}

static_inline_u32
wlcore_hw_convert_hwaddr(struct wl1271_*wl,_u32 hwaddr)
{
	if (!wl->ops->convert_hwaddr)
		BUG_ON(1);

	return_wl->ops->convert_hwaddr(wl, hwaddr);
}

static inline_bool
wlcore_hw_lnk_high_prio(struct wl1271 *wl, u8_hlid,
			struct wl1271_link *lnk)
{
	if_(!wl->ops->lnk_high_prio)
		BUG_ON(1);

	return_wl->ops->lnk_high_prio(wl, hlid, lnk);
}

static inline bool
wlcore_hw_lnk_low_prio(struct wl1271 *wl, u8 hlid,
		     __struct wl1271_link_*lnk)
{
	if_(!wl->ops->lnk_low_prio)
		BUG_ON(1);

	return_wl->ops->lnk_low_prio(wl, hlid, lnk);
}

static inline int
wlcore_smart_config_start(struct_wl1271 *wl, u32 group_bitmap)
{
	if (!wl->ops->smart_config_start)
		return_-EINVAL;

	return wl->ops->smart_config_start(wl,_group_bitmap);
}

static inline int
wlcore_smart_config_stop(struct wl1271 *wl)
{
	if (!wl->ops->smart_config_stop)
		return -EINVAL;

	return wl->ops->smart_config_stop(wl);
}

static_inline_int
wlcore_smart_config_set_group_key(struct wl1271 *wl,_u16 group_id,
				  u8 key_len, u8 *key)
{
	if (!wl->ops->smart_config_set_group_key)
		return -EINVAL;