I have bluetooth working consistently now - even after a suspend and resume.
To do this I have to run a script via the ppp dial up I configured within the networks tab. (The "execute" tab in the ppp dial up account allows you to run a script of your choice.)
My script is as follows - call it whatever you like, but make sure you make it executable
#!/bin/sh
/sbin/rmmod bluecard_cs
/sbin/insmod /lib/modules/2.4.18-rmk7-pxa3-embedix/kernel/drivers/usb/device/bluecard_cs.o
/etc/init.d/bluetooth stop
/etc/init.d/bluetooth start
rfcomm bind all
pand --listen GW
pand --connect <your phones mac address>
First of all I make sure that the bluecard_cs module is properly loaded then I stop and start bluetooth .
I found you had to stop bluetooth when you came out of suspend otherwise bluetooth didnt initialise properly and I could get past the modem initialiastion string in the ppp dial up.
I added rfcomm bind all and the pand commands just for good measure.
Anyway I can now put my bt card in , suspend and resume and make a bluetooth connection to the phone and dial up everytime.
I dont use the card manager icon to remove the card if I want to swap in my wifi card later I just yank my bt card out wait until the message saying "ls039 card has been ejected" and plug my wifi card in. I found that if I try and click on the card manger icon to remove the card the light on my bt card comes on and stays on - worse still the Z hangs and I have to reboot!
I'am sure these problems and the usbdo modules not loading properly after a resume are all due to the suspend and resume problem and will go away when this is fixed. I have flashed to the latest zImage which has got rid of the right key press suspend problem but there's obviously still problems with suspend /resume.
The general setup for bluetooth can be found here:
http://opie.handhelds.org/cgi-bin/moin.cgi/BluetoothGprsI also found that I had to add the "givepin" script as per the opie bluetooth instructions above.
Hope this helps you get by with your bluetooth until suspend/resume gets fixed.