Re: 2.6.18-rc1 fails to boot on E250

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

 



From: David Miller <davem@xxxxxxxxxxxxx>
Date: Mon, 17 Jul 2006 15:52:55 -0700 (PDT)

> I hooked up a serial console line to my ultra60 and will try
> to work this out.  I think the problem is not related to
> interrupts this time.

Ok, your patch was only half-correct. :-) This patch below, which goes
on top of your's, fixes things up and also fixes a problem with the
uart table sizing in this driver.

I was able to boot up to full multi-user with full serial
console on my ultra60 after these changes.

Let me know how it goes for you.

Thanks.

diff-tree f26a75da243428fdeb1e9b2e57cd713a5cdb53a8 (from e25b839bd81dd04df8c5d3f4713c66703a13cc14)
Author: David S. Miller <davem@xxxxxxxxxxxxxxxxxxxx>
Date:   Mon Jul 17 16:40:26 2006 -0700

    [SERIAL] sunsab: Get line numbers and table sizing correct.
    
    Table sizing code should look for "se" not "su" nodes.
    
    The chip at the lower address should get the first index.
    
    Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>

diff --git a/drivers/serial/sunsab.c b/drivers/serial/sunsab.c
index cb55d81..dc673e1 100644
--- a/drivers/serial/sunsab.c
+++ b/drivers/serial/sunsab.c
@@ -1047,12 +1047,13 @@ static int __devinit sab_probe(struct of
 	up = &sunsab_ports[inst * 2];
 
 	err = sunsab_init_one(&up[0], op,
-			      sizeof(union sab82532_async_regs),
+			      0,
 			      (inst * 2) + 0);
 	if (err)
 		return err;
 
-	err = sunsab_init_one(&up[1], op, 0,
+	err = sunsab_init_one(&up[1], op,
+			      sizeof(union sab82532_async_regs),
 			      (inst * 2) + 1);
 	if (err) {
 		of_iounmap(up[0].port.membase,
@@ -1061,8 +1062,8 @@ static int __devinit sab_probe(struct of
 		return err;
 	}
 
-	uart_add_one_port(&sunsab_reg, &up[1].port);
 	uart_add_one_port(&sunsab_reg, &up[0].port);
+	uart_add_one_port(&sunsab_reg, &up[1].port);
 
 	dev_set_drvdata(&op->dev, &up[0]);
 
@@ -1117,7 +1118,7 @@ static int __init sunsab_init(void)
 	int err;
 
 	num_channels = 0;
-	for_each_node_by_name(dp, "su")
+	for_each_node_by_name(dp, "se")
 		num_channels += 2;
 	for_each_node_by_name(dp, "serial") {
 		if (of_device_is_compatible(dp, "sab82532"))
-
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