//             This function is only invoked at driver intialization once.
 //
 //
-extern void
+void
 init_hal_dm(struct net_device *dev)
 {
        struct r8192_priv *priv = ieee80211_priv(dev);
 
 }      // InitHalDm
 
-extern void deinit_hal_dm(struct net_device *dev)
+void deinit_hal_dm(struct net_device *dev)
 {
 
        dm_deInit_fsync(dev);
 
 
 
-extern  void    hal_dm_watchdog(struct net_device *dev)
+void    hal_dm_watchdog(struct net_device *dev)
 {
        //struct r8192_priv *priv = ieee80211_priv(dev);
 
   *    01/16/2008      MHC             RF_Type is assigned in ReadAdapterInfo(). We must call
   *                                            the function after making sure RF_Type.
   */
-extern void init_rate_adaptive(struct net_device *dev)
+void init_rate_adaptive(struct net_device *dev)
 {
 
        struct r8192_priv *priv = ieee80211_priv(dev);
        priv->txpower_count = 0;
 }
 
-extern void    dm_txpower_trackingcallback(struct work_struct *work)
+void   dm_txpower_trackingcallback(struct work_struct *work)
 {
        struct delayed_work *dwork = container_of(work,struct delayed_work,work);
        struct r8192_priv *priv = container_of(dwork,struct r8192_priv,txpower_tracking_wq);
 
 
 
-extern void dm_cck_txpower_adjust(
+void dm_cck_txpower_adjust(
        struct net_device *dev,
        bool  binch14
 )
  *     05/29/2008      amy             Create Version 0 porting from windows code.
  *
  *---------------------------------------------------------------------------*/
-extern void dm_change_dynamic_initgain_thresh(struct net_device *dev,
+void dm_change_dynamic_initgain_thresh(struct net_device *dev,
                                                                u32             dm_type,
                                                                u32             dm_value)
 {
                dm_digtable.rx_gain_range_max = (u8)dm_value;
        }
 }      /* DM_ChangeDynamicInitGainThresh */
-extern void
+void
 dm_change_fsync_setting(
        struct net_device *dev,
        s32             DM_Type,
        }
 }
 
-extern void
+void
 dm_change_rxpath_selection_setting(
        struct net_device *dev,
        s32             DM_Type,
        }
 }
 
-extern void dm_init_edca_turbo(struct net_device *dev)
+void dm_init_edca_turbo(struct net_device *dev)
 {
        struct r8192_priv *priv = ieee80211_priv(dev);
 
        lastRxOkCnt = priv->stats.rxbytesunicast;
 }      // dm_CheckEdcaTurbo
 
-extern void DM_CTSToSelfSetting(struct net_device *dev,u32 DM_Type, u32 DM_Value)
+void DM_CTSToSelfSetting(struct net_device *dev, u32 DM_Type, u32 DM_Value)
 {
        struct r8192_priv *priv = ieee80211_priv((struct net_device *)dev);
 
  *     01/30/2008      MHC             Create Version 0.
  *
  *---------------------------------------------------------------------------*/
-extern void    dm_rf_pathcheck_workitemcallback(struct work_struct *work)
+void   dm_rf_pathcheck_workitemcallback(struct work_struct *work)
 {
        struct delayed_work *dwork = container_of(work,struct delayed_work,work);
        struct r8192_priv *priv = container_of(dwork,struct r8192_priv,rfpath_check_wq);
        del_timer_sync(&priv->fsync_timer);
 }
 
-extern void dm_fsync_timer_callback(unsigned long data)
+void dm_fsync_timer_callback(unsigned long data)
 {
        struct net_device *dev = (struct net_device *)data;
        struct r8192_priv *priv = ieee80211_priv((struct net_device *)data);
  *     05/29/2008      amy             Create Version 0 porting from windows code.
  *
  *---------------------------------------------------------------------------*/
-extern void dm_shadow_init(struct net_device *dev)
+void dm_shadow_init(struct net_device *dev)
 {
        u8      page;
        u16     offset;