Name   CX2341X_ENC_SET_OUTPUT_PORT
 Enum   187/0xBB
 Description
-       Assign stream output port (not recommended you change setting from default)
+       Assign stream output port. Normally 0 when the data is copied through
+       the PCI bus (DMA), and 1 when the data is streamed to another chip
+       (pvrusb and cx88-blackbird).
 Param[0]
        0=Memory (default)
        1=Streaming
        2=Serial
+Param[1]
+       Unknown, but leaving this to 0 seems to work best. Indications are that
+       this might have to do with USB support, although passing anything but 0
+       onl breaks things.
 
 -------------------------------------------------------------------------------
 
 
 {
        static struct cx2341x_mpeg_params default_params = {
        /* misc */
+       .port = CX2341X_PORT_MEMORY,
        .width = 720,
        .height = 480,
        .is_50hz = 0,
 
        int err = 0;
 
-       cx2341x_api(priv, func, CX2341X_ENC_SET_OUTPUT_PORT, 1, 0);     /* 0 = Memory */
+       cx2341x_api(priv, func, CX2341X_ENC_SET_OUTPUT_PORT, 2, new->port, 0);
 
        if (old == NULL || old->is_50hz != new->is_50hz) {
                err = cx2341x_api(priv, func, CX2341X_ENC_SET_FRAME_RATE, 1, new->is_50hz);
 
        dev->width = 720;
        dev->height = 576;
        cx2341x_fill_defaults(&dev->params);
+       dev->params.port = CX2341X_PORT_STREAMING;
 
        switch (core->board) {
        case CX88_BOARD_HAUPPAUGE_ROSLYN:
 
 #ifndef CX2341X_H
 #define CX2341X_H
 
+enum cx2341x_port {
+       CX2341X_PORT_MEMORY,
+       CX2341X_PORT_STREAMING,
+       CX2341X_PORT_SERIAL
+};
+
 struct cx2341x_mpeg_params {
        /* misc */
+       enum cx2341x_port port;
        u16 width;
        u16 height;
        u16 is_50hz;