From: Emanuele Rocca <ema@xxxxxxxxxx> Date: Fri, 9 Mar 2007 00:21:57 +0100 > * David Miller <davem@xxxxxxxxxxxxx>, [2007-03-08 15:08 -0800]: > > Ok. Let me think about how to debug this. > > > > Can you build test kernels if I give you a patch? > > Sure. > > config of my last build attached, maybe it gives you some helpful info. Please add this debugging patch and boot, let me know what ends up in your kernel log. Thanks. diff --git a/drivers/video/aty/atyfb_base.c b/drivers/video/aty/atyfb_base.c index d7627fc..b7cca23 100644 --- a/drivers/video/aty/atyfb_base.c +++ b/drivers/video/aty/atyfb_base.c @@ -3476,15 +3476,18 @@ static int __devinit atyfb_pci_probe(struct pci_dev *pdev, const struct pci_devi struct atyfb_par *par; int i, rc = -ENOMEM; + printk("atyfb_pci_probe: Invoked\n"); for (i = ARRAY_SIZE(aty_chips) - 1; i >= 0; i--) if (pdev->device == aty_chips[i].pci_id) break; - if (i < 0) + if (i < 0) { + printk("atyfb_pci_probe: Cannot match in pci table\n"); return -ENODEV; - + } /* Enable device in PCI config */ if (pci_enable_device(pdev)) { + printk("atyfb_pci_probe: Cannot enable device\n"); PRINTKE("Cannot enable PCI device\n"); return -ENXIO; } @@ -3494,18 +3497,21 @@ static int __devinit atyfb_pci_probe(struct pci_dev *pdev, const struct pci_devi if (rp->flags & IORESOURCE_IO) rp = &pdev->resource[1]; addr = rp->start; - if (!addr) + if (!addr) { + printk("atyfb_pci_probe: Resource start is zero\n"); return -ENXIO; - + } /* Reserve space */ res_start = rp->start; res_size = rp->end - rp->start + 1; - if (!request_mem_region (res_start, res_size, "atyfb")) + if (!request_mem_region (res_start, res_size, "atyfb")) { + printk("atyfb_pci_probe: request_mem_region() fails\n"); return -EBUSY; - + } /* Allocate framebuffer */ info = framebuffer_alloc(sizeof(struct atyfb_par), &pdev->dev); if (!info) { + printk("atyfb_pci_probe: framebuffer_alloc() fails\n"); PRINTKE("atyfb_pci_probe() can't alloc fb_info\n"); return -ENOMEM; } @@ -3524,14 +3530,18 @@ static int __devinit atyfb_pci_probe(struct pci_dev *pdev, const struct pci_devi #else rc = atyfb_setup_generic(pdev, info, addr); #endif - if (rc) + if (rc) { + printk("atyfb_pci_probe: atyfb_setup_foo() fails %d\n", rc); goto err_release_mem; + } pci_set_drvdata(pdev, info); /* Init chip & register framebuffer */ - if (aty_init(info)) + if (aty_init(info)) { + printk("atyfb_pci_probe: atyfb_init() fails\n"); goto err_release_io; + } #ifdef __sparc__ if (!prom_palette) @@ -3552,6 +3562,7 @@ static int __devinit atyfb_pci_probe(struct pci_dev *pdev, const struct pci_devi par->mmap_map[1].prot_flag = _PAGE_E; #endif /* __sparc__ */ + printk("atyfb_pci_probe: success\n"); return 0; err_release_io: @@ -3820,12 +3831,14 @@ static int __init atyfb_init(void) #ifndef MODULE char *option = NULL; + printk("atyfb_init: Invoked\n"); if (fb_get_options("atyfb", &option)) return -ENODEV; atyfb_setup(option); #endif #ifdef CONFIG_PCI + printk("atyfb_init: Registering PCI device\n"); err1 = pci_register_driver(&atyfb_driver); #endif #ifdef CONFIG_ATARI - To unsubscribe from this list: send the line "unsubscribe sparclinux" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html