From ebfd77396df765aca6f715c24040ac2b79d6d48c Mon Sep 17 00:00:00 2001 From: neil Date: Sat, 20 Oct 2012 05:52:33 +0000 Subject: [PATCH] - Made pciuhci.device and pciehci.device compile again: completed removal of irq.hidd and introduction of new interrupt macros, and removed rom from uselibs. - Fixed retrieval of PCI function number. git-svn-id: https://svn.aros.org/svn/aros/trunk/AROS@45932 fb15a70f-31f2-0310-bbcc-cdcc74a49acc --- rom/usb/pciusb/pci_aros.c | 2 +- rom/usb/pciusbhc/ehci/mmakefile.src | 2 +- rom/usb/pciusbhc/ehci/pciehci_hci.c | 3 ++- rom/usb/pciusbhc/ehci/pciehci_uhw.c | 3 ++- rom/usb/pciusbhc/ohci/pci.c | 2 +- rom/usb/pciusbhc/uhci/mmakefile.src | 2 +- rom/usb/pciusbhc/uhci/pci_aros.c | 15 +++------------ rom/usb/pciusbhc/uhci/pciuhci.h | 1 - rom/usb/pciusbhc/uhci/uhcichip.c | 20 +++++++++++--------- rom/usb/pciusbhc/uhci/uhwcmd.c | 6 ++++-- rom/usb/pciusbhc/uhci/uhwcmd.h | 4 +--- 11 files changed, 27 insertions(+), 33 deletions(-) diff --git a/rom/usb/pciusb/pci_aros.c b/rom/usb/pciusb/pci_aros.c index fbc2d5059a..2f0d990c1a 100644 --- a/rom/usb/pciusb/pci_aros.c +++ b/rom/usb/pciusb/pci_aros.c @@ -62,7 +62,7 @@ AROS_UFH3(void, pciEnumerator, OOP_GetAttr(pciDevice, aHidd_PCIDevice_Interface, &hcitype); OOP_GetAttr(pciDevice, aHidd_PCIDevice_Bus, &bus); OOP_GetAttr(pciDevice, aHidd_PCIDevice_Dev, &dev); - OOP_GetAttr(pciDevice, aHidd_PCIDevice_Dev, &sub); + OOP_GetAttr(pciDevice, aHidd_PCIDevice_Sub, &sub); OOP_GetAttr(pciDevice, aHidd_PCIDevice_INTLine, &intline); devid = (bus<<16)|dev; diff --git a/rom/usb/pciusbhc/ehci/mmakefile.src b/rom/usb/pciusbhc/ehci/mmakefile.src index f4148b433b..7386c76cf2 100644 --- a/rom/usb/pciusbhc/ehci/mmakefile.src +++ b/rom/usb/pciusbhc/ehci/mmakefile.src @@ -6,6 +6,6 @@ FILES := pciehci_init pciehci_dev pciehci_uhw pciehci_hci %build_module mmake=kernel-usb-pciehci \ modname=pciehci modtype=device \ files="$(FILES)" \ - uselibs="oop rom hiddstubs debug" + uselibs="oop hiddstubs debug" %common diff --git a/rom/usb/pciusbhc/ehci/pciehci_hci.c b/rom/usb/pciusbhc/ehci/pciehci_hci.c index d8d1b36c10..4e2f277fff 100644 --- a/rom/usb/pciusbhc/ehci/pciehci_hci.c +++ b/rom/usb/pciusbhc/ehci/pciehci_hci.c @@ -1,5 +1,5 @@ /* - Copyright © 2011, The AROS Development Team. All rights reserved + Copyright © 2011-2012, The AROS Development Team. All rights reserved. $Id$ */ @@ -148,5 +148,6 @@ void ehciUpdateIntTree(struct ehc_controller *ehc) { } BOOL ehciInit(struct ehc_controller *ehc, struct ehu_unit *ehu) { + return FALSE; } diff --git a/rom/usb/pciusbhc/ehci/pciehci_uhw.c b/rom/usb/pciusbhc/ehci/pciehci_uhw.c index 7a2f5018a8..4f857df3ee 100644 --- a/rom/usb/pciusbhc/ehci/pciehci_uhw.c +++ b/rom/usb/pciusbhc/ehci/pciehci_uhw.c @@ -1,5 +1,5 @@ /* - Copyright © 2011, The AROS Development Team. All rights reserved + Copyright © 2011-2012, The AROS Development Team. All rights reserved. $Id$ */ @@ -8,6 +8,7 @@ #include "pciehci_uhw.h" BOOL uhwOpenTimer(struct ehu_unit *ehu, LIBBASETYPEPTR LIBBASE) { + return FALSE; } void uhwDelayMS(ULONG milli, struct ehu_unit *ehu) { diff --git a/rom/usb/pciusbhc/ohci/pci.c b/rom/usb/pciusbhc/ohci/pci.c index d33eb6e908..d17f8c65bb 100644 --- a/rom/usb/pciusbhc/ohci/pci.c +++ b/rom/usb/pciusbhc/ohci/pci.c @@ -60,7 +60,7 @@ AROS_UFH3(void, pciEnumerator, OOP_GetAttr(pciDevice, aHidd_PCIDevice_Bus, &bus); OOP_GetAttr(pciDevice, aHidd_PCIDevice_Dev, &dev); - OOP_GetAttr(pciDevice, aHidd_PCIDevice_Dev, &sub); + OOP_GetAttr(pciDevice, aHidd_PCIDevice_Sub, &sub); OOP_GetAttr(pciDevice, aHidd_PCIDevice_INTLine, &intline); devid = (bus << 16) | dev; diff --git a/rom/usb/pciusbhc/uhci/mmakefile.src b/rom/usb/pciusbhc/uhci/mmakefile.src index 11877eeb55..48d4e5edad 100644 --- a/rom/usb/pciusbhc/uhci/mmakefile.src +++ b/rom/usb/pciusbhc/uhci/mmakefile.src @@ -7,6 +7,6 @@ FILES := pci_aros uhcichip dev uhwcmd modname=pciuhci modtype=device \ moduledir=Devs/USBHardware \ files="$(FILES)" \ - uselibs="oop rom hiddstubs debug" + uselibs="oop hiddstubs debug" %common diff --git a/rom/usb/pciusbhc/uhci/pci_aros.c b/rom/usb/pciusbhc/uhci/pci_aros.c index bc43cd1976..c831f7638d 100644 --- a/rom/usb/pciusbhc/uhci/pci_aros.c +++ b/rom/usb/pciusbhc/uhci/pci_aros.c @@ -47,7 +47,7 @@ AROS_UFH3(void, pciEnumerator, OOP_GetAttr(pciDevice, aHidd_PCIDevice_Interface, &hcitype); OOP_GetAttr(pciDevice, aHidd_PCIDevice_Bus, &bus); OOP_GetAttr(pciDevice, aHidd_PCIDevice_Dev, &dev); - OOP_GetAttr(pciDevice, aHidd_PCIDevice_Dev, &sub); + OOP_GetAttr(pciDevice, aHidd_PCIDevice_Sub, &sub); OOP_GetAttr(pciDevice, aHidd_PCIDevice_INTLine, &intline); devid = (bus<<16)|dev; @@ -98,11 +98,6 @@ BOOL pciInit(struct PCIDevice *hd) { NEWLIST(&hd->hd_TempHCIList); - if(!(hd->hd_IRQHidd = OOP_NewObject(NULL, (STRPTR) CLID_Hidd_IRQ, NULL))) { - KPRINTF(20, ("Unable to create IRQHidd object!\n")); - return FALSE; - } - if((hd->hd_PCIHidd = OOP_NewObject(NULL, (STRPTR) CLID_Hidd_PCI, NULL))) { struct TagItem tags[] = { { tHidd_PCI_Class, PCI_BASE_CLASS_SERIAL }, @@ -129,7 +124,6 @@ BOOL pciInit(struct PCIDevice *hd) { HIDD_PCI_EnumDevices(hd->hd_PCIHidd, &findHook, (struct TagItem *) &tags); } else { KPRINTF(20, ("Unable to create PCIHidd object!\n")); - OOP_DisposeObject(hd->hd_IRQHidd); return FALSE; } @@ -247,9 +241,9 @@ void pciFreeUnit(struct PCIUnit *hu) { while(hc->hc_Node.ln_Succ) { OOP_SetAttrs(hc->hc_PCIDeviceObject, (struct TagItem *) pciDeactivate); // deactivate busmaster and IO/Mem - if(hc->hc_PCIIntHandler.h_Node.ln_Name) { + if(hc->hc_PCIIntHandler.is_Node.ln_Name) { RemIntServer(INTB_KERNEL + hc->hc_PCIIntLine, &hc->hc_PCIIntHandler); - hc->hc_PCIIntHandler.h_Node.ln_Name = NULL; + hc->hc_PCIIntHandler.is_Node.ln_Name = NULL; } hc = (struct PCIController *) hc->hc_Node.ln_Succ; @@ -286,9 +280,6 @@ void pciExpunge(struct PCIDevice *hd) { OOP_DisposeObject(hd->hd_PCIHidd); } - if(hd->hd_IRQHidd) { - OOP_DisposeObject(hd->hd_IRQHidd); - } } APTR pciGetPhysical(struct PCIController *hc, APTR virtaddr) { diff --git a/rom/usb/pciusbhc/uhci/pciuhci.h b/rom/usb/pciusbhc/uhci/pciuhci.h index 0d560a6cb7..eddddd6c00 100644 --- a/rom/usb/pciusbhc/uhci/pciuhci.h +++ b/rom/usb/pciusbhc/uhci/pciuhci.h @@ -158,7 +158,6 @@ struct PCIDevice { struct List hd_TempHCIList; OOP_Object *hd_PCIHidd; - OOP_Object *hd_IRQHidd; OOP_AttrBase hd_HiddAB; OOP_AttrBase hd_HiddPCIDeviceAB; diff --git a/rom/usb/pciusbhc/uhci/uhcichip.c b/rom/usb/pciusbhc/uhci/uhcichip.c index 74bc738d69..a0ad5f2ad9 100644 --- a/rom/usb/pciusbhc/uhci/uhcichip.c +++ b/rom/usb/pciusbhc/uhci/uhcichip.c @@ -24,6 +24,8 @@ static AROS_INTH1(UhciResetHandler, struct PCIController *, hc) WRITEIO16_LE(hc->hc_RegBase, UHCI_USBCMD, 0); WRITEIO16_LE(hc->hc_RegBase, UHCI_USBINTEN, 0); + return FALSE; + AROS_INTFUNC_EXIT } @@ -930,7 +932,7 @@ static AROS_INTH1(uhciCompleteInt, struct PCIController *, hc) { KPRINTF(1, ("CompleteDone\n")); - return 0; + return FALSE; AROS_INTFUNC_EXIT } @@ -939,7 +941,7 @@ static AROS_INTH1(uhciIntCode, struct PCIController *, hc) { AROS_INTFUNC_INIT -// struct PCIDevice *base = hc->hc_Device; + struct PCIDevice *base = hc->hc_Device; UWORD intr; intr = READIO16_LE(hc->hc_RegBase, UHCI_USBSTATUS); @@ -952,16 +954,16 @@ static AROS_INTH1(uhciIntCode, struct PCIController *, hc) } if (!(hc->hc_Flags & HCF_ONLINE)) { - return; + return FALSE; } if(intr & (UHSF_USBINT|UHSF_USBERRORINT)) { - //SureCause(base, &hc->hc_CompleteInt); - uhciCompleteInt(hc); + SureCause(base, &hc->hc_CompleteInt); +// uhciCompleteInt(hc); } } - return 0; + return FALSE; AROS_INTFUNC_EXIT } @@ -1001,7 +1003,7 @@ BOOL uhciInit(struct PCIController *hc, struct PCIUnit *hu) { hc->hc_CompleteInt.is_Node.ln_Name = "UHCI CompleteInt"; hc->hc_CompleteInt.is_Node.ln_Pri = 0; hc->hc_CompleteInt.is_Data = hc; - hc->hc_CompleteInt.is_Code = uhciCompleteInt; + hc->hc_CompleteInt.is_Code = (VOID_FUNC)uhciCompleteInt; hc->hc_PCIMemSize = sizeof(ULONG) * UHCI_FRAMELIST_SIZE + UHCI_FRAMELIST_ALIGNMENT + 1; hc->hc_PCIMemSize += sizeof(struct UhciQH) * UHCI_QH_POOLSIZE; @@ -1174,7 +1176,7 @@ BOOL uhciInit(struct PCIController *hc, struct PCIUnit *hu) { WRITEIO16_LE(hc->hc_RegBase, UHCI_USBSTATUS, UHIF_TIMEOUTCRC|UHIF_INTONCOMPLETE|UHIF_SHORTPACKET); // install reset handler - hc->hc_ResetInt.is_Code = UhciResetHandler; + hc->hc_ResetInt.is_Code = (VOID_FUNC)UhciResetHandler; hc->hc_ResetInt.is_Data = hc; AddResetCallback(&hc->hc_ResetInt); @@ -1182,7 +1184,7 @@ BOOL uhciInit(struct PCIController *hc, struct PCIUnit *hu) { hc->hc_PCIIntHandler.is_Node.ln_Name = "UHCI PCI (pciuhci.device)"; hc->hc_PCIIntHandler.is_Node.ln_Pri = 5; hc->hc_PCIIntHandler.is_Node.ln_Type = NT_INTERRUPT; - hc->hc_PCIIntHandler.is_Code = uhciIntCode; + hc->hc_PCIIntHandler.is_Code = (VOID_FUNC)uhciIntCode; hc->hc_PCIIntHandler.is_Data = hc; AddIntServer(INTB_KERNEL + hc->hc_PCIIntLine, &hc->hc_PCIIntHandler); diff --git a/rom/usb/pciusbhc/uhci/uhwcmd.c b/rom/usb/pciusbhc/uhci/uhwcmd.c index c1f9a5a826..fadd9aae3f 100644 --- a/rom/usb/pciusbhc/uhci/uhwcmd.c +++ b/rom/usb/pciusbhc/uhci/uhwcmd.c @@ -50,7 +50,7 @@ void SureCause(struct PCIDevice *base, struct Interrupt *interrupt) interrupt->is_Node.ln_Type = NT_SOFTINT; Forbid(); // make sure code is not interrupted by other tasks Enable(); - AROS_INTH1(interrupt->is_Code, interrupt->is_Data); + AROS_INTC1(interrupt->is_Code, interrupt->is_Data); Disable(); Permit(); } while(interrupt->is_Node.ln_Type != NT_SOFTINT); @@ -167,7 +167,7 @@ struct Unit * Open_Unit(struct IOUsbHWReq *ioreq, unit->hu_NakTimeoutInt.is_Node.ln_Name = "PCI NakTimeout"; unit->hu_NakTimeoutInt.is_Node.ln_Pri = -16; unit->hu_NakTimeoutInt.is_Data = unit; - unit->hu_NakTimeoutInt.is_Code = uhwNakTimeoutInt; + unit->hu_NakTimeoutInt.is_Code = (VOID_FUNC)uhwNakTimeoutInt; CopyMem(unit->hu_TimerReq, &unit->hu_NakTimeoutReq, sizeof(struct timerequest)); unit->hu_NakTimeoutReq.tr_node.io_Message.mn_ReplyPort = &unit->hu_NakTimeoutMsgPort; @@ -1480,6 +1480,8 @@ AROS_INTH1(uhwNakTimeoutInt, struct PCIUnit *, unit) KPRINTF(1, ("Exit NakTimeoutInt(0x%p)\n", unit)); + return FALSE; + AROS_INTFUNC_EXIT } /* \\\ */ diff --git a/rom/usb/pciusbhc/uhci/uhwcmd.h b/rom/usb/pciusbhc/uhci/uhwcmd.h index 9f92359d79..c9304eccdd 100644 --- a/rom/usb/pciusbhc/uhci/uhwcmd.h +++ b/rom/usb/pciusbhc/uhci/uhwcmd.h @@ -37,8 +37,7 @@ BOOL cmdAbortIO(struct IOUsbHWReq *ioreq, struct PCIDevice *base); void TermIO(struct IOUsbHWReq *ioreq, struct PCIDevice *base); -AROS_UFP1(void, uhwNakTimeoutInt, - AROS_UFPA(struct PCIUnit *, unit, A1)); +AROS_INTP(uhwNakTimeoutInt); BOOL pciInit(struct PCIDevice *hd); void pciExpunge(struct PCIDevice *hd); @@ -55,7 +54,6 @@ void uhciScheduleCtrlTDs(struct PCIController *hc); void uhciScheduleIntTDs(struct PCIController *hc); void uhciScheduleBulkTDs(struct PCIController *hc); void uhciUpdateFrameCounter(struct PCIController *hc); -void uhciCompleteInt(struct PCIController *hc); BOOL uhciInit(struct PCIController *hc, struct PCIUnit *hu); void uhciFree(struct PCIController *hc, struct PCIUnit *hu); -- 2.11.4.GIT