@@ -958,7 +958,8 @@ static s8 __wpad_connreqCB(void *arg,struct bd_addr *pad_addr,u8 *cod,u8 link_ty
958958 // Only accept connection requests (i.e. "press any button") if not doing guest pairing
959959 if (BTE_GetPairMode () == PAIR_MODE_NORMAL ) {
960960 if (!bd_addr_cmp (pad_addr ,BD_ADDR_ANY )) {
961- __lwp_thread_dispatchdisable ();
961+ _CPU_ISR_Disable (level );
962+ //__lwp_thread_dispatchdisable();
962963 for (i = 0 ; i < CONF_PAD_MAX_ACTIVE ; i ++ ) {
963964 BD_ADDR_FROM_BYTES (& bdaddr ,__wpad_devs .active [i ].bdaddr );
964965 if (bd_addr_cmp (pad_addr ,& bdaddr )) {
@@ -1003,13 +1004,16 @@ static s8 __wpad_connreqCB(void *arg,struct bd_addr *pad_addr,u8 *cod,u8 link_ty
10031004
10041005 if (slot < CONF_PAD_MAX_ACTIVE ) {
10051006 __wpads_used |= (0x01 <<slot );
1007+ printf ("Assigning slot %d\n" ,slot );
10061008 wiiuse_register (& __wpads_listen [slot ],pad_addr ,__wpad_assign_slot );
1007- __lwp_thread_dispatchunnest ();
1009+ _CPU_ISR_Restore (level );
1010+ //__lwp_thread_dispatchunnest();
10081011 return ERR_OK ;
10091012 }
10101013 else
10111014 {
1012- __lwp_thread_dispatchunnest ();
1015+ _CPU_ISR_Restore (level );
1016+ //__lwp_thread_dispatchunnest();
10131017 }
10141018 }
10151019
@@ -1702,16 +1706,18 @@ s32 WPAD_Shutdown(void)
17021706 for (i = 0 ;i < WPAD_MAX_DEVICES ;i ++ ) {
17031707 wpdcb = & __wpdcb [i ];
17041708 SYS_RemoveAlarm (wpdcb -> sound_alarm );
1709+ bte_free (__wpads_listen [i ].sock );
1710+ __wpads_listen [i ].sock = NULL ;
17051711 //__wpad_disconnect(wpdcb);
17061712 }
17071713
17081714 __wiiuse_sensorbar_enable (0 );
17091715 _CPU_ISR_Restore (level );
17101716
1711- while (__wpads_used ) {
1717+ /* while(__wpads_used) {
17121718 usleep(50);
17131719 if(++cnt > 3000) break;
1714- }
1720+ }*/
17151721
17161722 BTE_Shutdown ();
17171723
0 commit comments