Modify some pci_hal funcs, fix obvious errors in code
Modified: trunk/reactos/drivers/usb/cromwell/core/hcd-pci.c
Modified: trunk/reactos/drivers/usb/cromwell/host/ohci_main.h
Modified: trunk/reactos/drivers/usb/cromwell/linux/linux_wrapper.h
Modified: trunk/reactos/drivers/usb/cromwell/linux/pci_hal.c
Modified: trunk/reactos/drivers/usb/cromwell/uhci/uhci-hcd.c
Modified: trunk/reactos/drivers/usb/cromwell/uhci/uhci_main.c
_____
Modified: trunk/reactos/drivers/usb/cromwell/core/hcd-pci.c
--- trunk/reactos/drivers/usb/cromwell/core/hcd-pci.c 2005-05-20
21:33:49 UTC (rev 15438)
+++ trunk/reactos/drivers/usb/cromwell/core/hcd-pci.c 2005-05-20
21:43:57 UTC (rev 15439)
@@ -122,7 +122,7 @@
dbg ("no i/o regions available");
return -EBUSY;
}
- base = NULL; //(void *) resource; // this isn't possible
+ base = (void *) (ULONG_PTR)resource.u.LowPart;
}
// driver->start(), later on, will transfer device from
_____
Modified: trunk/reactos/drivers/usb/cromwell/host/ohci_main.h
--- trunk/reactos/drivers/usb/cromwell/host/ohci_main.h 2005-05-20
21:33:49 UTC (rev 15438)
+++ trunk/reactos/drivers/usb/cromwell/host/ohci_main.h 2005-05-20
21:43:57 UTC (rev 15439)
@@ -31,6 +31,7 @@
ULONG InterruptLevel;
PHYSICAL_ADDRESS BaseAddress;
ULONG BaseAddrLength;
+ ULONG Flags;
ULONG AdapterInterfaceType;
ULONG SystemIoBusNumber;
ULONG SystemIoSlotNumber;
_____
Modified: trunk/reactos/drivers/usb/cromwell/linux/linux_wrapper.h
--- trunk/reactos/drivers/usb/cromwell/linux/linux_wrapper.h
2005-05-20 21:33:49 UTC (rev 15438)
+++ trunk/reactos/drivers/usb/cromwell/linux/linux_wrapper.h
2005-05-20 21:43:57 UTC (rev 15439)
@@ -266,7 +266,7 @@
#define KERN_WARNING "WRN: "
#define KERN_INFO "INF: "
#define GFP_KERNEL 0
-#define GFP_ATOMIC 0
+#define GFP_ATOMIC 0x20
#define GFP_NOIO 0
#define SLAB_ATOMIC 0
#define PCI_ANY_ID (~0)
@@ -406,7 +406,7 @@
#define pci_pool_alloc(a,b,c) my_pci_pool_alloc(a,b,c)
-static void __inline__ *my_pci_pool_alloc(void* pool, size_t size,
+static void __inline__ *my_pci_pool_alloc(void* pool, size_t size,
dma_addr_t *dma_handle)
{
void* a;
@@ -479,8 +479,8 @@
#define PCI_DMA_FROMDEVICE
#define PCI_DMA_TODEVICE
-#define PCI_ROM_RESOURCE 0
-#define IORESOURCE_IO 1
+#define PCI_ROM_RESOURCE 1
+#define IORESOURCE_IO CM_RESOURCE_PORT_IO
#define DECLARE_WAITQUEUE(a,b) KEVENT a=0
#define init_waitqueue_head(a) my_init_waitqueue_head(a)
_____
Modified: trunk/reactos/drivers/usb/cromwell/linux/pci_hal.c
--- trunk/reactos/drivers/usb/cromwell/linux/pci_hal.c 2005-05-20
21:33:49 UTC (rev 15438)
+++ trunk/reactos/drivers/usb/cromwell/linux/pci_hal.c 2005-05-20
21:43:57 UTC (rev 15439)
@@ -39,8 +39,12 @@
// ???
static int __inline__ pci_resource_flags(struct pci_dev *dev, int x)
{
- DPRINT1("pci_resource_flags() called, x=0x%x\n");
- return dev->flags[x];
+ POHCI_DEVICE_EXTENSION ext =
(POHCI_DEVICE_EXTENSION)dev->dev_ext;
+
+ DPRINT1("pci_resource_flags() called, x=0x%x\n", x);
+
+ //FIXME: Take x into account
+ return ext->Flags;
}
/*
@@ -79,8 +83,8 @@
*/
static int __inline__ request_region(PHYSICAL_ADDRESS addr, unsigned
long len, const char * d)
{
- DPRINT1("request_region(): addr=0x%x, len=0x%x\n", addr, len);
- return 0;
+ DPRINT1("request_region(): addr=0x%lx, len=0x%lx\n",
addr.u.LowPart, len);
+ return ~0;
}
/*
@@ -108,7 +112,7 @@
*/
static int __inline__ release_region(PHYSICAL_ADDRESS addr, unsigned
long len)
{
- DPRINT1("release_region(): addr=0x%x, len=0x%x\n", addr, len);
+ DPRINT1("release_region(): addr=0x%lx, len=0x%lx\n",
addr.u.LowPart, len);
return 0;
}
_____
Modified: trunk/reactos/drivers/usb/cromwell/uhci/uhci-hcd.c
--- trunk/reactos/drivers/usb/cromwell/uhci/uhci-hcd.c 2005-05-20
21:33:49 UTC (rev 15438)
+++ trunk/reactos/drivers/usb/cromwell/uhci/uhci-hcd.c 2005-05-20
21:43:57 UTC (rev 15439)
@@ -81,7 +81,7 @@
#ifdef DEBUG
static int debug = 1;
#else
-static int debug = 0;
+static int debug = 2;
#endif
MODULE_PARM(debug, "i");
MODULE_PARM_DESC(debug, "Debug level");
_____
Modified: trunk/reactos/drivers/usb/cromwell/uhci/uhci_main.c
--- trunk/reactos/drivers/usb/cromwell/uhci/uhci_main.c 2005-05-20
21:33:49 UTC (rev 15438)
+++ trunk/reactos/drivers/usb/cromwell/uhci/uhci_main.c 2005-05-20
21:43:57 UTC (rev 15439)
@@ -133,7 +133,7 @@
dev = ExAllocatePoolWithTag(PagedPool, sizeof(struct pci_dev),
USB_UHCI_TAG);
init_wrapper(dev);
- dev->irq = DeviceExtension->InterruptLevel;
+ dev->irq = DeviceExtension->InterruptVector;
dev->dev_ext = (PVOID)DeviceExtension;
dev->slot_name = ExAllocatePoolWithTag(NonPagedPool, 128,
USB_UHCI_TAG); // 128 max len for slot name
@@ -226,8 +226,9 @@
}
else if (Descriptor->Type ==
CmResourceTypePort)
{
- DeviceExtension->BaseAddress
= Descriptor->u.Memory.Start;
- DeviceExtension->BaseAddrLength
= Descriptor->u.Memory.Length;
+ DeviceExtension->BaseAddress
= Descriptor->u.Port.Start;
+ DeviceExtension->BaseAddrLength
= Descriptor->u.Port.Length;
+ DeviceExtension->Flags
= Descriptor->Flags;
DPRINT1("I/O resource: start=0x%x,
length=0x%x\n",
DeviceExtension->BaseAddress.u.LowPart,
DeviceExtension->BaseAddrLength);