Patchwork [v6,1/8] MTD: Add integrator-flash feature to physmap

login
register
mail settings
Submitter Marc Zyngier
Date May 17, 2011, 1:11 p.m.
Message ID <1305637877-24436-2-git-send-email-marc.zyngier@arm.com>
Download mbox | patch
Permalink /patch/95931/
State New
Headers show

Comments

Marc Zyngier - May 17, 2011, 1:11 p.m.
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>
---
 drivers/mtd/maps/physmap.c  |   16 +++++++++++++++-
 include/linux/mtd/physmap.h |    2 ++
 2 files changed, 17 insertions(+), 1 deletions(-)
Artem Bityutskiy - May 19, 2011, 11:14 a.m.
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>
Sergei Shtylyov - May 31, 2011, 7:11 p.m.
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
Marc Zyngier - May 31, 2011, 9:44 p.m.
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.
Mike Frysinger - June 1, 2011, 2:20 a.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
Artem Bityutskiy - June 1, 2011, 7:42 a.m.
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.
Sergei Shtylyov - June 1, 2011, 4:32 p.m.
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

Patch

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;