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@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb