public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
* RE: acpi_pci_link_check's attempt to find the _best_ irq p revents system from using ACPI irq routing
@ 2003-04-29 17:14 Moore, Robert
       [not found] ` <D3A3AA459175A44CB5326F26DA7A189C1C3C33-sBd4vmA9Se58QrAoInS571DQ4js95KgL@public.gmane.org>
  0 siblings, 1 reply; 2+ messages in thread
From: Moore, Robert @ 2003-04-29 17:14 UTC (permalink / raw)
  To: Malte Doersam, acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f; +Cc: Grover, Andrew

if (walk_state->ascending_callback != NULL ) {
  walk_state->op    = op;
  walk_state->opcode = op->common.aml_opcode;
  printk("Malte DEBUG: last seen line\n");

>>> set acpi_dbg_level = 0x00FFFFFF here to enable tracing.
Bob


  status = walk_state->ascending_callback (walk_state);
  printk("Malte DEBUG: never got to this point with IRQ9\n");
  status = acpi_ps_next_parse_state (walk_state, op, status);
  if (status == AE_CTRL_PENDING) {
    status = AE_OK;
    goto close_this_op;
  }
}


> -----Original Message-----
> From: Malte Doersam [mailto:malte.d-hi6Y0CQ0nG0@public.gmane.org]
> Sent: Saturday, April 26, 2003 10:48 AM
> To: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> Subject: Re: [ACPI] acpi_pci_link_check's attempt to find the _best_
irq
> prevents system from using ACPI irq routing
> 
> Hi Andy, Hi everbody
> 
> It took me severel hours to track down this to this point. As you
stated,
> the
> acpi_pci_link_check doesn't block the booting.  I observed the loop
with
> some
> printks in acpi_pci_link_check:
> 
> FYI my links:
> ACPI: PCI Interrupt Link [PILA] (IRQs 3 4 5 6 7 9 *11 12 14 15)
> ACPI: PCI Interrupt Link [PILB] (IRQs 3 4 5 6 7 9 *11 12 14 15)
> ACPI: PCI Interrupt Link [PILC] (IRQs 3 4 5 6 7 9 *11 12 14 15)
> ACPI: PCI Interrupt Link [PILD] (IRQs 3 4 5 6 7 9 *11 12 14 15)
> ACPI: PCI Interrupt Link [PILE] (IRQs 3 4 5 6 7 9 *11 12 14 15)
> ACPI: PCI Interrupt Link [PILF] (IRQs 3 4 5 6 7 9 *11 12 14 15)
> ACPI: PCI Interrupt Link [PILG] (IRQs 3 4 5 6 7 9 11 12 14 15,
disabled)
> ACPI: PCI Interrupt Link [PILh] (IRQs 3 4 5 6 7 9 11 12 14 15,
disabled)
> 
> and here are my printks, the numbers in {{x}} represent the content of
the
> variable before...
> 
> acpi_pci_link_check entered
> link->irq.active --> IRQ: 11 Penalty: 100
> link->irq.active --> IRQ: 11 Penalty: 200
> link->irq.active --> IRQ: 11 Penalty: 300
> link->irq.active --> IRQ: 11 Penalty: 400
> link->irq.active --> IRQ: 11 Penalty: 500
> link->irq.active --> IRQ: 11 Penalty: 600
> !link->irq.active
> !link->irq.active
> first list_for_each completed
> 
> !link->irq.active
> irq=link->irq.possible[0] {{3}}
> for (i=( link->irq.possible_count {{10}} -1; i>0;i--) {
> if (acpi_irq_penalty[irq] {{10020}} > acpi_irq_penalty[link-
> >irq.possible[i]]
> {{10020} ) { 	// 15
> if (acpi_irq_penalty[irq] {{10020}} > acpi_irq_penalty[link-
> >irq.possible[i]]
> {{10020} ) {	// 14
> if (acpi_irq_penalty[irq] {{10020}} > acpi_irq_penalty[link-
> >irq.possible[i]]
> {{10020} ) {	// 12
> if (acpi_irq_penalty[irq] {{10020}} > acpi_irq_penalty[link-
> >irq.possible[i]]
> {{620} ) {	// 11
> irq = link->irq.possible[i] {{11}} ;
> if (acpi_irq_penalty[irq] {{620}} > acpi_irq_penalty[link-
> >irq.possible[i]]
> {{20} ) {		//  9
> irq = link->irq.possible[i] {{9}} ;
> if (acpi_irq_penalty[irq] {{20}} >
acpi_irq_penalty[link->irq.possible[i]]
> {{10020} ) {		//  7
> if (acpi_irq_penalty[irq] {{20}} >
acpi_irq_penalty[link->irq.possible[i]]
> {{10020} ) {		//  6
> if (acpi_irq_penalty[irq] {{20}} >
acpi_irq_penalty[link->irq.possible[i]]
> {{20} ) {		//  5
> if (acpi_irq_penalty[irq] {{20}} >
acpi_irq_penalty[link->irq.possible[i]]
> {{10020} ) {		//  4
> second list_for_each complete
> 
> acpi_pci_link_set(link,irq);
> 
> Ok, as you can see, it is trying to do the acpi_pci_link_set with IRQ
9,
> which
> doesn't work. Commenting out this check-loop made the disabled links
to
> use
> the first IRQ (3) which worked.
> 
> Now to the interesting part, why IRQ doesn't work:
> 
> I followed the acpi_pci_link_set through zillions of lines of code ;)
to
> this
> function ( drivers/acpi/parser/psparse.c)
> 
> acpi_status acpi_ps_parse_loop ( struct acpi_walk_state * walk_state)
> 
> The "offending part" is this:
> 
> /* This op complete, notify the dispatcher */
> 
> if (walk_state->ascending_callback != NULL ) {
>   walk_state->op    = op;
>   walk_state->opcode = op->common.aml_opcode;
>   printk("Malte DEBUG: last seen line\n");
>   status = walk_state->ascending_callback (walk_state);
>   printk("Malte DEBUG: never got to this point with IRQ9\n");
>   status = acpi_ps_next_parse_state (walk_state, op, status);
>   if (status == AE_CTRL_PENDING) {
>     status = AE_OK;
>     goto close_this_op;
>   }
> }
> 
> Maybe you can send me some appropriate printk-instruction which print
some
> usefull information for you about this 'blocker'? :-)
> I'm not sure whether this might be an AML-Bug, but my dsdt.asl does
> compile
> fine with iasl. In the mean time I'm just using IRQ 3 for these links
:-)
> 
> http://home.fhtw-berlin.de/~s0502837/linux.kernel/2.5.66.dsdt
> http://home.fhtw-berlin.de/~s0502837/linux.kernel/dsdt.asl
> 
> cheers Malte
> 
> 
> 
> 
> Am Mittwoch, 23. April 2003 20:19 schrieben Sie:
> > Looks OK to me. You guys need to tell me *why* commenting it out
fixes
> > things - with it left in, what irq is it picking, and why isn't that
irq
> > working OK?
> >
> > Thanks -- Regards -- Andy
> 
> 
> 
> -------------------------------------------------------
> This sf.net email is sponsored by:ThinkGeek
> Welcome to geek heaven.
> http://thinkgeek.com/sf
> _______________________________________________
> Acpi-devel mailing list
> Acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> https://lists.sourceforge.net/lists/listinfo/acpi-devel


-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: acpi_pci_link_check's attempt to find the _best_ irq p revents system from using ACPI irq routing
       [not found] ` <D3A3AA459175A44CB5326F26DA7A189C1C3C33-sBd4vmA9Se58QrAoInS571DQ4js95KgL@public.gmane.org>
