On Tue, Oct 04, 2016 at 08:41:45PM +0200, Mathieu Malaterre wrote: > Hi Len, > > Here is the release function I am using: > > static void offb_destroy(struct fb_info *info) > { > struct offb_par *par = (struct offb_par *) info->par; > if (info->screen_base) > iounmap(info->screen_base); > if (par->cmap_adr != NULL) { > iounmap(par->cmap_adr); > par->cmap_adr = NULL; > } > release_mem_region(info->apertures->ranges[0].base, > info->apertures->ranges[0].size); > framebuffer_release(info); > } > > > (you need the cast to avoid warning about deref of void*). > > And if I do `modprobe radeonfb`: > > [ 72.163546] bus: 'pci': add driver radeonfb > [ 72.163618] bus: 'pci': driver_probe_device: matched device > 0000:00:10.0 with driver radeonfb > [ 72.163627] bus: 'pci': really_probe: probing driver radeonfb with > device 0000:00:10.0 > [ 72.163651] devices_kset: Moving 0000:00:10.0 to end of list > [ 72.163659] radeonfb_pci_register BEGIN > [ 72.163680] radeonfb 0000:00:10.0: enabling device (0006 -> 0007) > [ 72.163721] radeonfb 0000:00:10.0: BAR 0: can't reserve [mem > 0x98000000-0x9fffffff pref] > [ 72.163726] radeonfb (0000:00:10.0): cannot request region 0. > [ 72.163746] radeonfb: probe of 0000:00:10.0 failed with error -16
Could you put a print statement in offb_destroy to make sure that is actually being called? And this is radeonfb with code added to actually try to kick out offb, right? -- Len Sorensen