From: Takashi Iwai <tiwai@suse.de>
To: Adam Belay <ambx1@neo.rr.com>
Cc: arvidjaar@mail.ru, linux-kernel@vger.kernel.org,
rusty@rustcorp.com.au, perex@suse.cz
Subject: Re: modules.pnpmap output support
Date: Fri, 21 Nov 2003 12:44:45 +0100 [thread overview]
Message-ID: <s5hptfmx7wy.wl@alsa2.suse.de> (raw)
In-Reply-To: <20031120212320.GB25417@neo.rr.com>
At Thu, 20 Nov 2003 21:23:20 +0000,
Adam Belay wrote:
>
> On Mon, Nov 17, 2003 at 04:37:50PM +0100, Takashi Iwai wrote:
> > At Mon, 17 Nov 2003 18:07:04 +0300,
> > Andrey Borzenkov wrote:
>
> -->snip
>
> > > > the file2alias format of (isa) pnp devices will need variable number
> > > > of items, since a driver may require multiple ids.
> > > > for example, snd-cs4236 driver supports the cards with three ids like
> > > > CSCe825:CSC0100:CSC0110
> > > > and four ids like
> > > > CSCd937:CSC0000:CSC0010:CSC0003
> > > > in each case, a matching card must include all ids listed there.
> > > >
> > >
> > > do you mean that card will have to have all of these IDs to match?
> > >
> > > I can't get it reading sources. When driver matches card against
> > > card driver it is apparently using only main IDs, not logical
> > > device IDs:
> > >
> > > driver/pnp/card.c:match_card()
> > >
> > > static const struct pnp_card_device_id * match_card(struct pnp_card_driver * drv, struct pnp_card * card)
> > > {
> > > const struct pnp_card_device_id * drv_id = drv->id_table;
> > > while (*drv_id->id){
> > > if (compare_pnp_id(card->id,drv_id->id))
> > > return drv_id;
> > > drv_id++;
> > > }
> > > return NULL;
> > > }
> > >
> > > where are drv_id->devs used?
> >
> > hmm, i thought it checks the device ids but apparently it's not.
> > IMO, this is a bug, because there are cards with the same card id but
> > different device ids. (e.g. sound/isa/cs423x/cs4236.c)
> > in the logic above, only the first matching entry is checked and it
> > results in the failure of probing.
> >
> > Adam, what do you think?
> >
>
> The device ID is checked, but this checking occurs during the driver's
> probe function, when it calls pnp_request_card_device. This is needed
> in order for us to properly deal with multidevice cards, especially in
> ALSA.
well, the probe callback of all ALSA isapnp drivers doesn't look for
the matching device ids. that is, the callback trusts that the pnp
core passes the correct pnp_card_device_id, and it checks only the
devices listed on this id. so, as mentioned above, if there are
multiple entries with the same card id but different device ids,
probing the second entry will fail, because match_card() returns the
first matching id.
> If possibly, I'd like to see the devices in these cards be
> handled individually in 2.7 but note that doing so would require
> changes to some drivers and subsystems. The current system works well
> for 2.6.
>
> Because of these factors, and the fact that pnp_device_id is also used,
> I think that we have to include all of the IDs in the pnpidmap. This
> would include both the card id and the individual device IDs on each
> card. pnp_device_id can use the isapnp card device ids in addition to
> the ids reported by the pnpbios.
oh, can pnp_device_id be a card id, too, not only a device id?
Takashi
next prev parent reply other threads:[~2003-11-21 11:44 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-11-17 12:37 modules.pnpmap output support "Andrey Borzenkov"
2003-11-17 13:34 ` Takashi Iwai
2003-11-17 14:05 ` Takashi Iwai
2003-11-20 4:35 ` Rusty Russell
2003-11-20 9:40 ` Takashi Iwai
2003-11-17 15:07 ` "Andrey Borzenkov"
2003-11-17 15:37 ` Takashi Iwai
2003-11-20 21:23 ` Adam Belay
2003-11-21 11:44 ` Takashi Iwai [this message]
2003-11-23 22:07 ` Adam Belay
2003-11-25 10:29 ` Takashi Iwai
2003-11-27 14:41 ` file2alias for pnp (Re: modules.pnpmap output support) Takashi Iwai
2003-11-27 18:58 ` Andrey Borzenkov
2003-11-28 12:11 ` Takashi Iwai
2003-12-02 22:31 ` Adam Belay
2003-12-03 11:31 ` Takashi Iwai
2003-11-18 3:07 ` modules.pnpmap output support Rusty Russell
-- strict thread matches above, loose matches on Subject: below --
2003-11-14 14:07 Takashi Iwai
2003-11-17 3:46 ` Rusty Russell
2003-11-17 11:19 ` Takashi Iwai
2003-11-18 3:01 ` Rusty Russell
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=s5hptfmx7wy.wl@alsa2.suse.de \
--to=tiwai@suse.de \
--cc=ambx1@neo.rr.com \
--cc=arvidjaar@mail.ru \
--cc=linux-kernel@vger.kernel.org \
--cc=perex@suse.cz \
--cc=rusty@rustcorp.com.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox