[PATCH] pci: yenta cardbus fix
On Mon, Jun 20, 2005 at 07:15:34PM +1000, Grant Coady wrote: > Yenta: CardBus bridge found at 0000:00:0b.0 [1179:0001] > yenta 0000:00:0b.0: Preassigned resource 0 busy, reconfiguring... In -mm1 the cardbus resources might be assigned in pci_assign_unassigned_resources() pass. From your dmesg: PCI: Bus 2, cardbus bridge: 0000:00:0b.0 IO window: 00002000-00002fff IO window: 00003000-00003fff PREFETCH window: 12000000-13ffffff MEM window: 14000000-15ffffff Then yenta_allocate_res() tries to assign these resources again and, naturally, fails. This adds check for already assigned cardbus resources. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
Родитель
3c803e8e2f
Коммит
7925407aa0
|
@ -549,6 +549,11 @@ static void yenta_allocate_res(struct yenta_socket *socket, int nr, unsigned typ
|
|||
unsigned offset;
|
||||
unsigned mask;
|
||||
|
||||
res = socket->dev->resource + PCI_BRIDGE_RESOURCES + nr;
|
||||
/* Already allocated? */
|
||||
if (res->parent)
|
||||
return 0;
|
||||
|
||||
/* The granularity of the memory limit is 4kB, on IO it's 4 bytes */
|
||||
mask = ~0xfff;
|
||||
if (type & IORESOURCE_IO)
|
||||
|
@ -556,7 +561,6 @@ static void yenta_allocate_res(struct yenta_socket *socket, int nr, unsigned typ
|
|||
|
||||
offset = 0x1c + 8*nr;
|
||||
bus = socket->dev->subordinate;
|
||||
res = socket->dev->resource + PCI_BRIDGE_RESOURCES + nr;
|
||||
res->name = bus->name;
|
||||
res->flags = type;
|
||||
res->start = 0;
|
||||
|
|
Загрузка…
Ссылка в новой задаче