![saicoo card reader driver osx saicoo card reader driver osx](https://64.media.tumblr.com/f08b4a9ae37a0a8670d563b5cd396ece/d4476a5750ebb143-16/s500x750/73b0b7f0067b49bca6734dd9d1ccdc0fe64ac7ff.png)
Use IOMalloc/ IOFree for memory management instead of new/ delete. This should use more locks to protect critical sections.Ī try to make IOCommandGate working, but never really worked.
![saicoo card reader driver osx saicoo card reader driver osx](https://m.media-amazon.com/images/I/41w04sVsBSL._SL160_.jpg)
#Saicoo card reader driver osx code#
The code allows some customization by defining/undefining certain preprocessor macros (set on ): Option Since there may be more than one task pending, a new task struct must be allocated/freed for each new task. Fixed a bug where a single task member was being reused.Use IOFilterInterruptEventSource instead of IOInterruptEventSource (should give better performance).The benefit this brings is that the future improvements in the OpenBSD driver can be incorporated more easily. This implied rewriting all OpenBSD functions which are not available in Darwin so that the same behavior is obtained using only functions available in the macOS kernel. An OpenBSD-compatibility layer has been added to make the original OpenBSD driver work with as few changes as possible.
#Saicoo card reader driver osx update#
If you have a chip other than RTS525A and this kext is working for you, please let me know and I will update this table. Enabling sleep may make the kext unstable. Not working after sleep and wakes up sleep constantly.Īdding boot parameter rtsx_sleep_wake_delay_ms=1000 makes it work with sleep enabled. Adding boot parameter rtsx_sleep_wake_delay_ms=1000 may help with sleep/wake. This does not apply to other chips, which may have a very unstable behavior or not work at all.
![saicoo card reader driver osx saicoo card reader driver osx](https://images-na.ssl-images-amazon.com/images/I/714VRIt3sGL._AC_SX679_.jpg)
My hope is that this driver gets improved over time and that these changes can be incorporated here. It seems that the OpenBSD driver is still in a very rough state.I'm not sure whether this approach is right or not (an IOCommandGate with one single workloop seems the way to go), but for now it seems to work. The solution adopted is to have two workloops, the normal workloop_ and a separate workloop for tasks. We needed a way to wait for the interrupt while in workloop_.It took me a while to understand the code. All credits are due to the original authors, and Overall notes This is a try to make this kext working on my laptop (Dell XPS 9350).