From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1761378AbXEPMaO (ORCPT ); Wed, 16 May 2007 08:30:14 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1757465AbXEPMaB (ORCPT ); Wed, 16 May 2007 08:30:01 -0400 Received: from wx-out-0506.google.com ([66.249.82.234]:14142 "EHLO wx-out-0506.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756872AbXEPMaB (ORCPT ); Wed, 16 May 2007 08:30:01 -0400 DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:user-agent:mime-version:to:cc:subject:references:in-reply-to:content-type:content-transfer-encoding; b=ePGrBnEayyzYPv6oXEIcVGeMpMB8bRhvibWIr8VGqUllE18hB5bibCNOa+LgtSl94MLTc9pudEMwqWFpquqnyGIDFcsOiUeC6EO4QuWcQ/lCcJ51be8YnvHB9M5B2PnHDkxQYhE/Yu9t0ELbWxGivLG/lbOh4v6yvLbZhstNMlA= Message-ID: <464AF932.9070008@gmail.com> Date: Wed, 16 May 2007 16:29:38 +0400 From: Manu Abraham User-Agent: Thunderbird 1.5.0.10 (X11/20070306) MIME-Version: 1.0 To: Greg KH CC: linux-kernel Subject: Re: pci probe References: <4648B29A.6080406@gmail.com> <4649B270.8050002@gmail.com> <20070516071851.GB19294@kroah.com> In-Reply-To: <20070516071851.GB19294@kroah.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Greg KH wrote: > On Tue, May 15, 2007 at 05:15:28PM +0400, Manu Abraham wrote: >> Manu Abraham wrote: >>> Hi, >>> >>> I do have a device that's a multifunction device. Eventhough a MFD, it >>> just has one Interrupt which is shared by by a Configuration space for >>> each function. ie, INTA is shared between them functions. >>> >>> In such a case, i am wondering, (since pci_probe returns a pointer to >>> one PCI function alone and i need to use both the functions in one >>> module alone rather than using a module for each function and that the >>> functions are quite similar for them to be used in different modules, >>> such that a separate probe/ISR etc is used) whether using pci_get_device >>> would be a better alternative to do manual searching for the functions >>> in such a case. >>> >> Just figured out that pci_get_subsys() does work in a better. Looking at >> kernel sources all i find is just one single user of pci_get_subsys() >> >> building the code around pci_get_subsys(), does this have any negative >> impact ? > > Yes: > - your device will not show up properly in sysfs (no > device/driver binding ability from userspace, no good > information so that udev can properly name the device, etc.) This one sounds bad. > - your driver will not work on any pci-hotplug type system (that > includes expresscard and pccard and lots of high-end servers. This doesn't matter > - your driver will not be notified if the system is being > suspended or resumed or wanting to drop into a low power > state. > - another driver can bind to your device without you ever > knowing it. These also sound bad. > So in short, use pci_probe and just handle the fact that you need to be > called for two PCI devices and bind to both of them. It shouldn't be > that hard... Thanks for the explanation. Do you mean to have two PCIID tables ? But then that does mean 2 modules don't you ? (i thought probe would be called once per module) Or you mean to say use PCI_ANY_ID in the table to match multiple devices and then allow probe to return a list of devices ? Thanks, Manu