From 70d288fdf716edb1f569befe5ceef44b50c992b8 Mon Sep 17 00:00:00 2001 From: sonic Date: Sun, 27 Jan 2013 15:35:44 +0000 Subject: [PATCH] Use new PCI API git-svn-id: https://svn.aros.org/svn/aros/trunk/AROS@46404 fb15a70f-31f2-0310-bbcc-cdcc74a49acc --- workbench/devs/networks/rtl8169/rtl8169.c | 7 +++---- workbench/devs/networks/rtl8169/unit.c | 9 +++++++++ 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/workbench/devs/networks/rtl8169/rtl8169.c b/workbench/devs/networks/rtl8169/rtl8169.c index 7c453ed7e5..10116b8b1f 100644 --- a/workbench/devs/networks/rtl8169/rtl8169.c +++ b/workbench/devs/networks/rtl8169/rtl8169.c @@ -941,8 +941,8 @@ static int request_irq(struct net_device *unit) if (!unit->rtl8169u_IntsAdded) { - AddIntServer(INTB_KERNEL + unit->rtl8169u_IRQ, - &unit->rtl8169u_irqhandler); + if (!HIDD_PCIDevice_AddInterrupt(unit->rtl8169u_PCIDevice, &unit->rtl8169u_irqhandler)) + return 1; AddIntServer(INTB_VERTB, &unit->rtl8169u_touthandler); unit->rtl8169u_IntsAdded = TRUE; } @@ -954,8 +954,7 @@ static void free_irq(struct net_device *unit) { if (unit->rtl8169u_IntsAdded) { - RemIntServer(INTB_KERNEL + unit->rtl8169u_IRQ, - &unit->rtl8169u_irqhandler); + HIDD_PCIDevice_RemoveInterrupt(unit->rtl8169u_PCIDevice, &unit->rtl8169u_irqhandler); RemIntServer(INTB_VERTB, &unit->rtl8169u_touthandler); unit->rtl8169u_IntsAdded = FALSE; } diff --git a/workbench/devs/networks/rtl8169/unit.c b/workbench/devs/networks/rtl8169/unit.c index 4c6c469c7a..41adca7ce8 100644 --- a/workbench/devs/networks/rtl8169/unit.c +++ b/workbench/devs/networks/rtl8169/unit.c @@ -1149,6 +1149,14 @@ struct RTL8169Unit *CreateUnit(struct RTL8169Base *RTL8169DeviceBase, OOP_Object mmioerror = TRUE; } + if ((!mmioerror) && + HIDD_PCIDevice_Obtain(pciDevice, + RTL8169DeviceBase->rtl8169b_Device.dd_Library.lib_Node.ln_Name)) + { + RTLD(bug("[%s] CreateUnit: Device is already owned\n", unit->rtl8169u_name)) + mmioerror = TRUE; + } + if (mmioerror) { FreeMem(unit->rtl8169u_name, 8 + (unit->rtl8169u_UnitNum/10) + 2); @@ -1313,6 +1321,7 @@ void DeleteUnit(struct RTL8169Base *RTL8169DeviceBase, struct RTL8169Unit *Unit) Unit->rtl8169u_SizeMem); } + HIDD_PCIDevice_Release(Unit->rtl8169u_PCIDevice); FreeMem(Unit, sizeof(struct RTL8169Unit)); } } -- 2.11.4.GIT