Subject: Re: [Linux-fbdev-devel] [patch 17/18] PS3: Frame buffer system-bus rework

From: "Antonino A. Daplas" <[email-masked]>
Date: Thu, 07 Jun 2007 07:37:27 +0800

On Wed, 2007-06-06 at 16:08 -0700, Geoff Levand wrote:
> Hi.
> 
> Antonino A. Daplas wrote:
> > On Wed, 2007-06-06 at 08:51 +0200, Geert Uytterhoeven wrote:
> >> This one should go through linux-fbdev-devel (CC) for review, but Paul can
> >> merge it because it depends on the PS3 system bus device rework.
> >> 
> > 
> >> >  
> >> > -static void ps3fb_shutdown(struct platform_device *dev)
> >> > +static int __devexit ps3fb_remove(struct ps3_system_bus_device *dev)
> >> >  {
> >> > -	ps3fb_flip_ctl(0);	/* flip off */
> >> > -	ps3fb.dinfo->irq.mask = 0;
> >> > -	free_irq(ps3fb.irq_no, ps3fb.dev);
> >> > -	ps3_irq_plug_destroy(ps3fb.irq_no);
> >> > -	iounmap((u8 __iomem *)ps3fb.dinfo);
> >> > +	BUG();
> > 
> > Why BUG()?
> 
> remove() doesn't work because lack of support from fbcon.

We already have console registration/unregistration support for the past
few kernel versions.

>   I'll remove
> this though, since it independent of the fbcon fix.

This is part of module_exit(), correct? Then yes, module-init-tools
will disallow rmmod to remove the module if fbcon is holding a reference
count to it. However, if fbcon is not loaded, or fbcon is not bound to
it (with an echo 0 > /sys/class/vtconsole/vtcon1/bind), then rmmod will
succeed, and so should ps3fb_remove().

Tony