Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 6 Oct 2008 13:07:04 +0530
From:      "Bagavathy Kumar Mahendran  " <bagavathykumar.m@hcl.in>
To:        "Warner Losh" <imp@bsdimp.com>
Cc:        freebsd-hackers@freebsd.org
Subject:   RE: i386/127710: My driver PCI probe is not  calledformycorrespondingdevice ID and Vendor ID
Message-ID:  <68C9F31EF19DB6448F515EF294028FDEE9A695@chn-hclt-evs05.HCLT.CORP.HCL.IN>
In-Reply-To: <20081006.012619.78741615.imp@bsdimp.com>
References:  <68C9F31EF19DB6448F515EF294028FDEE9A4A5@chn-hclt-evs05.HCLT.CORP .HCL.IN><20081006.005657.71122961.imp@bsdimp.com><68C9F31EF19DB6448F515EF29 4028FDEE9A624@chn-hclt-evs05.HCLT.CORP.HCL.IN>  <20081006.012619.78741615.imp@bsdimp.com>

next in thread | previous in thread | raw e-mail | index | archive | help
static int
My_probe(device_t dev)
{
	  uint32_t progif;
        uint32_t subclass;
        uint32_t class;

	device_printf(dev, " Probe\n Vendor ID : 0x%x\n Device ID :
0x%x\n",pci_get_vendor(dev), pci_get_device(dev));
        class =3D pci_get_class(dev);
	  subclass =3D pci_get_subclass(dev);
        progif =3D pci_get_progif(dev);
	if (class =3D=3D 0x1 && subclass =3D=3D 0x07 && progif =3D=3D 0x00) {

	    printf("probe successful!\n");
	    device_set_desc(dev, "My_Probe");
	    return (BUS_PROBE_DEFAULT);
	}
	return (ENXIO);
}
Here above I have attached my pci probe. The vendor ID and Device ID of
all the above PCI bridges are printing But instead of My_probe function
for my PCI Card the probe of the cbb driver is called. This is the exact
problem but when I remove the cbb driver from the kernel My_probe
function is called for my PCI Card too.

Regards,
Bagavathy kumar .M


-----Original Message-----
From: Warner Losh [mailto:imp@bsdimp.com]=20
Sent: Monday, October 06, 2008 12:56 PM
To: Bagavathy Kumar Mahendran=20
Cc: jhb@freebsd.org; freebsd-hackers@freebsd.org
Subject: Re: i386/127710: My driver PCI probe is not
calledformycorrespondingdevice ID and Vendor ID

From: "Bagavathy Kumar Mahendran  " <bagavathykumar.m@hcl.in>
Subject: RE: i386/127710: My driver PCI probe is not called
formycorrespondingdevice ID and Vendor ID
Date: Mon, 6 Oct 2008 12:36:44 +0530

> Dear Warner,
>=20
>               My probe is getting called for the parent bridge devices
> .but=20
> Not for my pci Card. I have tested this by printing the Device ID and
> Vendor ID of the corresponding device_t in my probe.
>=20
> You are trying to say even cbb probes for my device and return
> BUS_PROBE_DEFAULT still my probe function will be called. Just clarify
> it.
> But my testing seems that my probe is not called for my pci device

Can you send me the DRIVER_MODULE line in your driver?

Warner

> Bagavathy kumar .M=20
>=20
>=20
> -----Original Message-----
> From: Warner Losh [mailto:imp@bsdimp.com]=20
> Sent: Monday, October 06, 2008 12:27 PM
> To: Bagavathy Kumar Mahendran=20
> Cc: jhb@freebsd.org; freebsd-hackers@freebsd.org
> Subject: Re: i386/127710: My driver PCI probe is not called
> formycorrespondingdevice ID and Vendor ID
>=20
> >             Thanks for your support. my probe is getting called for
> all
> > the bridges not for my pci device. so please provide the fix .
> >
> > OR=20
> > Is any other way available for making my driver to override the
probe
> of
> > cbb driver for my corresponding device (With out changing cbb
driver).
>=20
> If your probe returns a higher number that's negative, it will.
> Unless cbb is returning 0, your probe routine will get called.  Make
> sure it isn't.  Code inspection suggests that it isn't.
>=20
> Warner
>=20
>=20
>=20
> > With regards,
> > Bagavathy kumar .M
> >=20
> > -----Original Message-----
> > From: M. Warner Losh [mailto:imp@bsdimp.com]=20
> > Sent: Friday, October 03, 2008 11:03 AM
> > To: Bagavathy Kumar Mahendran=20
> > Cc: jhb@freebsd.org; freebsd-hackers@freebsd.org
> > Subject: Re: i386/127710: My driver PCI probe is not called for
> > mycorrespondingdevice ID and Vendor ID
> >=20
> > In message:
> >
>
<68C9F31EF19DB6448F515EF294028FDEE99BCE@chn-hclt-evs05.HCLT.CORP.HCL.IN>
> >             "Bagavathy Kumar Mahendran  " <bagavathykumar.m@hcl.in>
> > writes:
> > :=20
> > : Dear Baldwin,
> > :               Thanks for your support .but my pci probe function
is
> > not
> > : getting called for my device id and vendor id. Because pccbb
driver
> > : already sets the device_set_desc as PCI-CardBus Bridge. So is
there
> > any
> > : other option for me to make my_pciprobe function to be called for
my
> > : corresponding device id and vendor id.
> >=20
> > That's not why your probe isn't called.  Setting a description is
> > standard behavior for the probe routine.  Are you sure that the
device
> > probe routine is getting called at all for any device?  Have you
tried
> > just leaving cbb out of the kernel?  I recently fixed the original
> > problem in cbb (the fact it doesn't check the bridge type too),
maybe
> > you could try to pick up that fix as well?
> >=20
> > Warner
> >=20
> >=20
> > : Thanks,
> > :=20
> > : Regards,
> > : Bagavathy kumar .M
> > :=20
> > :=20
> > :=20
> > : -----Original Message-----
> > : From: John Baldwin [mailto:jhb@freebsd.org]=20
> > : Sent: Wednesday, October 01, 2008 8:57 PM
> > : To: freebsd-hackers@freebsd.org
> > : Cc: Bagavathy Kumar Mahendran ; Warner Losh
> > : Subject: Re: FW: i386/127710: My driver PCI probe is not called
for
> my
> > : correspondingdevice ID and Vendor ID
> > :=20
> > : On Wednesday 01 October 2008 08:50:15 am Bagavathy Kumar Mahendran
> > : wrote:
> > : >=20
> > : > Dear All,
> > : >              Iam writing a new driver for a SAS/SATA Controller
> > having
> > : a
> > : > Class ID -0x01
> > : > Sub Class - 0x07
> > : > Programming Interface - 0x00
> > : >=20
> > : > Hence instead of my probe function the Static build Card Bus
> Driver
> > : cbb
> > : > is attaching just by simply checking sub class 0x07 and
> programming
> > : > interface 0x00.hence my probe gets failed. Kindly help me in
> > resolving
> > : > this .what I thought is to add the card bus driver a checking of
> > CLASS
> > : > ID in its pci probe function.
> > :=20
> > : The pccbb driver returns BUS_PROBE_DEFAULT (it should probably
> return
> > : GENERIC=20
> > : in the case where it matches only on class codes).  Your driver
just
> > : needs to=20
> > : return a numerically higher value (but still < 0) to claim the
> device.
> > : You=20
> > : can probably use BUS_PROBE_VENDOR or BUS_PROBE_DEFAULT + 1.
> > :=20
> > : --=20
> > : John Baldwin
> > :=20
> > : DISCLAIMER:
> > :
> >
>
------------------------------------------------------------------------
> > -----------------------------------------------
> > :=20
> > : The contents of this e-mail and any attachment(s) are confidential
> and
> > intended for the named recipient(s) only.
> > : It shall not attach any liability on the originator or HCL or its
> > affiliates. Any views or opinions presented in=20
> > : this email are solely those of the author and may not necessarily
> > reflect the opinions of HCL or its affiliates.
> > : Any form of reproduction, dissemination, copying, disclosure,
> > modification, distribution and / or publication of=20
> > : this message without the prior written consent of the author of
this
> > e-mail is strictly prohibited. If you have
> > : received this email in error please delete it and notify the
sender
> > immediately. Before opening any mail and=20
> > : attachments please check them for viruses and defect.
> > :=20
> > :
> >
>
------------------------------------------------------------------------
> > -----------------------------------------------
> > :=20
> > :=20
> >=20
> >=20
>=20
>=20



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?68C9F31EF19DB6448F515EF294028FDEE9A695>