#include "cpia.h"
 
-#ifdef CONFIG_VIDEO_CPIA_PP
-extern int cpia_pp_init(void);
-#endif
-#ifdef CONFIG_VIDEO_CPIA_USB
-extern int cpia_usb_init(void);
-#endif
-
 static int video_nr = -1;
 
 #ifdef MODULE
        proc_cpia_create();
 #endif
 
-#ifdef CONFIG_VIDEO_CPIA_PP
-       cpia_pp_init();
-#endif
-#ifdef CONFIG_VIDEO_CPIA_USB
-       cpia_usb_init();
-#endif
-
        return 0;
 }
 
 
        .detach = cpia_pp_detach,
 };
 
-int cpia_pp_init(void)
+static int cpia_pp_init(void)
 {
        printk(KERN_INFO "%s v%d.%d.%d\n",ABOUT,
               CPIA_PP_MAJ_VER,CPIA_PP_MIN_VER,CPIA_PP_PATCH_VER);
 
 static int __init cpia_pp_setup(char *str)
 {
+       int err;
+
        if (!strncmp(str, "parport", 7)) {
                int n = simple_strtoul(str + 7, NULL, 10);
                if (parport_ptr < PARPORT_MAX) {
                parport_nr[parport_ptr++] = PPCPIA_PARPORT_NONE;
        }
 
+       err=cpia_pp_init();
+       if (err)
+               return err;
+
        return 1;
 }