lkml.org 
[lkml]   [2007]   [Apr]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH] sworks-agp: Switch to PCI ref counting APIs
    Signed-off-by: Alan Cox <alan@redhat.com>

    diff -u --new-file --recursive --exclude-from /usr/src/exclude linux.vanilla-2.6.21-rc6-mm1/drivers/char/agp/sworks-agp.c linux-2.6.21-rc6-mm1/drivers/char/agp/sworks-agp.c
    --- linux.vanilla-2.6.21-rc6-mm1/drivers/char/agp/sworks-agp.c 2007-04-12 14:15:03.000000000 +0100
    +++ linux-2.6.21-rc6-mm1/drivers/char/agp/sworks-agp.c 2007-04-23 11:58:02.342524528 +0100
    @@ -455,15 +455,6 @@
    u32 temp, temp2;
    u8 cap_ptr = 0;

    - /* Everything is on func 1 here so we are hardcoding function one */
    - bridge_dev = pci_find_slot((unsigned int)pdev->bus->number,
    - PCI_DEVFN(0, 1));
    - if (!bridge_dev) {
    - printk(KERN_INFO PFX "Detected a Serverworks chipset "
    - "but could not find the secondary device.\n");
    - return -ENODEV;
    - }
    -
    cap_ptr = pci_find_capability(pdev, PCI_CAP_ID_AGP);

    switch (pdev->device) {
    @@ -483,6 +474,15 @@
    return -ENODEV;
    }

    + /* Everything is on func 1 here so we are hardcoding function one */
    + bridge_dev = pci_get_bus_and_slot((unsigned int)pdev->bus->number,
    + PCI_DEVFN(0, 1));
    + if (!bridge_dev) {
    + printk(KERN_INFO PFX "Detected a Serverworks chipset "
    + "but could not find the secondary device.\n");
    + return -ENODEV;
    + }
    +
    serverworks_private.svrwrks_dev = bridge_dev;
    serverworks_private.gart_addr_ofs = 0x10;

    @@ -515,7 +515,7 @@

    bridge->driver = &sworks_driver;
    bridge->dev_private_data = &serverworks_private,
    - bridge->dev = pdev;
    + bridge->dev = pci_dev_get(pdev);

    pci_set_drvdata(pdev, bridge);
    return agp_add_bridge(bridge);
    @@ -525,8 +525,11 @@
    {
    struct agp_bridge_data *bridge = pci_get_drvdata(pdev);

    + pci_dev_put(bridge->dev);
    agp_remove_bridge(bridge);
    agp_put_bridge(bridge);
    + pci_dev_put(serverworks_private.svrwrks_dev)
    + serverworks_private.svrwrks_dev = NULL;
    }

    static struct pci_device_id agp_serverworks_pci_table[] = {
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/
    \
     
     \ /
      Last update: 2007-04-23 15:51    [W:0.022 / U:123.732 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site