+ mf624_write32(CTR_STOP,MFST2REG(mfst,4,CTRXCTRL));
+ free(mfst);
+ mfst=NULL;
+ } else {
+ mfst = malloc(sizeof(mf624_state_t));
+ char buff[BUFF_SMALL];
+ memset(buff, '\0', BUFF_SMALL);
+ mfst->uio_dev = "uio0";
+
+ strncat(buff, "/dev/", 5);
+ strncat(buff, mfst->uio_dev, sizeof(buff) - 6);
+
+ mfst->device_fd = open_device(buff);
+
+ if (mfst->device_fd < 0) {
+ ssSetErrorStatus(S,"open failed");
+ return;
+ }
+
+ if (mmap_regions(mfst) < 0) {
+ ssSetErrorStatus(S,"mmap_regions failed");
+ return;
+ }
+ mf624_write32(CTR_STOP,MFST2REG(mfst,4,CTRXCTRL));