From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S263310AbTKQPh5 (ORCPT ); Mon, 17 Nov 2003 10:37:57 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S263564AbTKQPh4 (ORCPT ); Mon, 17 Nov 2003 10:37:56 -0500 Received: from ns.suse.de ([195.135.220.2]:20445 "EHLO Cantor.suse.de") by vger.kernel.org with ESMTP id S263310AbTKQPhx (ORCPT ); Mon, 17 Nov 2003 10:37:53 -0500 Date: Mon, 17 Nov 2003 16:37:50 +0100 Message-ID: From: Takashi Iwai To: arvidjaar@mail.ru Cc: linux-kernel@vger.kernel.org, rusty@rustcorp.com.au, ambx1@neo.rr.com Subject: Re: modules.pnpmap output support In-Reply-To: References: User-Agent: Wanderlust/2.10.1 (Watching The Wheels) SEMI/1.14.5 (Awara-Onsen) FLIM/1.14.5 (Demachiyanagi) APEL/10.6 MULE XEmacs/21.4 (patch 13) (Rational FORTRAN) (i386-suse-linux) MIME-Version: 1.0 (generated by SEMI 1.14.5 - "Awara-Onsen") Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org At Mon, 17 Nov 2003 18:07:04 +0300, Andrey Borzenkov wrote: > > > > > > > Oh, BTW, it reminds me - file2alias prints hex in upper > > > case while both sysfs and hotplug present them in lower case > > > (for sure for USB and PCI, and for PNP entries detected by > > > PNP BIOS). Should not we unify representation? > > > > hmm, file2alias uses lower letters as the identifier (seprator?), so i > > think simply using lower hex letter will be confusing. wouldn't it be > > better to have an explicit delimter character like ':' (or '/' or > > whatever) ? > > > > those are not meant to be end-user visible anyway so no I do not > expect any confustion. Nor do I suggest making them lower case - > we could fix all occurences in kernel instead :) > > if you want to use separator, = is probably better. v=XXXp=YYY well, parsing pnp would be easiser because the id is always 7 letters, so no need for that... > > at first i'll try to add the support of old isapnp format for > > compatibility, so that old programs can work as they are. > > > > ??? old programs do not know about modules.alias at all. Or I > do not understand what you mean. no, not modules.alias but the old modules.isapnpmap, which depmod should generate, too. > > 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? > because the point of modules.alias is to follow the same logic (to > determine which driver to load), where do ->devs fit in? > > well, i'm not sure which identifier (separator) letter in which style > > should be used. something like > > pnp:idXXXxxxxd0XXXxxxxd1XXXXxxxx > > leave it as is, it is just fine actually. Assuming you really need > those extra IDs at all. > > What application do you have in mind? I aim at hotplug, i.e. > (isa|bios)pnp after getting list of devices would call hotplug to load > drivers. So i need the same logic as in driver matching and this > does not need extra IDs. yes, sure, the alias stuff should reflect to the driver's probing logic. well, in the case of hotplug, the device ids aren't meaningful, because (so far) there is no confliction between drivers with the same card id. i mean, in theory, it's possible that the driver A supports only ids X:Y while the driver B X:Z (where X is the card id, Y and Z are device ids). -- Takashi Iwai ALSA Developer - www.alsa-project.org