[lkml]   [2006]   [May]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectStradis driver conflicts with all other SAA7146 drivers

    [Nathan Laredo is the maintainer of the stradis driver but Jiri Slaby
    submitted the PCI probing change that went into 2.6.16 so I'm Cc-ing
    him too. I'm not a member of the video4linux mailing list so please
    Cc me on any responses.]

    The stradis driver in the 2.6.16 kernel only looks at the SAA7146
    vendor and product ID and binds to any SAA7146 based device even if it
    is not a stradis card. This stops all other SAA7146 drivers from
    working, for example my WinTV Nova-T card using the budget-ci driver
    doesn't work any longer. A lot of other people have also been bitten
    by this.

    So could you please modify your driver so that it only binds to real
    stradis cards? If stradis cards have a subvendor and subdevice ID you
    could just modify the pci_device_id table to look something like this:

    static struct pci_device_id stradis_pci_tbl[] = {
    .vendor = PCI_VENDOR_ID_PHILIPS,
    .device = PCI_DEVICE_ID_PHILIPS_SAA7146,
    .subvendor = 0xdead,
    .subdevice = 0xbeef,
    { 0 }

    From the code it looks as if some boards don't have a good subsystem
    vendor and device ID:

    if (!pdev->subsystem_vendor)
    dev_info(&pdev->dev, "%d: rev1 decoder\n", saa_num);
    dev_info(&pdev->dev, "%d: SDM2xx found\n", saa_num);

    Are those rev1 boards out in the real world or are they just
    prototypes? If they are prototypes, can you add the subvendor ID
    anway and add a module parameter so that your driver only binds to
    unspecified vendor IDs if you use that module parameter? Something
    like this:

    static int bind_to_anything = 0;
    module_param(bind_to_anything, int, 0);

    int __init stradis_init(void)
    if (bind_to_anything) {
    stradis_pci_tbl[0].subvendor = PCI_ANY_ID;
    stradis_pci_tbl[0].subdevice = PCI_ANY_ID;

    For anyone submitting a new SAA7146 driver to the kernel in the
    future, please be aware that your card isn't the only one that uses
    that chip, so always add a subvendor/subdevice to your drivers.


    "Just how much can I get away with and still go to heaven?"

    Freelance consultant specializing in device driver programming for Linux
    Christer Weinigel <>
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2006-05-28 14:38    [W:0.021 / U:20.512 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site