printk(KERN_ERROR "Yenta: no bus associated with %s!\n", pci_name(dev)); 
printk(KERN_ERR "Yenta: no bus associated with %s! " "(try 'pci=assign-busses')\n", pci_name(dev)); 
static int __devinit yenta_probe (struct pci_dev *dev, const struct pci_device_id *id){	struct yenta_socket *socket;	int ret;	/*	 * If we failed to assign proper bus numbers for this cardbus	 * controller during PCI probe, its subordinate pci_bus is NULL.	 * Bail out if so.	 */	if (!dev->subordinate) {		printk(KERN_ERROR "Yenta: no bus associated with %s!\n",			pci_name(dev));		return -ENODEV;	}	socket = kmalloc(sizeof(struct yenta_socket), GFP_KERNEL);	if (!socket)		return -ENOMEM;	memset(socket, 0, sizeof(*socket));	/* prepare pcmcia_socket */	socket->socket.ops = &yenta_socket_operations;	socket->socket.resource_ops = &pccard_nonstatic_ops;	socket->socket.dev.dev = &dev->dev;	socket->socket.driver_data = socket;	socket->socket.owner = THIS_MODULE;	socket->socket.features = SS_CAP_PAGE_REGS | SS_CAP_PCCARD;	socket->socket.map_size = 0x1000;	socket->socket.cb_dev = dev;	/* prepare struct yenta_socket */	socket->dev = dev;	pci_set_drvdata(dev, socket);	/*	 * Do some basic sanity checking..	 */	if (pci_enable_device(dev)) {		ret = -EBUSY;		goto free;	}	ret = pci_request_regions(dev, "yenta_socket");	if (ret)		goto disable;	if (!pci_resource_start(dev, 0)) {		printk(KERN_ERR "No cardbus resource!\n");		ret = -ENODEV;		goto release;	}	/*	 * Ok, start setup.. Map the cardbus registers,	 * and request the IRQ.	 */	socket->base = ioremap(pci_resource_start(dev, 0), 0x1000);	if (!socket->base) {		ret = -ENOMEM;		goto release;	}	/*	 * report the subsystem vendor and device for help debugging	 * the irq stuff...	 */	printk(KERN_INFO "Yenta: CardBus bridge found at %s [%04x:%04x]\n",		pci_name(dev), dev->subsystem_vendor, dev->subsystem_device);	yenta_config_init(socket);	/* Disable all events */	cb_writel(socket, CB_SOCKET_MASK, 0x0);	/* Set up the bridge regions.. */	yenta_allocate_resources(socket);	socket->cb_irq = dev->irq;	/* Do we have special options for the device? */	if (id->driver_data != CARDBUS_TYPE_DEFAULT &&	    id->driver_data < ARRAY_SIZE(cardbus_type)) {		socket->type = &cardbus_type[id->driver_data];		ret = socket->type->override(socket);		if (ret < 0)			goto unmap;	}	/* We must finish initialization here */	if (!socket->cb_irq || request_irq(socket->cb_irq, yenta_interrupt, SA_SHIRQ, "yenta", socket)) {		/* No IRQ or request_irq failed. Poll */		socket->cb_irq = 0; /* But zero is a valid IRQ number. */		init_timer(&socket->poll_timer);		socket->poll_timer.function = yenta_interrupt_wrapper;		socket->poll_timer.data = (unsigned long)socket;		socket->poll_timer.expires = jiffies + HZ;		add_timer(&socket->poll_timer);		printk(KERN_INFO "Yenta: no PCI IRQ, CardBus support disabled for this socket.\n"		       KERN_INFO "Yenta: check your BIOS CardBus, BIOS IRQ or ACPI settings.\n");	} else {		socket->socket.features |= SS_CAP_CARDBUS;	}	/* Figure out what the dang thing can do for the PCMCIA layer... */	yenta_interrogate(socket);	yenta_get_socket_capabilities(socket, isa_interrupts);	printk(KERN_INFO "Socket status: %08x\n", cb_readl(socket, CB_SOCKET_STATE));	/* Register it with the pcmcia layer.. */	ret = pcmcia_register_socket(&socket->socket);	if (ret == 0)		goto out; unmap:	iounmap(socket->base); release:	pci_release_regions(dev); disable:	pci_disable_device(dev); free:	kfree(socket); out:	return ret;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/5a23f34798f15838fe1b7f0fd7e5be388e08c2b2/yenta_socket.c/clean/drivers/pcmcia/yenta_socket.c