[alsa-devel] [PATCH] opl3sa2: drop snd_card pointer from the snd_opl3sa2 structure

Rene Herman rene.herman at keyaccess.nl
Sun Aug 17 20:26:10 CEST 2008


On 17-08-08 20:01, Krzysztof Helt wrote:

> From: Krzysztof Helt <krzysztof.h1 at wp.pl>
> 
> Remove card pointer from the snd_opl3sa2
> structure and break circular reference
> snd_card->snd_opl3sa2->snd_card.
> 
> Signed-off-by: Krzysztof Helt <krzysztof.h1 at wp.pl>

Acked-by: Rene Herman <rene.herman at gmail.com>

Note, you had me worried for a bit as you reminded me I still have a 
patch pending to pass the card->dev to snd_pcm_preallocate_pages() in 
order to stop using the magic "NULL dev means ISA" behaviour in the DMA 
layer (meaning we need a chip->card) but this "chip" isn't in fact "a 
chip" so fine here.

> @@ -298,12 +296,14 @@ static int __devinit snd_opl3sa2_detect(
>  static irqreturn_t snd_opl3sa2_interrupt(int irq, void *dev_id)
>  {
>  	unsigned short status;
> -	struct snd_opl3sa2 *chip = dev_id;
> +	struct snd_card *card = dev_id;
> +	struct snd_opl3sa2 *chip;
>  	int handled = 0;
>  
> -	if (chip == NULL || chip->card == NULL)
> +	if (card == NULL || card->private_data == NULL)

micro-comment: card->private_data can't actually be NULL on initialized 
card (it's card + n) but yes, I guess we're pretending we don't know that...

Rene.


More information about the Alsa-devel mailing list