[ChenLi Tien, from http://members.home.net/puresoft/cmedia.html] > - * Copyright (C) 1999 ChenLi Tien ([EMAIL PROTECTED]) > - * > - * Based on the PCI drivers by Thomas Sailer ([EMAIL PROTECTED]) > + * Copyright (C) 1999 ChenLi Tien ([EMAIL PROTECTED]) > + * C-media support ([EMAIL PROTECTED]) This is somewhat impolite -- unless the driver is *not* actually based on Tom's work. > +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,3,0) > +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,0) > + owner: THIS_MODULE, > +#endif > llseek: cm_llseek, > ioctl: cm_ioctl_mixdev, > open: cm_open_mixdev, > release: cm_release_mixdev, > +#else > + &cm_llseek, > + NULL, /* read */ > + NULL, /* write */ > + NULL, /* readdir */ > + NULL, /* poll */ > + &cm_ioctl_mixdev, > + NULL, /* mmap */ > + &cm_open_mixdev, > + NULL, /* flush */ > + &cm_release_mixdev, > + NULL, /* fsync */ > + NULL, /* fasync */ > + NULL, /* check_media_change */ > + NULL, /* revalidate */ > + NULL, /* lock */ > +#endif I don't think the (2,3,0) ifdef is necessary. Just use the labeled initializers for all kernels. See also cm_audio_fops, cm_dsp_fops, cm_midi_fops, cm_dmfm_fops. > +#ifdef MODULE > +MODULE_PARM(mpu_io, "i"); > +MODULE_PARM(fm_io, "i"); > +MODULE_PARM(spdif_inverse, "i"); > +MODULE_PARM(spdif_loop, "i"); > +MODULE_PARM(four_sp, "i"); > +MODULE_PARM(rear_out, "i"); > +MODULE_PARM(modem, "i"); > +MODULE_PARM(joystick, "i"); > #endif No need for '#ifdef MODULE'. > +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,0) > +static int __init init_cmpci(void) > +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,3,0) > +#ifdef MODULE > +int __init init_module(void) > +#else > int __init init_cmpci(void) > #endif > +#else > +#ifdef MODULE > +__initfunc(int init_module(void)) > +#else > +__initfunc(int init_cmpci(void)) > +#endif > +#endif __init is fine in 2.2, no need for conditional __initfunc(). Peter - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] Please read the FAQ at http://www.tux.org/lkml/