All of lore.kernel.org
 help / color / mirror / Atom feed
From: Manu Abraham <abraham.manu@gmail.com>
To: michael@ellerman.id.au
Cc: Grant Grundler <grundler@parisc-linux.org>,
	linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org
Subject: Re: MSI messages
Date: Mon, 22 Dec 2008 03:05:41 +0400	[thread overview]
Message-ID: <494ECBC5.1040703@gmail.com> (raw)
In-Reply-To: <1229897516.8269.8.camel@localhost>

Michael Ellerman wrote:
> On Sun, 2008-12-21 at 01:13 +0400, Manu Abraham wrote:
>> Grant Grundler wrote:
>>> On Sun, Dec 14, 2008 at 03:15:15PM +0400, Manu Abraham wrote:
>>> ...
>>>>> A "GSI" (Generic Sys Interrupt?) is associated with each entry in
>>>>> the MSI-X table. Driver then calls request_irq() to bind an interrupt
>>>>> handler to each GSI. So the driver never directly sees the "message".
>>>> Oh, you mean the array of irq_handlers in the MSI-X table should 
>>>> correspond to a particular message ?
>>> No. I mean each MSI-X entry has an address+message pair and each MSI-X entry
>>> is associated with the parameters passed to each call of request_irq().
>>> Pass in unique private data to each call of request_irq() and the driver
>>> can determine which message was delivered when the ISR gets called.
>>> (ISR == Interrupt Service Routine, aka driver IRQ handler)
>>
>> Is it possible that even when the config space says that multiple messages 
>> are supported, you cannot enable MSI-X ?
> 
> Yes, absolutely. Have a look at pci_msi_check_device() for starters. MSI
> can be disabled globally, or per-device by a quirk, the bridges above
> your device might not support MSI and the arch code may prevent
> MSI/MSI-X for some reason (ie. platform doesn't support it).

It seems that the bridge does support MSI. It looks like my video device is 
using MSI.


Regards,
Manu

pci 0000:01:00.0: Boot video device                                                                            
PCI: Setting latency timer of device 0000:00:01.0 to 64                                                        
assign_interrupt_mode Found MSI capability                                                                     
Allocate Port Service[0000:00:01.0:pcie00]                                                                     
PCI: Setting latency timer of device 0000:00:1c.0 to 64                                                        
assign_interrupt_mode Found MSI capability                                                                     
Allocate Port Service[0000:00:1c.0:pcie00]                                                                     
Allocate Port Service[0000:00:1c.0:pcie02]                                                                     
PCI: Setting latency timer of device 0000:00:1c.1 to 64                                                        
assign_interrupt_mode Found MSI capability                                                                     
Allocate Port Service[0000:00:1c.1:pcie00]                                                                     
Allocate Port Service[0000:00:1c.1:pcie02]                                                                     
PCI: Setting latency timer of device 0000:00:1c.2 to 64                                                        
assign_interrupt_mode Found MSI capability                                                                     
Allocate Port Service[0000:00:1c.2:pcie00]                                                                     
Allocate Port Service[0000:00:1c.2:pcie02]                                                                     
PCI: Setting latency timer of device 0000:00:1c.3 to 64                                                        
assign_interrupt_mode Found MSI capability                                                                     
Allocate Port Service[0000:00:1c.3:pcie00]                                                                     
Allocate Port Service[0000:00:1c.3:pcie02]                                                                     
PCI: Setting latency timer of device 0000:00:1c.4 to 64                                                        
assign_interrupt_mode Found MSI capability                                                                     
Allocate Port Service[0000:00:1c.4:pcie00]                                                                     
Allocate Port Service[0000:00:1c.4:pcie02]                                                                     
vesafb: framebuffer at 0x91000000, mapped to 0xf8880000, using 10240k, total 14336k                            
vesafb: mode is 1280x1024x16, linelength=2560, pages=1


04:00.0 Multimedia controller: Philips Semiconductors Device 7160 (rev 02)
        Subsystem: Technotrend Systemtechnik GmbH Device 3009
        Flags: bus master, fast devsel, latency 0, IRQ 11
        Memory at 93b00000 (64-bit, non-prefetchable) [size=1M]
        Capabilities: <access denied>

05:00.0 Multimedia controller: Philips Semiconductors Device 7160 (rev 01)
        Subsystem: Philips Semiconductors Device 0000
        Flags: bus master, fast devsel, latency 0, IRQ 19
        Memory at 93a00000 (64-bit, non-prefetchable) [size=1M]
        Capabilities: <access denied>
        Kernel driver in use: SAA716x Hybrid


  parent reply	other threads:[~2008-12-21 23:06 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-12-13  9:38 MSI messages Manu Abraham
2008-12-14  8:12 ` Grant Grundler
2008-12-14 11:15   ` Manu Abraham
2008-12-14 18:52     ` Grant Grundler
2008-12-20 21:13       ` Manu Abraham
2008-12-21 22:11         ` Michael Ellerman
2008-12-21 22:56           ` Manu Abraham
2008-12-21 23:22             ` Michael Ellerman
2008-12-22 15:31               ` Manu Abraham
2008-12-22 22:29                 ` Michael Ellerman
2008-12-21 23:05           ` Manu Abraham [this message]
2008-12-15  5:08   ` Jike Song
2008-12-15  7:07   ` Kenji Kaneshige
2008-12-18  5:47     ` Grant Grundler
  -- strict thread matches above, loose matches on Subject: below --
2008-12-13  9:34 Manu Abraham

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=494ECBC5.1040703@gmail.com \
    --to=abraham.manu@gmail.com \
    --cc=grundler@parisc-linux.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=michael@ellerman.id.au \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.