http://linuxtv.org/hg/v4l-dvb/rev/698119141230 and other CI-stuff seems to 
break saa7113 capture 
with xawtv (says driver refuses to capture) on at least KNC1 dvb-c plus, can 
anyone confirm this?

1. weird reset/Vcc control code:

/* GPIO Connections:
 * 0 - Vcc/(#)Reset(?) (Reset is controlled by capacitor). Resets the frontend 
(and the saa7113?) *AS WELL*!

static int ciintf_slot_reset(struct dvb_ca_en50221 *ca, int slot)
{
        struct budget_av *budget_av = (struct budget_av *) ca->data;
        struct saa7146_dev *saa = budget_av->budget.dev;

        if (slot != 0)
                return -EINVAL;

        dprintk(1, "ciintf_slot_reset\n");
        budget_av->slot_status = SLOTSTATUS_RESET;

        saa7146_setgpio(saa, 2, SAA7146_GPIO_OUTHI); /* disable card */

        saa7146_setgpio(saa, 0, SAA7146_GPIO_OUTHI); /* Vcc off */
        msleep(2);
        saa7146_setgpio(saa, 0, SAA7146_GPIO_OUTLO); /* Vcc on */
        msleep(20); /* 20 ms Vcc settling time */

        saa7146_setgpio(saa, 2, SAA7146_GPIO_OUTLO); /* enable card */
        ttpci_budget_set_video_port(saa, BUDGET_VIDEO_PORTB);
        msleep(20);


static int ciintf_slot_ts_enable(struct dvb_ca_en50221 *ca, int slot)
{
...
        ttpci_budget_set_video_port(saa, BUDGET_VIDEO_PORTA);

(Q: to what saa7146 video port is the saa7113 output connected?)

static int ciintf_init(struct budget_av *budget_av)
{
        struct saa7146_dev *saa = budget_av->budget.dev;
        int result;

        memset(&budget_av->ca, 0, sizeof(struct dvb_ca_en50221));

        saa7146_setgpio(saa, 0, SAA7146_GPIO_OUTLO);
        saa7146_setgpio(saa, 1, SAA7146_GPIO_OUTLO);
        saa7146_setgpio(saa, 2, SAA7146_GPIO_OUTLO);
        saa7146_setgpio(saa, 3, SAA7146_GPIO_OUTLO);

static void ciintf_deinit(struct budget_av *budget_av)
{
        struct saa7146_dev *saa = budget_av->budget.dev;

        saa7146_setgpio(saa, 0, SAA7146_GPIO_INPUT);
        saa7146_setgpio(saa, 1, SAA7146_GPIO_INPUT);
        saa7146_setgpio(saa, 2, SAA7146_GPIO_INPUT);
        saa7146_setgpio(saa, 3, SAA7146_GPIO_INPUT);

(Q: why is all that CI and tuner frontend (which budget card has got a analogtv 
demod?) 
code in the budget__AV__ module ?
pls move it to budget__CI__  and budget modules, and have the budget_av/_ci 
modules 
detected there and loaded and utilized *if* needed and clean up saa7113 
interfering detection code, thx)



will surely kill:

static int saa7113_init(struct budget_av *budget_av)
{
        struct budget *budget = &budget_av->budget;
        struct saa7146_dev *saa = budget->dev;
        const u8 *data = saa7113_tab;

        saa7146_setgpio(saa, 0, SAA7146_GPIO_OUTHI);
        msleep(200);

and further:

                if ((err = saa7146_register_device(&budget_av->vd, dev, "knc1", 
VFL_TYPE_GRABBER))) {

static struct v4l2_input knc1_inputs[KNC1_INPUTS] = {
        {0, "Composite", V4L2_INPUT_TYPE_TUNER, 1, 0, V4L2_STD_PAL_BG | 
V4L2_STD_NTSC_M, 0},
        {1, "S-Video", V4L2_INPUT_TYPE_CAMERA, 2, 0, V4L2_STD_PAL_BG | 
V4L2_STD_NTSC_M, 0},
};

grabber device setup with no capture and format ioctls

static struct saa7146_extension_ioctls ioctls[] = {
        {VIDIOC_ENUMINPUT, SAA7146_EXCLUSIVE},
        {VIDIOC_G_INPUT, SAA7146_EXCLUSIVE},
        {VIDIOC_S_INPUT, SAA7146_EXCLUSIVE},
        {0, 0}
};

and no capture caps:

static struct saa7146_ext_vv vv_data = {
        .inputs = 2,
        .capabilities = 0,      // perhaps later: V4L2_CAP_VBI_CAPTURE, but 
that need tweaking with the saa7113

(Q: what tweaking? -> av7110_v4l.c...)

so no grabbing from the saa7113 at all? is this untried draft code? nobody 
using it?

then I will see if this proves saa7146 GPIO issues from CI code:

--- budget-av.c.org     2007-10-12 18:43:44.000000000 +0200
+++ budget-av.c 2007-12-02 21:35:05.000000000 +0100
@@ -1160,7 +1160,7 @@

        budget_av->budget.dvb_adapter.priv = budget_av;
        frontend_init(budget_av);
-       ciintf_init(budget_av);
+//     ciintf_init(budget_av);

        ttpci_budget_init_hooks(&budget_av->budget);





_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

Reply via email to