Message ID | 1305637877-24436-2-git-send-email-marc.zyngier@arm.com |
---|---|
State | New, archived |
Headers | show |
On Tue, 2011-05-17 at 14:11 +0100, Marc Zyngier wrote: > In the process of moving platforms away from integrator-flash > (aka armflash), add to physmap the few features that make > armflash unique: > > - optionnal probing for the AFS partition type > - init() and exit() methods, used by Integrator to control > write access to the various onboard programmable components > > Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> > Acked-by: Catalin Marinas <catalin.marinas@arm.com> > Cc: David Woodhouse <dwmw2@infradead.org> Acked-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Hello. Marc Zyngier wrote: > In the process of moving platforms away from integrator-flash > (aka armflash), add to physmap the few features that make > armflash unique: > - optionnal probing for the AFS partition type > - init() and exit() methods, used by Integrator to control > write access to the various onboard programmable components > Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> > Acked-by: Catalin Marinas <catalin.marinas@arm.com> > Cc: David Woodhouse <dwmw2@infradead.org> [...] > diff --git a/include/linux/mtd/physmap.h b/include/linux/mtd/physmap.h > index bcfd9f7..d37cca0 100644 > --- a/include/linux/mtd/physmap.h > +++ b/include/linux/mtd/physmap.h > @@ -22,6 +22,8 @@ struct map_info; > > struct physmap_flash_data { > unsigned int width; > + int (*init)(struct platform_device *); > + void (*exit)(struct platform_device *); How about a declaration for 'struct platform_device' beforehand? This breaks build on other platforms at least... WBR, Sergei
On Tue, 31 May 2011 23:11:14 +0400 Sergei Shtylyov <sshtylyov@mvista.com> wrote: > Hello. > > Marc Zyngier wrote: > > > In the process of moving platforms away from integrator-flash > > (aka armflash), add to physmap the few features that make > > armflash unique: > > > - optionnal probing for the AFS partition type > > - init() and exit() methods, used by Integrator to control > > write access to the various onboard programmable components > > > Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> > > Acked-by: Catalin Marinas <catalin.marinas@arm.com> > > Cc: David Woodhouse <dwmw2@infradead.org> > [...] > > > diff --git a/include/linux/mtd/physmap.h b/include/linux/mtd/physmap.h > > index bcfd9f7..d37cca0 100644 > > --- a/include/linux/mtd/physmap.h > > +++ b/include/linux/mtd/physmap.h > > @@ -22,6 +22,8 @@ struct map_info; > > > > struct physmap_flash_data { > > unsigned int width; > > + int (*init)(struct platform_device *); > > + void (*exit)(struct platform_device *); > > How about a declaration for 'struct platform_device' beforehand? This breaks > build on other platforms at least... Sure. Please send a patch. M.
On Tue, May 31, 2011 at 17:44, Marc Zyngier wrote: > On Tue, 31 May 2011 23:11:14 +0400 Sergei Shtylyov wrote: >> Marc Zyngier wrote: >> > In the process of moving platforms away from integrator-flash >> > (aka armflash), add to physmap the few features that make >> > armflash unique: >> >> > - optionnal probing for the AFS partition type >> > - init() and exit() methods, used by Integrator to control >> > write access to the various onboard programmable components >> >> > Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> >> > Acked-by: Catalin Marinas <catalin.marinas@arm.com> >> > Cc: David Woodhouse <dwmw2@infradead.org> >> [...] >> >> > diff --git a/include/linux/mtd/physmap.h b/include/linux/mtd/physmap.h >> > index bcfd9f7..d37cca0 100644 >> > --- a/include/linux/mtd/physmap.h >> > +++ b/include/linux/mtd/physmap.h >> > @@ -22,6 +22,8 @@ struct map_info; >> > >> > struct physmap_flash_data { >> > unsigned int width; >> > + int (*init)(struct platform_device *); >> > + void (*exit)(struct platform_device *); >> >> How about a declaration for 'struct platform_device' beforehand? This breaks >> build on other platforms at least... > > Sure. Please send a patch. uhh, what ? you broke things, so you fix them. i already pointed out this breakage to you over a week ago. -mike
On Tue, 2011-05-31 at 22:20 -0400, Mike Frysinger wrote: > On Tue, May 31, 2011 at 17:44, Marc Zyngier wrote: > > On Tue, 31 May 2011 23:11:14 +0400 Sergei Shtylyov wrote: > >> Marc Zyngier wrote: > >> > In the process of moving platforms away from integrator-flash > >> > (aka armflash), add to physmap the few features that make > >> > armflash unique: > >> > >> > - optionnal probing for the AFS partition type > >> > - init() and exit() methods, used by Integrator to control > >> > write access to the various onboard programmable components > >> > >> > Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> > >> > Acked-by: Catalin Marinas <catalin.marinas@arm.com> > >> > Cc: David Woodhouse <dwmw2@infradead.org> > >> [...] > >> > >> > diff --git a/include/linux/mtd/physmap.h b/include/linux/mtd/physmap.h > >> > index bcfd9f7..d37cca0 100644 > >> > --- a/include/linux/mtd/physmap.h > >> > +++ b/include/linux/mtd/physmap.h > >> > @@ -22,6 +22,8 @@ struct map_info; > >> > > >> > struct physmap_flash_data { > >> > unsigned int width; > >> > + int (*init)(struct platform_device *); > >> > + void (*exit)(struct platform_device *); > >> > >> How about a declaration for 'struct platform_device' beforehand? This breaks > >> build on other platforms at least... > > > > Sure. Please send a patch. > > uhh, what ? you broke things, so you fix them. i already pointed out > this breakage to you over a week ago. > -mike The change went in via Russell's tree, I sent him a fix. It looks like he did not merge it. Now I'm not sure who should merge this patch. I'll ping dwmw2.
Hello. Artem Bityutskiy wrote: >>>>> In the process of moving platforms away from integrator-flash >>>>> (aka armflash), add to physmap the few features that make >>>>> armflash unique: >>>>> - optionnal probing for the AFS partition type >>>>> - init() and exit() methods, used by Integrator to control >>>>> write access to the various onboard programmable components >>>>> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> >>>>> Acked-by: Catalin Marinas <catalin.marinas@arm.com> >>>>> Cc: David Woodhouse <dwmw2@infradead.org> >>>> [...] >>>>> diff --git a/include/linux/mtd/physmap.h b/include/linux/mtd/physmap.h >>>>> index bcfd9f7..d37cca0 100644 >>>>> --- a/include/linux/mtd/physmap.h >>>>> +++ b/include/linux/mtd/physmap.h >>>>> @@ -22,6 +22,8 @@ struct map_info; >>>>> >>>>> struct physmap_flash_data { >>>>> unsigned int width; >>>>> + int (*init)(struct platform_device *); >>>>> + void (*exit)(struct platform_device *); >>>> How about a declaration for 'struct platform_device' beforehand? This breaks >>>> build on other platforms at least... >>> Sure. Please send a patch. >> uhh, what ? you broke things, so you fix them. i already pointed out >> this breakage to you over a week ago. >> -mike > The change went in via Russell's tree, I sent him a fix. It looks like > he did not merge it. Russell doesn't merge patches sent to him AFAIK, they need to be put into his patch system first. WBR, Sergei
diff --git a/drivers/mtd/maps/physmap.c b/drivers/mtd/maps/physmap.c index 7522df4..49676b7 100644 --- a/drivers/mtd/maps/physmap.c +++ b/drivers/mtd/maps/physmap.c @@ -67,6 +67,10 @@ static int physmap_flash_remove(struct platform_device *dev) if (info->mtd[i] != NULL) map_destroy(info->mtd[i]); } + + if (physmap_data->exit) + physmap_data->exit(dev); + return 0; } @@ -77,7 +81,11 @@ static const char *rom_probe_types[] = { "map_rom", NULL }; #ifdef CONFIG_MTD_PARTITIONS -static const char *part_probe_types[] = { "cmdlinepart", "RedBoot", NULL }; +static const char *part_probe_types[] = { "cmdlinepart", "RedBoot", +#ifdef CONFIG_MTD_AFS_PARTS + "afs", +#endif + NULL }; #endif static int physmap_flash_probe(struct platform_device *dev) @@ -100,6 +108,12 @@ static int physmap_flash_probe(struct platform_device *dev) goto err_out; } + if (physmap_data->init) { + err = physmap_data->init(dev); + if (err) + goto err_out; + } + platform_set_drvdata(dev, info); for (i = 0; i < dev->num_resources; i++) { diff --git a/include/linux/mtd/physmap.h b/include/linux/mtd/physmap.h index bcfd9f7..d37cca0 100644 --- a/include/linux/mtd/physmap.h +++ b/include/linux/mtd/physmap.h @@ -22,6 +22,8 @@ struct map_info; struct physmap_flash_data { unsigned int width; + int (*init)(struct platform_device *); + void (*exit)(struct platform_device *); void (*set_vpp)(struct map_info *, int); unsigned int nr_parts; unsigned int pfow_base;