/*------------------------------------------------------------------------------------------*\ \*------------------------------------------------------------------------------------------*/ #include #include #include #include "sangam_atm/dsl_hal_api.h" #include "sangam_atm/tn7atm.h" #include "sangam_atm/tn7api.h" /*--- #include ---*/ /*--- #include ---*/ /*--- #include ---*/ /*-------------------------------------------------------------------------------------*\ \*-------------------------------------------------------------------------------------*/ tidsl_t* _tn7dsl_get_tidsl_ptr(void) { #ifdef CONFIG_AVM_ATM_AWATCH return tn7dsl_get_tidsl_ptr(); #else return NULL; #endif } /*------------------------------------------------------------------------------------------*\ \*------------------------------------------------------------------------------------------*/ void _dslhal_api_gatherStatistics(tidsl_t * ptidsl) { dslhal_api_gatherStatistics(ptidsl); dslhal_api_pollTrainingStatus(ptidsl); } /*------------------------------------------------------------------------------------------*\ \*------------------------------------------------------------------------------------------*/ int _atm_enter_ptest_mode(void) { extern int atm_enter_ptest_mode(void); /*--- return atm_enter_ptest_mode(); ---*/ return 1; } /*------------------------------------------------------------------------------------------*\ \*------------------------------------------------------------------------------------------*/ int _atm_leave_ptest_mode(void) { extern int atm_leave_ptest_mode(void); /*--- return atm_leave_ptest_mode(); ---*/ return 1; } /*------------------------------------------------------------------------------------------*\ \*------------------------------------------------------------------------------------------*/ int _atm_do_ptest(int func, char **ppBuff) { #if 0 //def CONFIG_AVM_ATM_PTEST //Brauchen wir die Ptest capi Schnittstelle ? extern int atm_do_ptest(int, char **); return atm_do_ptest(func, ppBuff); /*--- return 0; ---*/ #else return -1; #endif } /*------------------------------------------------------------------------------------------*\ \*------------------------------------------------------------------------------------------*/ #if defined(CONFIG_UBIK2) || defined(CONFIG_UBIK2_MODULE) void *atm_dsp_register_ubik2(unsigned int (*ubik2_ToMIPS_notify)(void), unsigned int (*ubik2_FromMIPS_notify)(void)) { void *init; printk("atm_dsp_register_ubik2: ubik2_ToMIPS_notify=0x%p ubik2_FromMIPS_notify=0x%p\n", ubik2_ToMIPS_notify, ubik2_FromMIPS_notify); init = tn7dsl_get_tidsl_ptr(); if(init) init = dslhal_api_ubik2_Init(init, ubik2_ToMIPS_notify ,ubik2_FromMIPS_notify); init = (void *)((unsigned int)init & 0x00FFFFFF); init = (void *)((unsigned int)init | 0xA1000000); printk("atm_dsp_register_ubik2: dsp mem pointer 0x%p\n", init); return init; } /*------------------------------------------------------------------------------------------*\ \*------------------------------------------------------------------------------------------*/ void atm_dsp_release_ubik2(void) { printk("atm_dsp_release_ubik2:\n"); dslhal_api_ubik2_Exit(); } /*------------------------------------------------------------------------------------------*\ \*------------------------------------------------------------------------------------------*/ void atm_dsp_activate_ubik2(void) { dslhal_api_ubik2_Activate(2); } /*------------------------------------------------------------------------------------------*\ \*------------------------------------------------------------------------------------------*/ void atm_dsp_deactivate_ubik2(void) { dslhal_api_ubik2_Activate(3); } /*------------------------------------------------------------------------------------------*\ \*------------------------------------------------------------------------------------------*/ void atm_dsp_trigger_ubik2(void) { printk("atm_dsp_trigger_ubik2: (ignore)\n"); return; } EXPORT_SYMBOL(atm_dsp_activate_ubik2); EXPORT_SYMBOL(atm_dsp_deactivate_ubik2); EXPORT_SYMBOL(atm_dsp_register_ubik2); EXPORT_SYMBOL(atm_dsp_release_ubik2); EXPORT_SYMBOL(atm_dsp_trigger_ubik2); #elif defined(CONFIG_AVM_BLUETOOTH) /*------------------------------------------------------------------------------------------*\ \*------------------------------------------------------------------------------------------*/ void HCI_ATM_Init(void (*ATM_HCI_RxTrigger)(void), void (*ATM_HCI_TxTrigger)(void), unsigned int MaxLen) { dslhal_api_hci_Init(tn7dsl_get_tidsl_ptr(), ATM_HCI_RxTrigger, ATM_HCI_TxTrigger, MaxLen); } /*------------------------------------------------------------------------------------------*\ \*------------------------------------------------------------------------------------------*/ void HCI_ATM_Exit(void) { dslhal_api_hci_Exit(); } /*------------------------------------------------------------------------------------------*\ \*------------------------------------------------------------------------------------------*/ unsigned int HCI_ATM_RxData(unsigned char *RxData) { unsigned int res = dslhal_api_hci_RxData(RxData); return (res < 0) ? 0 : res; } /*------------------------------------------------------------------------------------------*\ \*------------------------------------------------------------------------------------------*/ unsigned int HCI_ATM_TxData(unsigned char *TxData, unsigned int TxLen) { unsigned int res = dslhal_api_hci_TxData(TxData, TxLen); return (res < 0) ? 0 : res; } /*------------------------------------------------------------------------------------------*\ \*------------------------------------------------------------------------------------------*/ void HCI_ATM_GetDSPStatus(unsigned int *DSP_Status) { unsigned int res = dslhal_api_hci_GetDSPStatus(DSP_Status); } EXPORT_SYMBOL(HCI_ATM_Init); EXPORT_SYMBOL(HCI_ATM_Exit); EXPORT_SYMBOL(HCI_ATM_RxData); EXPORT_SYMBOL(HCI_ATM_TxData); EXPORT_SYMBOL(HCI_ATM_GetDSPStatus); #endif /*--- #ifdef CONFIG_AVM_BLUETOOTH ---*/ #ifdef CONFIG_AVM_ATM_AFE_REGISTER_ACCESS int DSP_AFE_Read_Register(unsigned int Addr, void (*complete)(unsigned char)) { return dslhal_api_DSP_AFE_Read_Register(tn7dsl_get_tidsl_ptr(), Addr, complete); } int DSP_AFE_Write_Register(unsigned int Addr, unsigned char Value, void (*complete)(void)) { return dslhal_api_DSP_AFE_Write_Register(tn7dsl_get_tidsl_ptr(), Addr, Value, complete); } EXPORT_SYMBOL(DSP_AFE_Read_Register); EXPORT_SYMBOL(DSP_AFE_Write_Register); #endif /*CONFIG_AVM_ATM_AFE_REGISTER_ACCESS*/ /*------------------------------------------------------------------------------------------*\ \*------------------------------------------------------------------------------------------*/ EXPORT_SYMBOL(_dslhal_api_gatherStatistics); EXPORT_SYMBOL(_tn7dsl_get_tidsl_ptr); EXPORT_SYMBOL(_atm_enter_ptest_mode); EXPORT_SYMBOL(_atm_leave_ptest_mode); EXPORT_SYMBOL(_atm_do_ptest);