return ret;
 }
+
+#define TS_MPEG_PKT_SIZE       188
+#define EP_LOW                 21
+#define TS_BUFFER_SIZE_PID     (EP_LOW*TS_MPEG_PKT_SIZE)
+#define EP_HIGH                        348
+#define TS_BUFFER_SIZE_MAX     (EP_HIGH*TS_MPEG_PKT_SIZE)
+
 static int it913x_identify_state(struct usb_device *udev,
                struct dvb_usb_device_properties *props,
                struct dvb_usb_device_description **desc,
        info("Dual mode=%x Remote=%x Tuner Type=%x", it913x_config.dual_mode
                , remote, it913x_config.tuner_id_0);
 
+       /* Select Stream Buffer Size */
+       if (pid_filter)
+               props->adapter[0].fe[0].stream.u.bulk.buffersize =
+                       TS_BUFFER_SIZE_MAX;
+       else
+               props->adapter[0].fe[0].stream.u.bulk.buffersize =
+                       TS_BUFFER_SIZE_PID;
+       if (it913x_config.dual_mode)
+               props->adapter[1].fe[0].stream.u.bulk.buffersize =
+                       props->adapter[0].fe[0].stream.u.bulk.buffersize;
+
        if (firm_no > 0) {
                *cold = 0;
                return 0;
        struct usb_device *udev = adap->dev->udev;
        int ret = 0;
        u8 adap_addr = I2C_BASE_ADDR + (adap->id << 5);
-       u16 ep_size = adap->props.fe[0].stream.u.bulk.buffersize;
+       u16 ep_size = adap->props.fe[0].stream.u.bulk.buffersize / 4;
        u8 pkt_size = 0x80;
 
        if (adap->dev->udev->speed != USB_SPEED_HIGH)
                                .endpoint = 0x04,
                                .u = {/* Keep Low if PID filter on */
                                        .bulk = {
-                                               .buffersize = 3584,
-
+                                       .buffersize =
+                                               TS_BUFFER_SIZE_PID,
                                        }
                                }
                        }
                                .endpoint = 0x05,
                                .u = {
                                        .bulk = {
-                                               .buffersize = 3584,
-
+                                               .buffersize =
+                                                       TS_BUFFER_SIZE_PID,
                                        }
                                }
                        }