Re: CSR ARM SoC Subarchitecture preview

Barry Song
2011-05-25T02:25:16Z

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=UTF-8, Size: 21219 bytes --]

2011/5/25 Barry Song <21cnbao@gmail.com>:
> Hi Arnd,
> thanks! since the discussion has been much different with original
> subject. i move to a new thread.
>
> 2011/5/24 Arnd Bergmann <arnd@arndb.de>:
>> 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.
>
> good idea. then i will branch 2.6.38 for merging device tree and other
> new changes.
>
>>
>>> Â 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.
>
> i have noticed the pinmux from Linus Walleij. that is a task we want to do.
>
>>
>>> Â 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.
>
> ok. looks like they should be limited to use in special drivers for
> low coupling and other drivers call functions not access registers
> directly.
> then i will check whether they are overall shared, which cause them be
> in mach head files.
>
>>
>>> Â 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.
>
> things related with driver framework/callbacks will be moved out.
> platform_device data/hardware-related callbacks will be kept. but if
> device tree supports platform_device data/callbacks good, i will take
> a look whether we can delete as many as possible.
>
>>
>>> Â 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.
>
> before prima2 SoC, we have mach-atlas4, Â mach-atlas5 and mach-prima.
> after prima2, we will have mach-atlas6. many ip cores are shared
> between these SoCs, then there is a plat.
> but we will not maintain old mach-atlas4, Â mach-atlas5 and mach-prima
> for the current and future kernel. the new mach-atlas6 is the coming
> SoC we will upstream after mach-prima2.
>
>>
>> What other mach-* do you expect to see in the future using plat-sirfsoc,
>> and how similar are they to prima2?
>
> plat-sirfsoc should be things shared by mach-prima2/mach-atlas6 and
> other future SoCs.
>
>>
>>> Â 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.
>
> good.
>
>>
>>> Â 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.
>
> good.
>
>>
>>> Â 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.
> sorry for not exculding this file in diff.
> perfmon is a IP included by our old atlas5 and doesn't exist in
> prima2, which exports bus bandwidth and latency. it is not related
> with STM. and it is not based on perf too. Â people wrote this driver a
> long time ago and simply exported some registers to userspace by proc.
> it should not be in our final patches.
>
>>
>>> Â 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.
>
> most GPS are /dev/ttySn to userspace, they are connected to SoC by
> uart. Â DSP is one of CSR's main product lines. An internal DSP in SoC

sorry for typo. *GPS* is one of CSR's main product lines.

> handles GPS and we use this driver to communicate with the DSP. i will
> take a look whether we can have better framework than a simple char
> device.
>
>>
>>> Â nanddisk/Kconfig Â  Â  Â  Â  Â  Â  Â  Â  Â  Â | Â  17
>>> Â nanddisk/Makefile Â  Â  Â  Â  Â  Â  Â  Â  Â  | Â  Â 5
>>> Â nanddisk/nand.c Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  | Â 937 +++++++++++++
>>> Â nanddisk/nanddisk.h Â  Â  Â  Â  Â  Â  Â  Â  | Â 702 ++++++++++
>>
>> How does this relate to drivers/mtd?
>
> that is a big issue to upstream. CSR built a NTFL supporting both
> WINCE/Linux with good performance and proved reliable products. the
> NTFL is a binary. NAND disk is a up level block driver to call API in
> the NTFL binary.
> that makes the NAND related codes very difficult to be accepted since
> it is completely not based on MTD. i hope we can also have a MTD based
> driver and compare the performance of Â UBI on MTD and current
> solution.
>
>>
>>> Â net/dm9000.c Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â | Â 290 +---
>>> Â net/dm9000.h Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â | Â  Â 8
>>
>> Ah, code removal ;-)
>
> sure. some guys hacked dm9000 to make it work on my debug board. but
> it is unneccessary since we can modify related platform data in
> arch/arm.
>
>>
>>> Â 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?
>
> it depends on the whole schedule and resources of the related teams.
> i'd like to see the stronger KMS driver.
>
>>
>>> 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
>>
> -barry
>
ÿôèº{.nÇ+‰·Ÿ®‰­†+%ŠËÿ±éÝ¶\x17¥Šwÿº{.nÇ+‰·¥Š{±þG«éÿŠ{ayº\x1dÊ‡Ú™ë,j\a­¢f£¢·hšïêÿ‘êçz_è®\x03(­éšŽŠÝ¢j"ú\x1a¶^[m§ÿÿ¾\a«þG«éÿ¢¸?™¨è­Ú&£ø§~á¶iO•æ¬z·švØ^\x14\x04\x1a¶^[m§ÿÿÃ\fÿ¶ìÿ¢¸?–I¥