Another basic query:
I m pretty sure I cant see my user space messages on the console due to
the fact that the ttyS0 device is not registered --
The board specific platform_init function that I wrote returns non-error
values and executes fine! --
Also, I figured that the ttyS0 uart regsitration is a separate process
that runs independently of the above arch_initcall --
It is spawned from the serial8250_register_ports function which is part
of the __init routines --
The "name" of the uart driver in this case is "serial" and is the struct
uart_driver serial8250_reg defined in the drivers/serial/8250.c file and
not "serial8250" which is the name of the struct device_driver
serial8250_isa_driver
-- how are these two processes -- the arch_initcall encm3_platform_init
function and the __init serial8250_register_ports function related? and
how come they use separate drivers?
Thank you,
Ashlesha.
On Sat, 2006-12-09 at 19:55 +0300, Sergei Shtylyov wrote:
> Hello.
>
> Ashlesha Shintre wrote:
> > Hi,
>
> > I m very much confused as to why there is an infinite loop in the
> > __request_resource function in the linux/kernel/resource.c file?
>
> It has 2 exit points (return statements).
>
> > The serial console is getting stuck at this point.
>
> Then there's something very wrong with your resources...
>
> >>for (;;) {
> >> tmp = *p;
> >> if (!tmp || tmp->start > end) {
> >> new->sibling = tmp;
> >> *p = new;
> >> new->parent = root;
> >> return NULL;
> >> }
> >> p = &tmp->sibling;
> >> if (tmp->end < start){
> >> printk("tmp->end = %d\n",tmp->end);
> >> printk("tmp->start = %d\n",tmp->start);
> >> printk("*********!!!!!!!*******sibling?!!\n");
> >> continue;
> >> }
> >> return tmp;
> >
> >
> > Thanks and Regards,
> > Ashlesha.
>
> WBR, Sergei
>
|