.owner          = THIS_MODULE,
        .name           = "Miro PCM 20 radio",
        .type           = VID_TYPE_TUNER,
-       .hardware       = VID_HARDWARE_RTRACK,
        .fops           = &pcm20_fops,
        .priv           = &pcm20_unit
 };
 
        .owner          = THIS_MODULE,
        .name           = "Colour AR VGA",
        .type           = VID_TYPE_CAPTURE,
-       .hardware       = VID_HARDWARE_ARV,
        .fops           = &ar_fops,
        .release        = ar_release,
        .minor          = -1,
 
        .name     = "UNSET",
        .type     = VID_TYPE_CAPTURE|VID_TYPE_TUNER|
                    VID_TYPE_CLIPPING|VID_TYPE_SCALES,
-       .hardware = VID_HARDWARE_BT848,
        .fops     = &bttv_fops,
        .minor    = -1,
 };
 {
        .name     = "bt848/878 vbi",
        .type     = VID_TYPE_TUNER|VID_TYPE_TELETEXT,
-       .hardware = VID_HARDWARE_BT848,
        .fops     = &bttv_fops,
        .minor    = -1,
 };
 {
        .name     = "bt848/878 radio",
        .type     = VID_TYPE_TUNER,
-       .hardware = VID_HARDWARE_BT848,
        .fops     = &radio_fops,
        .minor    = -1,
 };
 
        .owner          = THIS_MODULE,
        .name           = "Connectix Quickcam",
        .type           = VID_TYPE_CAPTURE,
-       .hardware       = VID_HARDWARE_QCAM_BW,
        .fops           = &qcam_fops,
 };
 
 
        .owner          = THIS_MODULE,
        .name           = "Colour QuickCam",
        .type           = VID_TYPE_CAPTURE,
-       .hardware       = VID_HARDWARE_QCAM_C,
        .fops           = &qcam_fops,
 };
 
 
 
 #define ABOUT "V4L-Driver for Vision CPiA based cameras"
 
-#ifndef VID_HARDWARE_CPIA
-#define VID_HARDWARE_CPIA 24    /* FIXME -> from linux/videodev.h */
-#endif
-
 #define CPIA_MODULE_CPIA                       (0<<5)
 #define CPIA_MODULE_SYSTEM                     (1<<5)
 #define CPIA_MODULE_VP_CTRL                    (5<<5)
        .owner          = THIS_MODULE,
        .name           = "CPiA Camera",
        .type           = VID_TYPE_CAPTURE,
-       .hardware       = VID_HARDWARE_CPIA,
        .fops           = &cpia_fops,
 };
 
 
 
 #define ABOUT "V4L-Driver for Vision CPiA2 based cameras"
 