@ 2003-04-30 18:36   ` Malte Doersam
  0 siblings, 0 replies; 2+ messages in thread
From: Malte Doersam @ 2003-04-30 18:36 UTC (permalink / raw)
  To: Moore, Robert; +Cc: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f

Okay, unfortunatly there seems to be an endless loop, so it scrolled to much 
on my R31; I couldn't ready anything, so I used some busy_waits :-)

cheers Malte

These are the last lines before it enters the infinite loop (hand copied due 
to no serial port on this laptop):

     osl-0922 [37] os_isgnal_semaphore    : ----Entry
     osl-0934 [37] os_signal_semaphore    : ----Exit- AE_OK
utobject-0292 [36] ut_allocate_object_des : c13fa528 Size 28
utobject-0294 [36] ut_allocate_object_des : ----Exit- c13fa528
utobject-0131 [35] ut_create_internal_obj : ----Exit- c13fa528
 exstore-0087 [35] ex_store               : ----Entry cf704a48
 exstore-0422 [36] ex_store_object_to_nod : ----Entry c13fa528
 nsutils-0239 [37] ns_get_type            : ----Entry
 nsutils-0247 [37] ns_get_type            : ----Exit- 0000000000000011
nsobject-0263 [37] ns_get_attached_object : ----Entry cf704a48
nsobject-0278 [37] ns_get_attached_object: -----Exit- c12f23e8
 exstore-0433 [36] ex_store_object_to_nod : Storing c13fa528( Integer) into 
node cf704a48(region_field)
exstoren-0080 [37] ex_resolve_object      : ----Entry
exstoren-0152 [37] ex_resolve_object      : ----Exit- AE_OK
 exfield-0221 [37] ex_write_data_to_field : ----Entry c12f23e8
 exfield-0339 [37] ex_write_data_to_field : Obj=c12f23e8 Type=11 Buf=c13fa534 
Len=8
 exfield-0344 [37] ex_write_data_to_field : field_read: bit_len=8 byte_off=6A
 exutils-0202 [38] ex_acquire_global_lock : ----Entry
 exutils-0220 [38] ex_acquire_global_lock : ----Exit- 0000000000000000
 exfldio-0883 [38] ex_insert_into_field   : ----Entry
 exfldio-0906 [38] ex_insert_into_field   : byte_len=1, datum_len=1, 
byte_gran=1
 exfldio-0497 [39] ex_write_with_update_r : ----Entry FFFFFFFF
 exfldio-0317 [40] ex_field_datum_io      : ----Entry 00000000
 exfldio-0179 [41] ex_access_region       : ----Entry
 exfldio-0080 [42] ex_setup_region        : ----Entry 00000000
 exfldio-0145 [42] ex_setup_region        : ----Exit- AE_OK
 exfldio-0207 [41] ex_access_region       : [WRITE] Region[PCI_Config-2] 
Access 1 Base:Off 6A:0 at 000000000000006A
evregion-0240 [42] ev_adress_space_dispa  : ----Entry
nsobject-0299 [43] ns_get_secondary_objec : ----Entry cf704148
nsobject-0309 [43] ns_get_secondary_objec : ----Exit- cf704328
evregion-0320 [42] ev_address_space_dispa : Addrhandler c12ee8c8 (c01f54c1), 
Address 00000000000006A
 exutils-0127 [43] ex_exit_interpreter    : ----Entry
     osl-0922 [44] os_signal_semaphore    : ----Entry
     osl-0934 [44] os_signal_semaphore    : ----Exit- AE_OK
 exutils-0134 [43] ex_exit_interpreter    : ----Exit-
exregion-0350 [43] ex_pci_config_space_ha : ----Entry
exregion-0371 [43] ex_pci_config_space_ha : pci_config 1 (8) Seg(0000) 
Bus(0000) Dev(001f) Func(0000) Reg(006a)
   evsci-0074 [44] ex_sci_crupt_handler   : ----Entry
  hwregs-0477 [45] hw_register_read       : ----Entry
  hwregs-0560 [45] hw_register_read       : ----Exit- AE_OK
  hwregs-0477 [45] hw_register_read       : ----Entry
  hwregs-0560 [45] hw_register_read       : ----Exit- AE_OK
     osl-0734 [45] os_acquire_lock        : ----Entry
     osl-0746 [45] os_acquire_lock        : ----Exit-
     osl-0758 [45] os_release_lock        : ----Entry
     osl-0796 [45] os_release_lock        : ----Exit-
   evsci-0094 [44] ev_sci_xrupt_handler   : ----Exit- 0000000000000000
   evsci-0074 [44] ev_sci_xrupt_handler   : ----Entry
  hwregs-0477 [45] hw_register_read       : ----Entry
  hwregs-0560 [45] hw_register_read       : ----Exit- AE_OK
  hwregs-0477 [45] hw_register_read       : ----Entry
  hwregs-0560 [45] hw_register_read       : ----Exit- AE_OK
     osl-0734 [45] os_acquire_lock        : ----Entry
     osl-0746 [45] os_acquire_lock        : ----Exit-
     osl-0758 [45] os_release_lock        : ----Entry
     osl-0796 [45] os_release_lock        : ----Exit-
   evsci-0094 [44] ev_sci_xrupt_handler   : ----Exit- 0000000000000000
   evsci-0074 [44] ev_sci_xrupt_handler   : ----Entry
...
and so forth




Am Dienstag, 29. April 2003 19:14 schrieben Sie:
> if (walk_state->ascending_callback != NULL ) {
>   walk_state->op    = op;
>   walk_state->opcode = op->common.aml_opcode;
>   printk("Malte DEBUG: last seen line\n");
>
> >>> set acpi_dbg_level = 0x00FFFFFF here to enable tracing.
>
> Bob
>
>
>   status = walk_state->ascending_callback (walk_state);
>   printk("Malte DEBUG: never got to this point with IRQ9\n");
>   status = acpi_ps_next_parse_state (walk_state, op, status);
>   if (status == AE_CTRL_PENDING) {
>     status = AE_OK;
>     goto close_this_op;
>   }
> }
>


-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2003-04-30 18:36 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-04-29 17:14 acpi_pci_link_check's attempt to find the _best_ irq p revents system from using ACPI irq routing Moore, Robert
     [not found] ` <D3A3AA459175A44CB5326F26DA7A189C1C3C33-sBd4vmA9Se58QrAoInS571DQ4js95KgL@public.gmane.org>
2003-04-30 18:36   ` Malte Doersam

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox