Re: [PATCH]: Fix for SB100/SB150 bootup hangs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Kernel Development]     [DCCP]     [Linux ARM Development]     [Linux]     [Photo]     [Yosemite Help]     [Linux ARM Kernel]     [Linux SCSI]     [Linux x86_64]     [Linux Hams]

  Powered by Linux