-#ifndef VID_HARDWARE_CPIA2
-#error "VID_HARDWARE_CPIA2 should have been defined in linux/videodev.h"
-#endif
-
 struct control_menu_info {
        int value;
        char name[32];
        .type=          VID_TYPE_CAPTURE,
        .type2 =        V4L2_CAP_VIDEO_CAPTURE |
                        V4L2_CAP_STREAMING,
-       .hardware=      VID_HARDWARE_CPIA2,
        .minor=         -1,
        .fops=          &fops_template,
        .release=       video_device_release,
 
 {
        .name                 = "cx8800-radio",
        .type                 = VID_TYPE_TUNER,
-       .hardware             = 0,
        .fops                 = &radio_fops,
        .minor                = -1,
        .vidioc_querycap      = radio_querycap,
 
 
        /* Fills VBI device info */
        dev->vbi_dev->type = VFL_TYPE_VBI;
-       dev->vbi_dev->hardware = 0;
        dev->vbi_dev->fops = &em28xx_v4l_fops;
        dev->vbi_dev->minor = -1;
        dev->vbi_dev->dev = &dev->udev->dev;
        dev->vdev->type = VID_TYPE_CAPTURE;
        if (dev->has_tuner)
                dev->vdev->type |= VID_TYPE_TUNER;
-       dev->vdev->hardware = 0;
        dev->vdev->fops = &em28xx_v4l_fops;
        dev->vdev->minor = -1;
        dev->vdev->dev = &dev->udev->dev;
 
        strcpy(cam->v4ldev->name, "ET61X[12]51 PC Camera");
        cam->v4ldev->owner = THIS_MODULE;
        cam->v4ldev->type = VID_TYPE_CAPTURE | VID_TYPE_SCALES;
-       cam->v4ldev->hardware = 0;
        cam->v4ldev->fops = &et61x251_fops;
        cam->v4ldev->minor = video_nr[dev_nr];
        cam->v4ldev->release = video_device_release;
 
        .owner          = THIS_MODULE,
        .name           = "meye",
        .type           = VID_TYPE_CAPTURE,
-       .hardware       = VID_HARDWARE_MEYE,
        .fops           = &meye_fops,
        .release        = video_device_release,
        .minor          = -1,
 
        .owner =        THIS_MODULE,
        .name =         "OV511 USB Camera",
        .type =         VID_TYPE_CAPTURE,
-       .hardware =     VID_HARDWARE_OV511,
        .fops =         &ov511_fops,
        .release =      video_device_release,
        .minor =        -1,
 
        .owner          = THIS_MODULE,
        .name           = PLANB_DEVICE_NAME,
        .type           = VID_TYPE_OVERLAY,
-       .hardware       = VID_HARDWARE_PLANB,
        .open           = planb_open,
        .close          = planb_close,
        .read           = planb_read,
 
        .owner          = THIS_MODULE,
        .name           = "Mediavision PMS",
        .type           = VID_TYPE_CAPTURE,
-       .hardware       = VID_HARDWARE_PMS,
        .fops           = &pms_fops,
 };
 
 
 };
 
 
-#define VID_HARDWARE_PVRUSB2    38  /* FIXME : need a good value */
-
 static struct video_device vdev_template = {
        .owner      = THIS_MODULE,
        .type       = VID_TYPE_CAPTURE | VID_TYPE_TUNER,
        .type2      = (V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_VBI_CAPTURE
                       | V4L2_CAP_TUNER | V4L2_CAP_AUDIO
                       | V4L2_CAP_READWRITE),
-       .hardware   = VID_HARDWARE_PVRUSB2,
        .fops       = &vdev_fops,
 };
 
 
        .owner =        THIS_MODULE,
        .name =         "Philips Webcam",       /* Filled in later */
        .type =         VID_TYPE_CAPTURE,
-       .hardware =     VID_HARDWARE_PWC,
        .release =      video_device_release,
        .fops =         &pwc_fops,
        .minor =        -1,
 
        .name          = "saa7134-empress",
        .type          = 0 /* FIXME */,
        .type2         = 0 /* FIXME */,
-       .hardware      = 0,
        .fops          = &ts_fops,
        .minor         = -1,
 };
 
        .name          = "saa7134-video",
        .type          = VID_TYPE_CAPTURE|VID_TYPE_TUNER|
                         VID_TYPE_CLIPPING|VID_TYPE_SCALES,
-       .hardware      = 0,
        .fops          = &video_fops,
        .minor         = -1,
 };
 {
        .name          = "saa7134-vbi",
        .type          = VID_TYPE_TUNER|VID_TYPE_TELETEXT,
-       .hardware      = 0,
        .fops          = &video_fops,
        .minor         = -1,
 };
 {
        .name          = "saa7134-radio",
        .type          = VID_TYPE_TUNER,
-       .hardware      = 0,
        .fops          = &radio_fops,
        .minor         = -1,
 };
 
        .owner =        THIS_MODULE,
        .name =         "se401 USB camera",
        .type =         VID_TYPE_CAPTURE,
-       .hardware =     VID_HARDWARE_SE401,
        .fops =         &se401_fops,
 };
 
 
        strcpy(cam->v4ldev->name, "SN9C1xx PC Camera");
        cam->v4ldev->owner = THIS_MODULE;
        cam->v4ldev->type = VID_TYPE_CAPTURE | VID_TYPE_SCALES;
-       cam->v4ldev->hardware = 0;
        cam->v4ldev->fops = &sn9c102_fops;
        cam->v4ldev->minor = video_nr[dev_nr];
        cam->v4ldev->release = video_device_release;
 
 static struct video_device saa_template = {
        .name = "SAA7146A",
        .type = VID_TYPE_CAPTURE | VID_TYPE_OVERLAY,
-       .hardware = VID_HARDWARE_SAA7146,
        .fops = &saa_fops,
        .minor = -1,
 };
 
        .owner =        THIS_MODULE,
        .name =         "STV0680 USB camera",
        .type =         VID_TYPE_CAPTURE,
