From: Arnd Bergmann <arnd@arndb.de>
To: Barry Song <21cnbao@gmail.com>
Cc: Nicolas Pitre <nico@fluxnic.net>,
linux-arm-kernel@lists.infradead.org,
Linus Torvalds <torvalds@linux-foundation.org>,
Thomas Gleixner <tglx@linutronix.de>,
Russell King <linux@arm.linux.org.uk>,
lkml <linux-kernel@vger.kernel.org>
Subject: Re: [RFC] ARM Subarchitecture group maintainership
Date: Tue, 24 May 2011 14:26:47 +0200 [thread overview]
Message-ID: <201105241426.47628.arnd@arndb.de> (raw)
In-Reply-To: <BANLkTinX-7GPaEXGwiNzK4bXiU7-cZk4Qw@mail.gmail.com>
On Tuesday 24 May 2011, Barry Song wrote:
> 2011/5/19 Arnd Bergmann <arnd@arndb.de>
>
> > If you can just post a diffstat of the stuff you currently have,
> > we also get an impression of the amount of code that you are
> > talking about.
> Arnd, thanks very much for thinking. Now the codes are based on 2.6.38
> and not quanified for sending patches. we will port them to be
> againest linux's tree.
Thanks for the diffstat, that is very helpful as an estimate. It appears
that there is a large amount of work ahead of you in this, so by the
time you get ready for inclusion, we will most certainly require this
to be based on device tree for probing of all devices. I'd strongly
recommend that you investigate what that means for you before you port
a lot of the code to 2.6.39 or 2.6.40.
Since the timing is a bit unfortunate for you, you might want to stay
on 2.6.38 with the full port and not spend too much time on forward
porting all of it, but instead migrate the drivers to be based on
device tree properties rather than platform data, so you can submit
the drivers individually upstream.
> mach-prima2/Kconfig | 32
> mach-prima2/Makefile | 11
> mach-prima2/Makefile.boot | 3
> mach-prima2/devices.c | 191 +
> mach-prima2/include/mach/cache-sirfsoc-prima2-l2.h | 12
> mach-prima2/include/mach/clkdev.h | 5
> mach-prima2/include/mach/debug-macro.S | 38
> mach-prima2/include/mach/entry-macro.S | 31
> mach-prima2/include/mach/gpio.h | 5
> mach-prima2/include/mach/hardware.h | 10
> mach-prima2/include/mach/io.h | 20
> mach-prima2/include/mach/irqs.h | 284 +
> mach-prima2/include/mach/isa-dma.h | 13
> mach-prima2/include/mach/map.h | 263 +
> mach-prima2/include/mach/memory.h | 56
The irqs.h and map.h are the largest by far here, and they should go
away for the most part with the move to device tree.
> mach-prima2/include/mach/prima2.h | 20
> mach-prima2/include/mach/prima2_pinmux.h | 39
> mach-prima2/include/mach/prima2cb.h | 111
There is a new pinmux subsystem in the works, so you probably
end up having to write a new driver for that subsystem.
> mach-prima2/include/mach/regs-iobrg.h | 54
> mach-prima2/include/mach/regs-irq.h | 42
> mach-prima2/include/mach/regs-reset.h | 88
> mach-prima2/include/mach/regs-rsc.h | 76
For the registers, they can go together with the respective drivers
using them.
> mach-prima2/include/mach/system.h | 5
> mach-prima2/include/mach/timex.h | 5
> mach-prima2/include/mach/uncompress.h | 45
> mach-prima2/include/mach/vmalloc.h | 19
> mach-prima2/lcdinit.c | 136
> mach-prima2/mach-prima2cb.c | 226 +
> mach-prima2/padmode.c | 139
> mach-prima2/prima2.c | 81
> mach-prima2/prima2cb-keypad.c | 136
> mach-prima2/pwrc.c | 286 +
> mach-prima2/tsc2100_dev.c | 137
Any drivers in here should get moved to a proper place in drivers/*/
eventually, out of the subarchitecture code.
> mm/Kconfig | 13
> mm/Makefile | 1
> mm/cache-sirfsoc-prima2-l2.c | 342 +
> plat-sirfsoc/Kconfig | 108
> plat-sirfsoc/Makefile | 34
> plat-sirfsoc/adc.c | 1395 ++++++++
> plat-sirfsoc/adcprocfs.c | 348 ++
> plat-sirfsoc/apm.c | 107
> plat-sirfsoc/clock.c | 1045 ++++++
> plat-sirfsoc/clock.h | 32
> plat-sirfsoc/core.c | 245 +
> plat-sirfsoc/cpufreq.c | 239 +
> plat-sirfsoc/deepsleep.S | 425 ++
> plat-sirfsoc/dma.c | 386 ++
> plat-sirfsoc/hibernate.h | 118
Same here.
> plat-sirfsoc/include/plat/audio_controller.h | 333 +
> plat-sirfsoc/include/plat/belmont.h | 92
> plat-sirfsoc/include/plat/bootmem.h | 45
> plat-sirfsoc/include/plat/clkdev.h | 15
> plat-sirfsoc/include/plat/cpld.h | 27
> plat-sirfsoc/include/plat/cpld_evb.h | 200 +
> plat-sirfsoc/include/plat/cpld_fpga.h | 201 +
> plat-sirfsoc/include/plat/cpu.h | 51
> plat-sirfsoc/include/plat/debug-macro.S | 34
> plat-sirfsoc/include/plat/gpio.h | 92
> plat-sirfsoc/include/plat/hardware.h | 28
> plat-sirfsoc/include/plat/iobrg.h | 17
> plat-sirfsoc/include/plat/irqs.h | 320 +
> plat-sirfsoc/include/plat/isa-dma.h | 111
> plat-sirfsoc/include/plat/lcd_panels.h | 33
> plat-sirfsoc/include/plat/map.h | 233 +
> plat-sirfsoc/include/plat/memory.h | 43
> plat-sirfsoc/include/plat/perfmon.h | 62
> plat-sirfsoc/include/plat/pinmux.h | 23
It's not clear yet what will happen in the long run to the split between
mach-* and plat-* directories. Ideally, we would not need them to be
separate if we can completely abstract the SoCs within their broader
families, but we might not get that far before you merge your platform.
What other mach-* do you expect to see in the future using plat-sirfsoc,
and how similar are they to prima2?
> plat-sirfsoc/include/plat/platform_device/android_usb_dev.h | 27
> plat-sirfsoc/include/plat/platform_device/audio.h | 28
> plat-sirfsoc/include/plat/platform_device/bt_codec.h | 26
> plat-sirfsoc/include/plat/platform_device/eth.h | 26
> plat-sirfsoc/include/plat/platform_device/gps.h | 40
> plat-sirfsoc/include/plat/platform_device/i2c.h | 27
> plat-sirfsoc/include/plat/platform_device/inner_audio.h | 26
> plat-sirfsoc/include/plat/platform_device/lcd.h | 85
> plat-sirfsoc/include/plat/platform_device/mbx.h | 37
> plat-sirfsoc/include/plat/platform_device/modac.h | 26
> plat-sirfsoc/include/plat/platform_device/mved.h | 36
> plat-sirfsoc/include/plat/platform_device/nand.h | 27
> plat-sirfsoc/include/plat/platform_device/pmem.h | 27
> plat-sirfsoc/include/plat/platform_device/pwm_dev.h | 31
> plat-sirfsoc/include/plat/platform_device/rtc.h | 27
> plat-sirfsoc/include/plat/platform_device/sata.h | 33
> plat-sirfsoc/include/plat/platform_device/sd.h | 31
> plat-sirfsoc/include/plat/platform_device/serial.h | 82
> plat-sirfsoc/include/plat/platform_device/sirfsoc_ts.h | 31
> plat-sirfsoc/include/plat/platform_device/snd.h | 30
> plat-sirfsoc/include/plat/platform_device/spi.h | 53
> plat-sirfsoc/include/plat/platform_device/spi_sirfsoc_gpio.h | 34
> plat-sirfsoc/include/plat/platform_device/ts_stream_mode.h | 26
> plat-sirfsoc/include/plat/platform_device/usb.h | 40
> plat-sirfsoc/include/plat/platform_device/usppcm.h | 25
> plat-sirfsoc/include/plat/platform_device/uspserial.h | 45
> plat-sirfsoc/include/plat/platform_device/uspspi.h | 33
> plat-sirfsoc/include/plat/platform_device/vpp.h | 27
> plat-sirfsoc/include/plat/platform_device/vxd.h | 27
> plat-sirfsoc/include/plat/platform_device/wdt.h | 26
> plat-sirfsoc/platform_device/Makefile | 36
> plat-sirfsoc/platform_device/android_usb_dev.c | 60
> plat-sirfsoc/platform_device/audio_dev.c | 88
> plat-sirfsoc/platform_device/bt_codec_dev.c | 26
> plat-sirfsoc/platform_device/camera_dev.c | 286 +
> plat-sirfsoc/platform_device/eth_dev.c | 75
> plat-sirfsoc/platform_device/gps_dev.c | 106
> plat-sirfsoc/platform_device/i2c_dev.c | 124
> plat-sirfsoc/platform_device/inner_audio_dev.c | 75
> plat-sirfsoc/platform_device/lcd_dev.c | 156
> plat-sirfsoc/platform_device/mbx_dev.c | 74
> plat-sirfsoc/platform_device/modac_dev.c | 67
> plat-sirfsoc/platform_device/mved_dev.c | 70
> plat-sirfsoc/platform_device/nand_dev.c | 75
> plat-sirfsoc/platform_device/pmem_dev.c | 59
> plat-sirfsoc/platform_device/pwm_device.c | 79
> plat-sirfsoc/platform_device/sata_dev.c | 64
> plat-sirfsoc/platform_device/sdmmc_dev.c | 108
> plat-sirfsoc/platform_device/serial_dev.c | 241 +
> plat-sirfsoc/platform_device/sirfsoc_rtcdev.c | 78
> plat-sirfsoc/platform_device/sirfsoc_tsdev.c | 65
> plat-sirfsoc/platform_device/spi_dev.c | 163
> plat-sirfsoc/platform_device/spigpio_dev.c | 75
> plat-sirfsoc/platform_device/ts_stream_mode_dev.c | 64
> plat-sirfsoc/platform_device/usb_dev.c | 120
> plat-sirfsoc/platform_device/usppcm_dev.c | 69
> plat-sirfsoc/platform_device/uspserial_dev.c | 197 +
> plat-sirfsoc/platform_device/uspspi_dev.c | 97
> plat-sirfsoc/platform_device/vpp_dev.c | 70
> plat-sirfsoc/platform_device/vxd_dev.c | 68
> plat-sirfsoc/platform_device/wdt_dev.c | 41
These will probably all get replaced with device tree bindings.
> plat-sirfsoc/include/plat/pm.h | 41
> plat-sirfsoc/include/plat/pwm.h | 63
> plat-sirfsoc/include/plat/regs-clkc.h | 33
> plat-sirfsoc/include/plat/regs-gpio.h | 43
> plat-sirfsoc/include/plat/regs-irq.h | 39
> plat-sirfsoc/include/plat/regs-modac.h | 114
> plat-sirfsoc/include/plat/regs-power.h | 77
> plat-sirfsoc/include/plat/regs-pwm.h | 37
> plat-sirfsoc/include/plat/regs-pwrc.h | 62
> plat-sirfsoc/include/plat/regs-reset.h | 73
> plat-sirfsoc/include/plat/regs-rsc.h | 78
> plat-sirfsoc/include/plat/regs-rtc.h | 41
> plat-sirfsoc/include/plat/regs-serial.h | 87
> plat-sirfsoc/include/plat/regs-timer.h | 39
> plat-sirfsoc/include/plat/regs-vip.h | 98
> plat-sirfsoc/include/plat/sd.h | 110
> plat-sirfsoc/include/plat/sirfsoc_adc.h | 261 +
> plat-sirfsoc/include/plat/sirfsoc_usp.h | 288 +
And these can hopefully all get moved next to the respective drivers.
> plat-sirfsoc/include/plat/system.h | 39
> plat-sirfsoc/include/plat/timex.h | 33
> plat-sirfsoc/include/plat/uncompress.h | 46
> plat-sirfsoc/include/plat/vmalloc.h | 26
> plat-sirfsoc/irq.c | 102
> plat-sirfsoc/lcd_panels.c | 281 +
> plat-sirfsoc/led.c | 340 +
> plat-sirfsoc/perfmon.c | 1347 +++++++
For the perfmon implementation, I would recommend splitting it out of the
submission at the beginning. If it's based on perf, it should be easy to
add at a later stage. Otherwise, it's not going anywhere. If it's related
to the ARM system trace macrocell, I'd recommend posting the code now
(independent of the rest), because other people are interested in getting
that to work.
> plat-sirfsoc/pinmux.c | 992 +++++
-> pinmux subsystem
> for drivers/:
> Kconfig | 2
> Makefile | 1
> char/sirfsoc_gps.c | 878 +++++++++++++
> char/sirfsoc_gpsdrv.h | 134 +
> input/misc/gpio_event.c | 253 +++
A new user space interface is always hard to establish. If you want these
to get in, you should start way ahead of the other drivers that simply
implement an existing interface.
If the gps driver is just a tty device like a serial port, it should
now be moved into drivers/tty.
> nanddisk/Kconfig | 17
> nanddisk/Makefile | 5
> nanddisk/nand.c | 937 +++++++++++++
> nanddisk/nanddisk.h | 702 ++++++++++
How does this relate to drivers/mtd?
> net/dm9000.c | 290 +---
> net/dm9000.h | 8
Ah, code removal ;-)
> video/Kconfig | 24
> video/Makefile | 2
> video/backlight/Makefile | 1
> video/sirfsoc_clcdc.h | 269 ++++
> video/sirfsoc_fb.c | 2369 +++++++++++++++++++++++++++++++++++
> video/sirfsoc_vpp.c | 1166 +++++++++++++++++
Have you considered doing a KMS device driver instead of an old-style
frame buffer?
> i want to upstream steps by steps. send arch/arm patches for reviewing
> at first, then clean-up drivers and send patches to subsystem for
> reviewing. There are really too many issues waiting for refination in
> arch/arm for the moment, we have more than 20 tasks for team to work.
Ok, no problem.
Arnd
next prev parent reply other threads:[~2011-05-24 12:26 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-18 8:47 [RFC] ARM Subarchitecture group maintainership Arnd Bergmann
2011-05-18 14:53 ` Catalin Marinas
2011-05-25 7:59 ` Tony Lindgren
2011-05-25 14:28 ` Nicolas Pitre
2011-05-25 15:34 ` Tony Lindgren
2011-05-25 16:06 ` Thomas Gleixner
2011-05-26 8:28 ` Mark Brown
2011-05-26 8:33 ` Thomas Gleixner
2011-05-26 9:59 ` Mark Brown
2011-05-26 10:13 ` Arnd Bergmann
2011-05-18 15:22 ` Shawn Guo
2011-05-18 15:27 ` Anca Emanuel
2011-05-19 12:13 ` Arnd Bergmann
2011-05-18 15:56 ` Jean-Christophe PLAGNIOL-VILLARD
2011-05-18 21:24 ` Thomas Gleixner
2011-05-18 21:47 ` Catalin Marinas
2011-05-18 20:49 ` David Brown
2011-05-19 1:27 ` Barry Song
2011-05-19 2:42 ` Nicolas Pitre
2011-05-19 3:01 ` Barry Song
2011-05-19 13:31 ` Linus Walleij
2011-05-19 19:28 ` Russell King - ARM Linux
2011-05-19 19:31 ` Nicolas Pitre
2011-05-19 13:50 ` Arnd Bergmann
2011-05-19 14:23 ` Barry Song
2011-05-19 15:08 ` Arnd Bergmann
2011-05-24 9:23 ` Barry Song
2011-05-24 12:26 ` Arnd Bergmann [this message]
2011-05-27 5:34 ` viresh kumar
2011-05-27 7:24 ` Arnd Bergmann
2011-05-19 12:20 ` Arnd Bergmann
2011-05-19 3:38 ` viresh kumar
2011-05-20 20:48 ` Linus Walleij
2011-05-20 20:59 ` Joe Perches
2011-05-21 8:23 ` Arnd Bergmann
2011-05-25 8:10 ` Nicolas Ferre
2011-05-25 8:23 ` Sascha Hauer
2011-05-25 16:19 ` H Hartley Sweeten
2011-05-26 16:14 ` Kevin Hilman
2011-05-27 0:01 ` Kyungmin Park
2011-07-26 18:03 ` Stephen Boyd
2011-07-27 1:47 ` Barry Song
2011-07-27 2:23 ` Stephen Boyd
2011-07-27 14:55 ` Arnd Bergmann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201105241426.47628.arnd@arndb.de \
--to=arnd@arndb.de \
--cc=21cnbao@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=nico@fluxnic.net \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox