int is_pal = !(state->std & V4L2_STD_525_60);
        int i;
 
-       memset(svbi, 0, sizeof(*svbi));
+       memset(svbi->service_lines, 0, sizeof(svbi->service_lines));
+       svbi->service_set = 0;
        /* we're done if raw VBI is active */
        if ((cx25840_read(client, 0x404) & 0x10) == 0)
                return 0;
 
        };
        int i;
 
-       memset(sliced, 0, sizeof(*sliced));
+       memset(sliced->service_lines, 0, sizeof(sliced->service_lines));
+       sliced->service_set = 0;
        /* done if using raw VBI */
        if (saa711x_read(sd, R_80_GLOBAL_CNTL_1) & 0x10)
                return 0;
 
 {
        struct saa7127_state *state = to_state(sd);
 
-       memset(fmt, 0, sizeof(*fmt));
+       memset(fmt->service_lines, 0, sizeof(fmt->service_lines));
        if (state->vps_enable)
                fmt->service_lines[0][16] = V4L2_SLICED_VPS;
        if (state->wss_enable)
 
 {
        int i, mask = 0;
 
-       memset(svbi, 0, sizeof(*svbi));
+       memset(svbi->service_lines, 0, sizeof(svbi->service_lines));
 
        for (i = 0; i <= 23; i++) {
                svbi->service_lines[0][i] =
 
        int is_pal = !(state->std & V4L2_STD_525_60);
        int i;
 
-       memset(svbi, 0, sizeof(*svbi));
+       memset(svbi->service_lines, 0, sizeof(svbi->service_lines));
+       svbi->service_set = 0;
+
        /* we're done if raw VBI is active */
        if ((cx18_av_read(cx, 0x404) & 0x10) == 0)
                return 0;
 
        if (v4l2_subdev_call(cx->sd_av, vbi, g_sliced_fmt, &fmt->fmt.sliced))
                return -EINVAL;
 
-       /* Ensure V4L2 spec compliant output */
-       vbifmt->reserved[0] = 0;
-       vbifmt->reserved[1] = 0;
-       vbifmt->io_size = sizeof(struct v4l2_sliced_vbi_data) * 36;
        vbifmt->service_set = cx18_get_service_set(vbifmt);
        return 0;
 }
 
        if (!(itv->v4l2_cap & V4L2_CAP_SLICED_VBI_OUTPUT))
                return -EINVAL;
        vbifmt->io_size = sizeof(struct v4l2_sliced_vbi_data) * 36;
+       memset(vbifmt->service_lines, 0, sizeof(vbifmt->service_lines));
        if (itv->is_60hz) {
                vbifmt->service_lines[0][21] = V4L2_SLICED_CAPTION_525;
                vbifmt->service_lines[1][21] = V4L2_SLICED_CAPTION_525;