-       .hardware =     VID_HARDWARE_SE401,
        .fops =         &stv680_fops,
        .release =      video_device_release,
        .minor =        -1,
 
 static const struct video_device usbvideo_template = {
        .owner =      THIS_MODULE,
        .type =       VID_TYPE_CAPTURE,
-       .hardware =   VID_HARDWARE_CPIA,
        .fops =       &usbvideo_fops,
 };
 
 
        .owner          = THIS_MODULE,
        .name           = "ViCam-based USB Camera",
        .type           = VID_TYPE_CAPTURE,
-       .hardware       = VID_HARDWARE_VICAM,
        .fops           = &vicam_fops,
        .minor          = -1,
 };
 
 static struct video_device usbvision_video_template = {
        .owner             = THIS_MODULE,
        .type           = VID_TYPE_TUNER | VID_TYPE_CAPTURE,
-       .hardware       = VID_HARDWARE_USBVISION,
        .fops           = &usbvision_fops,
        .name           = "usbvision-video",
        .release        = video_device_release,
 {
        .owner             = THIS_MODULE,
        .type           = VID_TYPE_TUNER,
-       .hardware       = VID_HARDWARE_USBVISION,
        .fops           = &usbvision_radio_fops,
        .name           = "usbvision-radio",
        .release        = video_device_release,
 {
        .owner             = THIS_MODULE,
        .type           = VID_TYPE_TUNER,
-       .hardware       = VID_HARDWARE_USBVISION,
        .fops           = &usbvision_vbi_fops,
        .release        = video_device_release,
        .name           = "usbvision-vbi",
 
        }
 
        dprintk(2,
-               "videocodec_attach: '%s', type: %x, flags %lx, magic %lx\n",
-               master->name, master->type, master->flags, master->magic);
+               "videocodec_attach: '%s', flags %lx, magic %lx\n",
+               master->name, master->flags, master->magic);
 
        if (!h) {
                dprintk(1,
 
 static struct video_device vivi = {
        .name           = "vivi",
        .type           = VID_TYPE_CAPTURE,
-       .hardware       = 0,
        .fops           = &vivi_fops,
        .minor          = -1,
 //     .release        = video_device_release,
 
        .owner          = THIS_MODULE,
        .name           = W9966_DRIVERNAME,
        .type           = VID_TYPE_CAPTURE | VID_TYPE_SCALES,
-       .hardware       = VID_HARDWARE_W9966,
        .fops           = &w9966_fops,
 };
 
 
        strcpy(cam->v4ldev->name, symbolic(camlist, mod_id));
        cam->v4ldev->owner = THIS_MODULE;
        cam->v4ldev->type = VID_TYPE_CAPTURE | VID_TYPE_SCALES;
-       cam->v4ldev->hardware = VID_HARDWARE_W9968CF;
        cam->v4ldev->fops = &w9968cf_fops;
        cam->v4ldev->minor = video_nr[dev_nr];
        cam->v4ldev->release = video_device_release;
 
        strcpy(cam->v4ldev->name, "ZC0301[P] PC Camera");
        cam->v4ldev->owner = THIS_MODULE;
        cam->v4ldev->type = VID_TYPE_CAPTURE | VID_TYPE_SCALES;
-       cam->v4ldev->hardware = 0;
        cam->v4ldev->fops = &zc0301_fops;
        cam->v4ldev->minor = video_nr[dev_nr];
        cam->v4ldev->release = video_device_release;
 
                return m;
        }
 
-       m->magic = 0L; /* magic not used */
-       m->type = VID_HARDWARE_ZR36067;
+       /* magic and type are unused for master struct. Makes sense only at
+          codec structs.
+          In the past, .type were initialized to the old V4L1 .hardware
+          value, as VID_HARDWARE_ZR36067
+        */
+       m->magic = 0L;
+       m->type = 0;
+
        m->flags = CODEC_FLAG_ENCODER | CODEC_FLAG_DECODER;
        strncpy(m->name, ZR_DEVNAME(zr), sizeof(m->name));
        m->data = zr;
 
 
 #include <linux/spinlock.h>
 #define     MAP_NR(x)       virt_to_page(x)
-#define     ZORAN_HARDWARE  VID_HARDWARE_ZR36067
 #define     ZORAN_VID_TYPE  ( \
                                VID_TYPE_CAPTURE | \
                                VID_TYPE_OVERLAY | \
 #ifdef CONFIG_VIDEO_V4L2
        .type2 = ZORAN_V4L2_VID_FLAGS,
 #endif
-       .hardware = ZORAN_HARDWARE,
        .fops = &zoran_fops,
        .release = &zoran_vdev_release,
        .minor = -1
 
 #define VID_PLAY_RESET                 13
 #define VID_PLAY_END_MARK              14
 
-
-
-#define VID_HARDWARE_BT848     1
-#define VID_HARDWARE_QCAM_BW   2
-#define VID_HARDWARE_PMS       3
-#define VID_HARDWARE_QCAM_C    4
-#define VID_HARDWARE_PSEUDO    5
-#define VID_HARDWARE_SAA5249   6
-#define VID_HARDWARE_AZTECH    7
-#define VID_HARDWARE_SF16MI    8
-#define VID_HARDWARE_RTRACK    9
-#define VID_HARDWARE_ZOLTRIX   10
-#define VID_HARDWARE_SAA7146    11
-#define VID_HARDWARE_VIDEUM    12      /* Reserved for Winnov videum */
-#define VID_HARDWARE_RTRACK2   13
-#define VID_HARDWARE_PERMEDIA2 14      /* Reserved for Permedia2 */
-#define VID_HARDWARE_RIVA128   15      /* Reserved for RIVA 128 */
-#define VID_HARDWARE_PLANB     16      /* PowerMac motherboard video-in */
-#define VID_HARDWARE_BROADWAY  17      /* Broadway project */
-#define VID_HARDWARE_GEMTEK    18
-#define VID_HARDWARE_TYPHOON   19
-#define VID_HARDWARE_VINO      20      /* SGI Indy Vino */
-#define VID_HARDWARE_CADET     21      /* Cadet radio */
-#define VID_HARDWARE_TRUST     22      /* Trust FM Radio */
-#define VID_HARDWARE_TERRATEC  23      /* TerraTec ActiveRadio */
-#define VID_HARDWARE_CPIA      24
-#define VID_HARDWARE_ZR36120   25      /* Zoran ZR36120/ZR36125 */
-#define VID_HARDWARE_ZR36067   26      /* Zoran ZR36067/36060 */
-#define VID_HARDWARE_OV511     27
-#define VID_HARDWARE_ZR356700  28      /* Zoran 36700 series */
-#define VID_HARDWARE_W9966     29
-#define VID_HARDWARE_SE401     30      /* SE401 USB webcams */
-#define VID_HARDWARE_PWC       31      /* Philips webcams */
-#define VID_HARDWARE_MEYE      32      /* Sony Vaio MotionEye cameras */
-#define VID_HARDWARE_CPIA2     33
-#define VID_HARDWARE_VICAM      34
-#define VID_HARDWARE_SF16FMR2  35
-#define VID_HARDWARE_W9968CF   36
-#define VID_HARDWARE_SAA7114H   37
-#define VID_HARDWARE_SN9C102   38
-#define VID_HARDWARE_ARV       39
-
 #endif /* CONFIG_VIDEO_V4L1_COMPAT */
 
 #endif /* __LINUX_VIDEODEV_H */
 
        char name[32];
        int type;       /* v4l1 */
        int type2;      /* v4l2 */
-       int hardware;
        int minor;
 
        int debug;      /* Activates debug level*/
 
        tea->vd.owner = tea->card->module;
        strcpy(tea->vd.name, tea->tea5759 ? "TEA5759 radio" : "TEA5757 radio");
        tea->vd.type = VID_TYPE_TUNER;
-       tea->vd.hardware = VID_HARDWARE_RTRACK; /* FIXME: assign new number */
        tea->vd.release = snd_tea575x_release;
        video_set_drvdata(&tea->vd, tea);
        tea->vd.fops = &tea->fops;