lkml.org 
[lkml]   [2003]   [Dec]   [3]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateWed, 03 Dec 2003 12:22:39 +0100
FromTakashi Iwai <>
SubjectRe: vanilla 2.6.0-test11 and CS4236 card
Hi Adam,

At Tue, 2 Dec 2003 23:44:32 +0000,
Adam Belay wrote:
> Here's a slight cleanup of the above patch -- tested with the cs4232 driver.
> Any additional testing would be appreciated.
> 
> --- a/drivers/pnp/card.c	2003-11-26 20:45:38.000000000 +0000
> +++ b/drivers/pnp/card.c	2003-12-02 23:06:55.000000000 +0000
> @@ -26,8 +26,18 @@
>  {
>  	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;
> +		if (compare_pnp_id(card->id,drv_id->id)) {
> +			int i = 0;
> +			for (;;i++) {
> +				struct pnp_dev *dev;
> +				if (i == PNP_MAX_DEVICES || ! *drv_id->devs[i].id)
> +					return drv_id;
> +				card_for_each_dev(card, dev) {
> +					if (!compare_pnp_id(dev->id, drv_id->devs[i].id))
> +						break;
> +				}
> +			}
> +		}
>  		drv_id++;
>  	}
>  	return NULL;
> 

i think the patch above doesn't work properly since it will continue
even if no devices match.  so, the loop after comparison of card id
makes no sense.


> In this case we could also just continue if the MPU device isn't present.  It
> would probably be a good convention to do so because if, for whatever reason
> (3rd party driver, resource conflicts, etc), the MPU device is busy in any
> matched card id set, the entire probe would fail.
> 
> How about something like this? (untested)
> 
> --- a/sound/isa/cs423x/cs4236.c	2003-11-26 20:43:05.000000000 +0000
> +++ b/sound/isa/cs423x/cs4236.c	2003-12-02 23:36:59.000000000 +0000
> @@ -294,13 +294,8 @@
>  		kfree(cfg);
>  		return -EBUSY;
>  	}
> -	if (id->devs[2].id[0]) {
> +	if (id->devs[2].id[0])
>  		acard->mpu = pnp_request_card_device(card, id->devs[2].id, NULL);
> -		if (acard->mpu == NULL) {
> -			kfree(cfg);
> -			return -EBUSY;
> -		}
> -	}
> 
>  	/* WSS initialization */
>  	pdev = acard->wss;

this looks fine to me.


ciao,

Takashi
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 12:59    [from the cache]
©2003-2008