[PATCH 10/13] mac68k: start CUDA early

Benjamin Herrenschmidt benh at kernel.crashing.org
Tue Nov 17 13:03:41 EST 2009


On Wed, 2009-11-04 at 00:46 +1100, Finn Thain wrote:
> The valkyriefb driver needs the CUDA to work in order to set the video 
> mode at boot. Initialising the device earlier, and bring the m68k code 
> closer to the powermac code.
> 
> Signed-off-by: Finn Thain <fthain at telegraphics.com.au>

Hi Finn !

> @@ -224,20 +249,9 @@ cuda_probe(void)
>  static int __init
>  cuda_init(void)
>  {
> -#ifdef CONFIG_PPC
>      if (via == NULL)
>  	return -ENODEV;
>      return 0;
> -#else 
> -    int err = cuda_init_via();
> -    if (err) {
> -	printk(KERN_ERR "cuda_init_via() failed\n");
> -	return -ENODEV;
> -    }
> -    out_8(&via[IER], IER_SET|SR_INT); /* enable interrupt from SR */
> -
> -    return via_cuda_start();
> -#endif
>  }
>  #endif /* CONFIG_ADB */

Can't we just get rid of cuda_init() completely ?
 
> @@ -430,9 +444,12 @@ cuda_poll(void)
>      /* cuda_interrupt only takes a normal lock, we disable
>       * interrupts here to avoid re-entering and thus deadlocking.
>       */
> -    disable_irq(cuda_irq);
> -    cuda_interrupt(0, NULL);
> -    enable_irq(cuda_irq);
> +    if (cuda_fully_inited) {
> +	disable_irq(cuda_irq);
> +	cuda_interrupt(0, NULL);
> +	enable_irq(cuda_irq);
> +    } else
> +	cuda_interrupt(0, NULL);
>  }

Wouldn't it be better that way ?

	if (cuda_irq)
		disable_irq(cuda_irq);
	cuda_interrupt(0, NULL);
	if (cuda_irq)
		enable_irq(cuda_irq);

Cheers,
Ben.




More information about the Linuxppc-dev mailing list