linux-sh.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [GIT PULL] sh updates for 2.6.35-rc1
@ 2010-05-18  9:25 Paul Mundt
  2010-05-18  9:57 ` Jaswinder Singh Rajput
  0 siblings, 1 reply; 9+ messages in thread
From: Paul Mundt @ 2010-05-18  9:25 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: linux-sh, linux-kernel

Please pull from:

	master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6.git

Which contains:

Guennadi Liakhovetski (5):
      SH: extend SCI DMA support to work on SCIFA ports
      SH: constify multiple DMA related objects and references to them
      SH: fix TS field shift calculation for DMA drivers
      SH: fix error paths in DMA driver
      sh: simplify WARN usage in SH clock driver

Hiroshi DOYU (1):
      sh: clkfwk: Use debugfs_remove_recursive() for rewinding

Kuninori Morimoto (2):
      sh: Check return value of clk_get on ecovec24
      sh: Check return value of clk_get on ms7724

Magnus Damm (52):
      sh: add INTC out of memory error handling
      sh: INTC ioremap support
      dmaengine: shdma: Remove sh_dmae_slave_chan_id enum
      dmaengine: shdma: Common SH_DMA_SLAVE_NUMBER
      serial: sh-sci: Use sg_dma_len() and sg_dma_address()
      dmaengine: shdma: Introduce include/linux/sh_dma.h
      sh: Fix maximum number of SCIF ports in R2D defconfigs
      sh: sh7751 pci controller io port fix
      sh: add CONFIG_VIRTUALIZATION for virtio support
      sh: hwblk index rework
      sh: scif and tmu clkdev changes
      sh: tie in hwblk clocks using clkdev
      sh: allow registering clocks without name
      sh: get rid of hwblk clock names
      sh: tie in div6 clocks using clkdev
      sh: get rid of div6 clock names
      sh: sh7343 mstp32 index rework
      sh: sh7343 mstp32 clkdev lookup
      sh: sh7366 mstp32 index rework
      sh: sh7366 mstp32 clkdev lookup
      sh: sh7785 mstp32 index rework
      sh: sh7785 mstp32 clkdev lookup
      sh: sh7786 mstp32 index rework
      sh: sh7786 mstp32 clkdev lookup
      sh: get rid of mstp32 clock name and id
      sh: div4 reparent workaround
      sh: sh7722 div4 clkdev lookup
      sh: sh7723 div4 clkdev lookup
      sh: sh7724 div4 clkdev lookup
      sh: sh7343 div4 clkdev lookup
      sh: sh7366 div4 clkdev lookup
      sh: sh7785 div4 clkdev lookup
      sh: sh7786 div4 clkdev lookup
      sh: get rid of div4 clock name
      sh: switch legacy clocks to clkdev
      sh: switch sh7724 to clkdev
      sh: switch sh7723 to clkdev
      sh: switch sh7722 to clkdev
      sh: switch sh7343 to clkdev
      sh: switch sh7366 to clkdev
      sh: switch sh7785 to clkdev
      sh: switch sh7786 to clkdev
      sh: switch sh7780 to clkdev
      sh: switch sh7763 to clkdev
      sh: switch sh7757 to clkdev
      sh: switch shx3 to clkdev
      sh: switch sh4-202 to clkdev
      sh: switch boards to clkdev
      sh: remove unused clock lookup
      sh: move sh asm/clock.h contents to linux/sh_clk.h V2
      sh: move sh clock.c contents to drivers/sh/clk.
      sh: move sh clock-cpg.c contents to drivers/sh/clk-cpg.c

Matt Fleming (7):
      sh: tlb debugfs support.
      sh: Assembly friendly __pa and __va definitions
      sh: Fix address to decompress at when CONFIG_32BIT=y
      sh: Fix zImage load address when CONFIG_32BIT=y
      sh: Do not try merging two 128MB PMB mappings
      sh: Use correct mask when comparing PMB DATA array values
      sh: native_cpu_disable() build error when CONFIG_HOTPLUG_CPU=n

Nick Piggin (1):
      sh: invoke oom-killer from page fault

Paul Mundt (63):
      sh: Merge clkdev API updates.
      sh: Support early clkdev allocations.
      driver core: Early dev_name() support.
      clocksource: Use dev_name() universally across the SH drivers.
      sh: Kill off all timer name clobbering.
      serial: sh-sci: clkdev updates for MSTP gating.
      driver core: Convert to kasprintf() for early dev_name().
      clocksource: Deprecate clock string across the SH drivers.
      sh: sh7786 clkdev lookups.
      sh: sh7785 clkdev lookups.
      sh: provide some clock lookup aliases for legacy CPG parts.
      sh: Kill off timer clock strings for legacy CPG parts.
      sh: sh7343 clock string death.
      sh: sh7366 clock string death.
      sh: sh7722 clock string death.
      sh: sh7723 clkdev lookups.
      sh: sh7724 clkdev lookups.
      sh: Disable MMUCR_AT for SH-4 nommu.
      sh: dmaengine support for SH7786 DMAC0.
      sh: intc: Provide sysdev name for intc controllers.
      sh: intc: Tidy up loglevel mismatches.
      sh: intc: userimask support.
      sh: Disable IRQ balancing for timer and IPI IRQs.
      sh: intc: IRQ auto-distribution support.
      sh: mach-sdk7786: pm_power_off support.
      sh: Enable SH-X3 hardware synonym avoidance handling.
      sh: dwarf unwinder needs linux/module.h.
      sh: Zero out aliases counter when using SH-X3 hardware assistance.
      sh: hw-breakpoints: Kill off stub unthrottle callback.
      sh: Tidy CPU probing and fixup section annotations.
      sh: __cpuinit annotate the CPU init path.
      sh: Move platform smp ops in to their own structure.
      sh: Kill off dangling goto labels from oom-killer rework.
      sh: mach-sdk7786: update defconfig for compressed kernel image.
      sh: Flag present CPUs hotpluggable in topology registration.
      sh: arch/sh/kernel/setup.c needs asm/smp.h.
      sh: convert online CPU map twiddling to cpumask.
      sh: Make sure all SH-X3 cores are populated in the present CPU map.
      sh: provide percpu CPU states for hotplug notifiers.
      sh: flag smp_store_cpu_info() __cpuinit.
      sh: cache secondary CPUs idle loop.
      sh: CPU hotplug support.
      sh: CPU hotplug support for SH-X3 SMP.
      sh: make latencytop available on SMP, too.
      sh: Make initrd detection more robust.
      sh: convert kexec crash kernel management to LMB.
      sh: convert initrd reservation to LMB.
      sh: bump up extra LMB reservations in bootmem init.
      sh: flag kdump as broken on SMP for now.
      sh: Ensure that X2 TLB settings are reflected in vmcore.
      sh: shuffle the elfcorehdr handling over to the crash dump code.
      sh: enable LMB region setup via machvec.
      sh: rework memory limits to work with LMB.
      sh: bootmem refactoring.
      sh: Reject small mappings for PMB bolting.
      sh: Ensure active regions have a backing PMB entry.
      sh: All SH-X3 cores support NUMA and SMP, update Kconfig.
      driver core: Early dev_name() depends on slab_is_available().
      sh: fixup the docbook paths for clock framework shuffling.
      sh: fix up CONFIG_KEXEC=n build.
      sh64: provide a stub per_cpu_trap_init() definition.
      sh: Fix up the NUMA build for recent LMB changes.
      sh: update defconfigs.

 Documentation/DocBook/sh.tmpl               |   10 +-
 arch/sh/Kconfig                             |   36 ++-
 arch/sh/Makefile                            |    1 -
 arch/sh/boards/board-urquell.c              |    3 +
 arch/sh/boards/mach-ecovec24/setup.c        |   26 +-
 arch/sh/boards/mach-highlander/setup.c      |   12 +-
 arch/sh/boards/mach-sdk7786/setup.c         |   17 +
 arch/sh/boards/mach-se/7724/setup.c         |   20 +-
 arch/sh/boards/mach-x3proto/setup.c         |    7 +
 arch/sh/boot/compressed/Makefile            |    6 +
 arch/sh/boot/compressed/head_32.S           |    4 +
 arch/sh/configs/ap325rxa_defconfig          |   56 ++--
 arch/sh/configs/cayman_defconfig            |   46 ++-
 arch/sh/configs/dreamcast_defconfig         |   29 +-
 arch/sh/configs/ecovec24-romimage_defconfig |   54 ++-
 arch/sh/configs/ecovec24_defconfig          |    7 +-
 arch/sh/configs/edosk7705_defconfig         |   21 +-
 arch/sh/configs/edosk7760_defconfig         |   38 +-
 arch/sh/configs/espt_defconfig              |   42 +-
 arch/sh/configs/hp6xx_defconfig             |   24 +-
 arch/sh/configs/kfr2r09-romimage_defconfig  |   50 ++-
 arch/sh/configs/kfr2r09_defconfig           |   57 ++--
 arch/sh/configs/landisk_defconfig           |   45 ++-
 arch/sh/configs/lboxre2_defconfig           |   35 +-
 arch/sh/configs/magicpanelr2_defconfig      |   28 +-
 arch/sh/configs/microdev_defconfig          |   23 +-
 arch/sh/configs/migor_defconfig             |   60 ++--
 arch/sh/configs/polaris_defconfig           |   31 +-
 arch/sh/configs/r7780mp_defconfig           |   72 ++--
 arch/sh/configs/r7785rp_defconfig           |   76 ++--
 arch/sh/configs/rsk7201_defconfig           |   31 +-
 arch/sh/configs/rsk7203_defconfig           |   49 ++-
 arch/sh/configs/rts7751r2d1_defconfig       |   56 ++-
 arch/sh/configs/rts7751r2dplus_defconfig    |   56 ++-
 arch/sh/configs/sdk7780_defconfig           |   53 ++-
 arch/sh/configs/sdk7786_defconfig           |  644 +++++++++++++++++++--------
 arch/sh/configs/se7206_defconfig            |   38 +-
 arch/sh/configs/se7343_defconfig            |   53 ++-
 arch/sh/configs/se7619_defconfig            |   22 +-
 arch/sh/configs/se7705_defconfig            |   25 +-
 arch/sh/configs/se7712_defconfig            |   28 +-
 arch/sh/configs/se7721_defconfig            |   40 +-
 arch/sh/configs/se7722_defconfig            |   29 +-
 arch/sh/configs/se7724_defconfig            |   78 ++--
 arch/sh/configs/se7750_defconfig            |   24 +-
 arch/sh/configs/se7751_defconfig            |   25 +-
 arch/sh/configs/se7780_defconfig            |   39 ++-
 arch/sh/configs/sh03_defconfig              |   43 +-
 arch/sh/configs/sh7710voipgw_defconfig      |   29 +-
 arch/sh/configs/sh7724_generic_defconfig    |   58 +--
 arch/sh/configs/sh7763rdp_defconfig         |   45 +--
 arch/sh/configs/sh7770_generic_defconfig    |   54 +--
 arch/sh/configs/sh7785lcr_32bit_defconfig   |   75 ++--
 arch/sh/configs/sh7785lcr_defconfig         |   62 ++-
 arch/sh/configs/shmin_defconfig             |   23 +-
 arch/sh/configs/shx3_defconfig              |   67 ++--
 arch/sh/configs/snapgear_defconfig          |   31 +-
 arch/sh/configs/systemh_defconfig           |   23 +-
 arch/sh/configs/titan_defconfig             |   49 ++-
 arch/sh/configs/ul2_defconfig               |   38 +-
 arch/sh/configs/urquell_defconfig           |   82 +++--
 arch/sh/drivers/pci/pci-sh7751.c            |    5 +-
 arch/sh/include/asm/cache.h                 |    4 -
 arch/sh/include/asm/clkdev.h                |   35 ++
 arch/sh/include/asm/clock.h                 |  161 +-------
 arch/sh/include/asm/dmaengine.h             |   63 +---
 arch/sh/include/asm/hw_breakpoint.h         |    1 -
 arch/sh/include/asm/hwblk.h                 |   12 +-
 arch/sh/include/asm/io_generic.h            |    1 +
 arch/sh/include/asm/irq.h                   |   19 +
 arch/sh/include/asm/kexec.h                 |    8 +
 arch/sh/include/asm/machvec.h               |    2 +
 arch/sh/include/asm/mmzone.h                |    3 +-
 arch/sh/include/asm/page.h                  |   15 +-
 arch/sh/include/asm/processor.h             |    7 +
 arch/sh/include/asm/processor_32.h          |    2 -
 arch/sh/include/asm/setup.h                 |    1 +
 arch/sh/include/asm/siu.h                   |    8 +-
 arch/sh/include/asm/smp-ops.h               |   51 +++
 arch/sh/include/asm/smp.h                   |   40 ++-
 arch/sh/include/cpu-sh4/cpu/dma-register.h  |    5 +-
 arch/sh/include/cpu-sh4/cpu/mmu_context.h   |   18 +-
 arch/sh/include/mach-sdk7786/mach/fpga.h    |    9 +
 arch/sh/kernel/Makefile                     |    2 +-
 arch/sh/kernel/clkdev.c                     |  169 +++++++
 arch/sh/kernel/cpu/Makefile                 |    2 +-
 arch/sh/kernel/cpu/clock-cpg.c              |  312 +------------
 arch/sh/kernel/cpu/clock.c                  |  630 +--------------------------
 arch/sh/kernel/cpu/hwblk.c                  |    5 +
 arch/sh/kernel/cpu/init.c                   |   24 +-
 arch/sh/kernel/cpu/sh2/probe.c              |    5 +-
 arch/sh/kernel/cpu/sh2/setup-sh7619.c       |    6 -
 arch/sh/kernel/cpu/sh2a/probe.c             |    4 +-
 arch/sh/kernel/cpu/sh2a/setup-mxg.c         |    9 -
 arch/sh/kernel/cpu/sh2a/setup-sh7201.c      |    9 -
 arch/sh/kernel/cpu/sh2a/setup-sh7203.c      |   12 -
 arch/sh/kernel/cpu/sh2a/setup-sh7206.c      |   15 -
 arch/sh/kernel/cpu/sh3/probe.c              |    4 +-
 arch/sh/kernel/cpu/sh3/setup-sh7705.c       |    9 -
 arch/sh/kernel/cpu/sh3/setup-sh770x.c       |    9 -
 arch/sh/kernel/cpu/sh3/setup-sh7710.c       |    9 -
 arch/sh/kernel/cpu/sh3/setup-sh7720.c       |   24 -
 arch/sh/kernel/cpu/sh4/clock-sh4-202.c      |   17 +-
 arch/sh/kernel/cpu/sh4/probe.c              |    4 +-
 arch/sh/kernel/cpu/sh4/setup-sh4-202.c      |    9 -
 arch/sh/kernel/cpu/sh4/setup-sh7750.c       |   15 -
 arch/sh/kernel/cpu/sh4/setup-sh7760.c       |    9 -
 arch/sh/kernel/cpu/sh4a/clock-sh7343.c      |  231 +++++++---
 arch/sh/kernel/cpu/sh4a/clock-sh7366.c      |  210 ++++++---
 arch/sh/kernel/cpu/sh4a/clock-sh7722.c      |  177 +++++---
 arch/sh/kernel/cpu/sh4a/clock-sh7723.c      |  279 +++++++++----
 arch/sh/kernel/cpu/sh4a/clock-sh7724.c      |  295 +++++++++----
 arch/sh/kernel/cpu/sh4a/clock-sh7757.c      |   11 +-
 arch/sh/kernel/cpu/sh4a/clock-sh7763.c      |   12 +-
 arch/sh/kernel/cpu/sh4a/clock-sh7780.c      |   12 +-
 arch/sh/kernel/cpu/sh4a/clock-sh7785.c      |  176 ++++++--
 arch/sh/kernel/cpu/sh4a/clock-sh7786.c      |  223 ++++++++--
 arch/sh/kernel/cpu/sh4a/clock-shx3.c        |   13 +-
 arch/sh/kernel/cpu/sh4a/setup-sh7343.c      |   16 -
 arch/sh/kernel/cpu/sh4a/setup-sh7366.c      |   13 -
 arch/sh/kernel/cpu/sh4a/setup-sh7722.c      |   21 +-
 arch/sh/kernel/cpu/sh4a/setup-sh7723.c      |   27 --
 arch/sh/kernel/cpu/sh4a/setup-sh7724.c      |   81 +---
 arch/sh/kernel/cpu/sh4a/setup-sh7757.c      |    6 -
 arch/sh/kernel/cpu/sh4a/setup-sh7763.c      |   18 -
 arch/sh/kernel/cpu/sh4a/setup-sh7770.c      |   27 --
 arch/sh/kernel/cpu/sh4a/setup-sh7780.c      |   24 +-
 arch/sh/kernel/cpu/sh4a/setup-sh7785.c      |   30 +--
 arch/sh/kernel/cpu/sh4a/setup-sh7786.c      |  157 +++++--
 arch/sh/kernel/cpu/sh4a/setup-shx3.c        |   18 -
 arch/sh/kernel/cpu/sh4a/smp-shx3.c          |   74 +++-
 arch/sh/kernel/cpu/sh5/probe.c              |    4 +-
 arch/sh/kernel/cpu/sh5/setup-sh5.c          |    9 -
 arch/sh/kernel/crash_dump.c                 |   20 +-
 arch/sh/kernel/dwarf.c                      |    1 +
 arch/sh/kernel/head_32.S                    |    7 +-
 arch/sh/kernel/hw_breakpoint.c              |    5 -
 arch/sh/kernel/idle.c                       |    8 +-
 arch/sh/kernel/irq.c                        |   91 +++-
 arch/sh/kernel/localtimer.c                 |    6 +-
 arch/sh/kernel/machine_kexec.c              |   62 +++-
 arch/sh/kernel/machvec.c                    |    1 +
 arch/sh/kernel/process.c                    |    2 +-
 arch/sh/kernel/setup.c                      |  300 +++----------
 arch/sh/kernel/smp.c                        |  160 ++++++-
 arch/sh/kernel/topology.c                   |    6 +-
 arch/sh/kernel/traps_64.c                   |    5 +
 arch/sh/mm/Makefile                         |    9 +-
 arch/sh/mm/cache-shx3.c                     |   44 ++
 arch/sh/mm/cache.c                          |    7 +
 arch/sh/mm/fault_32.c                       |   14 +-
 arch/sh/mm/init.c                           |  173 +++++++-
 arch/sh/mm/numa.c                           |   38 --
 arch/sh/mm/pmb.c                            |    4 +-
 arch/sh/mm/tlb-debugfs.c                    |  179 ++++++++
 arch/sh/mm/tlbflush_64.c                    |   20 +-
 drivers/base/platform.c                     |   20 +
 drivers/clocksource/sh_cmt.c                |   45 +-
 drivers/clocksource/sh_mtu2.c               |   37 +-
 drivers/clocksource/sh_tmu.c                |   41 +-
 drivers/dma/shdma.c                         |   52 ++-
 drivers/dma/shdma.h                         |    4 +-
 drivers/serial/sh-sci.c                     |  189 ++++++---
 drivers/sh/Kconfig                          |   24 +
 drivers/sh/Makefile                         |    2 +
 drivers/sh/clk-cpg.c                        |  298 +++++++++++++
 drivers/sh/clk.c                            |  545 ++++++++++++++++++++++
 drivers/sh/intc.c                           |  333 +++++++++++++--
 include/linux/device.h                      |    4 +
 include/linux/serial_sci.h                  |    4 +-
 include/linux/sh_clk.h                      |  150 +++++++
 include/linux/sh_dma.h                      |  102 +++++
 include/linux/sh_intc.h                     |   26 +-
 173 files changed, 6135 insertions(+), 3755 deletions(-)
 create mode 100644 arch/sh/include/asm/clkdev.h
 create mode 100644 arch/sh/include/asm/smp-ops.h
 create mode 100644 arch/sh/kernel/clkdev.c
 create mode 100644 arch/sh/mm/cache-shx3.c
 create mode 100644 arch/sh/mm/tlb-debugfs.c
 create mode 100644 drivers/sh/Kconfig
 create mode 100644 drivers/sh/clk-cpg.c
 create mode 100644 drivers/sh/clk.c
 create mode 100644 include/linux/sh_clk.h
 create mode 100644 include/linux/sh_dma.h

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [GIT PULL] sh updates for 2.6.35-rc1
  2010-05-18  9:25 [GIT PULL] sh updates for 2.6.35-rc1 Paul Mundt
@ 2010-05-18  9:57 ` Jaswinder Singh Rajput
  2010-05-18 10:15   ` Paul Mundt
  0 siblings, 1 reply; 9+ messages in thread
From: Jaswinder Singh Rajput @ 2010-05-18  9:57 UTC (permalink / raw)
  To: Paul Mundt; +Cc: Linus Torvalds, linux-sh, linux-kernel

Hello Paul,

On Tue, May 18, 2010 at 2:55 PM, Paul Mundt <lethal@linux-sh.org> wrote:
> Please pull from:
>
>        master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6.git
>
> Which contains:
>
..
>  drivers/dma/shdma.c                         |   52 ++-
>  drivers/dma/shdma.h                         |    4 +-
>  drivers/serial/sh-sci.c                     |  189 ++++++---
>  drivers/sh/Kconfig                          |   24 +
>  drivers/sh/Makefile                         |    2 +
>  drivers/sh/clk-cpg.c                        |  298 +++++++++++++
>  drivers/sh/clk.c                            |  545 ++++++++++++++++++++++
>  drivers/sh/intc.c                           |  333 +++++++++++++--
>  include/linux/device.h                      |    4 +
>  include/linux/serial_sci.h                  |    4 +-
>  include/linux/sh_clk.h                      |  150 +++++++
>  include/linux/sh_dma.h                      |  102 +++++
>  include/linux/sh_intc.h                     |   26 +-
..
>  create mode 100644 drivers/sh/Kconfig
>  create mode 100644 drivers/sh/clk-cpg.c
>  create mode 100644 drivers/sh/clk.c
>  create mode 100644 include/linux/sh_clk.h
>  create mode 100644 include/linux/sh_dma.h

I have few doubts :

1. Which other architectures are using :
include/linux/sh_clk.h, include/linux/sh_dma.h and include/linux/sh_intc.h

2. If you think, in future some architecture will going to use these
files, then do you think sh_*.h name is appropriate.

3. Can we move :
include/linux/sh_clk.h -> drivers/sh/sh_clk.h
include/linux/sh_dma.h -> drivers/dma/sh_dma.h
include/linux/sh_intc.h -> drivers/sh/sh_intc.h
So that if someone want to use these file they can use it from here.

Thanks,
--
Jaswinder Singh.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [GIT PULL] sh updates for 2.6.35-rc1
  2010-05-18  9:57 ` Jaswinder Singh Rajput
@ 2010-05-18 10:15   ` Paul Mundt
  2010-05-18 10:51     ` Jaswinder Singh Rajput
  0 siblings, 1 reply; 9+ messages in thread
From: Paul Mundt @ 2010-05-18 10:15 UTC (permalink / raw)
  To: Jaswinder Singh Rajput; +Cc: Linus Torvalds, linux-sh, linux-kernel

On Tue, May 18, 2010 at 03:15:31PM +0530, Jaswinder Singh Rajput wrote:
> I have few doubts :
> 
> 1. Which other architectures are using :
> include/linux/sh_clk.h, include/linux/sh_dma.h and include/linux/sh_intc.h
> 
ARM for starters, and there are likely to be others in the future, too.
Grepping would have made this pretty apparent.

> 2. If you think, in future some architecture will going to use these
> files, then do you think sh_*.h name is appropriate.
> 
Yes, given that they're all SH IP blocks. Although if there's many more
of them then of course putting them in their own subdirectory is an
option, too.

> 3. Can we move :
> include/linux/sh_clk.h -> drivers/sh/sh_clk.h
> include/linux/sh_dma.h -> drivers/dma/sh_dma.h
> include/linux/sh_intc.h -> drivers/sh/sh_intc.h
> So that if someone want to use these file they can use it from here.
> 
No.

The alternative is creating a shared architecture directory, which
doesn't really scale well given how these blocks can be arbitrarily
reused across different architectures -- but it's still something we
might have to look at depending on what else pops up that can't be
cleanly shared through the current scheme. You're of course welcome to
dig up the discussions in the archives when the ARM SH-Mobile code was
introduced in the first place.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [GIT PULL] sh updates for 2.6.35-rc1
  2010-05-18 10:15   ` Paul Mundt
@ 2010-05-18 10:51     ` Jaswinder Singh Rajput
  2010-05-18 10:57       ` Paul Mundt
  2010-05-18 11:05       ` Magnus Damm
  0 siblings, 2 replies; 9+ messages in thread
From: Jaswinder Singh Rajput @ 2010-05-18 10:51 UTC (permalink / raw)
  To: Paul Mundt
  Cc: Linus Torvalds, linux-sh, linux-kernel, magnus.damm,
	Russell King - ARM Linux

Hello Paul,

On Tue, May 18, 2010 at 3:45 PM, Paul Mundt <lethal@linux-sh.org> wrote:
> On Tue, May 18, 2010 at 03:15:31PM +0530, Jaswinder Singh Rajput wrote:
>> I have few doubts :
>>
>> 1. Which other architectures are using :
>> include/linux/sh_clk.h, include/linux/sh_dma.h and include/linux/sh_intc.h
>>
> ARM for starters, and there are likely to be others in the future, too.
> Grepping would have made this pretty apparent.
>
>> 2. If you think, in future some architecture will going to use these
>> files, then do you think sh_*.h name is appropriate.
>>
> Yes, given that they're all SH IP blocks. Although if there's many more
> of them then of course putting them in their own subdirectory is an
> option, too.
>
>> 3. Can we move :
>> include/linux/sh_clk.h -> drivers/sh/sh_clk.h
>> include/linux/sh_dma.h -> drivers/dma/sh_dma.h
>> include/linux/sh_intc.h -> drivers/sh/sh_intc.h
>> So that if someone want to use these file they can use it from here.
>>
> No.
>
> The alternative is creating a shared architecture directory, which
> doesn't really scale well given how these blocks can be arbitrarily
> reused across different architectures -- but it's still something we
> might have to look at depending on what else pops up that can't be
> cleanly shared through the current scheme. You're of course welcome to
> dig up the discussions in the archives when the ARM SH-Mobile code was
> introduced in the first place.
>

Hmm, so still it is between ARM and SH, so better option will be :

include/linux/sh_clk.h -> include/sh/clk.h
include/linux/sh_dma.h -> include/sh/dma.h
include/linux/sh_intc.h -> include/sh/intc.h

So when arm files will come then, then we can make it like this :

include/arm/clk.h
include/arm/dma.h
include/arm/intc.h

So user will program like this :

#include <arm/dma.h>
#include <sh/dma.h>


There are no doubts in future we will have asymmetrical processing,
where we will use multiple architectures, so better make different
directory for them instead of putting load on include/linux which
already over-loaded.

Thanks,
--
Jaswinder Singh.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [GIT PULL] sh updates for 2.6.35-rc1
  2010-05-18 10:51     ` Jaswinder Singh Rajput
@ 2010-05-18 10:57       ` Paul Mundt
  2010-05-18 11:05       ` Magnus Damm
  1 sibling, 0 replies; 9+ messages in thread
From: Paul Mundt @ 2010-05-18 10:57 UTC (permalink / raw)
  To: Jaswinder Singh Rajput
  Cc: Linus Torvalds, linux-sh, linux-kernel, magnus.damm,
	Russell King - ARM Linux

On Tue, May 18, 2010 at 04:21:37PM +0530, Jaswinder Singh Rajput wrote:
> On Tue, May 18, 2010 at 3:45 PM, Paul Mundt <lethal@linux-sh.org> wrote:
> Hmm, so still it is between ARM and SH, so better option will be :
> 
Those were examples, we already have cases where blocks are shared across
more architectures than that.

> include/linux/sh_clk.h -> include/sh/clk.h
> include/linux/sh_dma.h -> include/sh/dma.h
> include/linux/sh_intc.h -> include/sh/intc.h
> 
> So when arm files will come then, then we can make it like this :
> 
The ARM use case is already there, today.

> include/arm/clk.h
> include/arm/dma.h
> include/arm/intc.h
> 
Did you even bother looking at the files and how they are used? We are
not going to duplicate identical files for each architecture.

> There are no doubts in future we will have asymmetrical processing,
> where we will use multiple architectures, so better make different
> directory for them instead of putting load on include/linux which
> already over-loaded.
> 
You seem to be ignoring the fact that we've had these use cases for years
already and that the current scheme has so far served us pretty well in
that regard. If we have headers for drivers that are used across multiple
architectures, then include/linux is ultimately the proper place for
them. We could shoe-horn them in to some sort of pseudo-architecture
thing in include/ but for what purpose?

Until you've actually read through the background mail on this and
actually looked at the code in question I see very little point in
continuing this thread. I'm of course open to suggestions on how to make
this sort of abstraction cleaner, but so far none of your suggestions are
relevant to the problem at hand.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [GIT PULL] sh updates for 2.6.35-rc1
  2010-05-18 10:51     ` Jaswinder Singh Rajput
  2010-05-18 10:57       ` Paul Mundt
@ 2010-05-18 11:05       ` Magnus Damm
  2010-05-18 11:28         ` Jaswinder Singh Rajput
  1 sibling, 1 reply; 9+ messages in thread
From: Magnus Damm @ 2010-05-18 11:05 UTC (permalink / raw)
  To: Jaswinder Singh Rajput
  Cc: Paul Mundt, Linus Torvalds, linux-sh, linux-kernel,
	Russell King - ARM Linux

Hi Jaswinder,

On Tue, May 18, 2010 at 7:51 PM, Jaswinder Singh Rajput
<jaswinderlinux@gmail.com> wrote:
> Hmm, so still it is between ARM and SH, so better option will be :
>
> include/linux/sh_clk.h -> include/sh/clk.h
> include/linux/sh_dma.h -> include/sh/dma.h
> include/linux/sh_intc.h -> include/sh/intc.h
>
> So when arm files will come then, then we can make it like this :
>
> include/arm/clk.h
> include/arm/dma.h
> include/arm/intc.h
>
> So user will program like this :
>
> #include <arm/dma.h>
> #include <sh/dma.h>

Right now the SH code does

#include <linux/sh_intc.h>

and the ARM code does

#include <linux/sh_intc.h>

Hope this clarifies!

/ magnus

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [GIT PULL] sh updates for 2.6.35-rc1
  2010-05-18 11:28         ` Jaswinder Singh Rajput
@ 2010-05-18 11:17           ` Magnus Damm
  2010-05-18 22:02           ` Paul Mundt
  1 sibling, 0 replies; 9+ messages in thread
From: Magnus Damm @ 2010-05-18 11:17 UTC (permalink / raw)
  To: Jaswinder Singh Rajput
  Cc: Paul Mundt, Linus Torvalds, linux-sh, linux-kernel,
	Russell King - ARM Linux

Hi Jaswinder,

On Tue, May 18, 2010 at 8:16 PM, Jaswinder Singh Rajput
<jaswinderlinux@gmail.com> wrote:
> I am looking at the future, where multiple architecture will use each
> other files.
>
> I am just worried about the file count. Currently :
>
> $ ls include/linux/ | wc -l
> 1029
>
> If other architecture will also start adding the files in
> include/linux like you did then ?
>
> So better make another directory in include.

Perhaps we can deal with that whenever it becomes an issue.

Thank you.

/ magnus

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [GIT PULL] sh updates for 2.6.35-rc1
  2010-05-18 11:05       ` Magnus Damm
@ 2010-05-18 11:28         ` Jaswinder Singh Rajput
  2010-05-18 11:17           ` Magnus Damm
  2010-05-18 22:02           ` Paul Mundt
  0 siblings, 2 replies; 9+ messages in thread
From: Jaswinder Singh Rajput @ 2010-05-18 11:28 UTC (permalink / raw)
  To: Magnus Damm
  Cc: Paul Mundt, Linus Torvalds, linux-sh, linux-kernel,
	Russell King - ARM Linux

Hello magnus,

On Tue, May 18, 2010 at 4:35 PM, Magnus Damm <magnus.damm@gmail.com> wrote:
> Hi Jaswinder,
>
> On Tue, May 18, 2010 at 7:51 PM, Jaswinder Singh Rajput
> <jaswinderlinux@gmail.com> wrote:
>> Hmm, so still it is between ARM and SH, so better option will be :
>>
>> include/linux/sh_clk.h -> include/sh/clk.h
>> include/linux/sh_dma.h -> include/sh/dma.h
>> include/linux/sh_intc.h -> include/sh/intc.h
>>
>> So when arm files will come then, then we can make it like this :
>>
>> include/arm/clk.h
>> include/arm/dma.h
>> include/arm/intc.h
>>
>> So user will program like this :
>>
>> #include <arm/dma.h>
>> #include <sh/dma.h>
>
> Right now the SH code does
>
> #include <linux/sh_intc.h>
>
> and the ARM code does
>
> #include <linux/sh_intc.h>
>
> Hope this clarifies!
>

I am looking at the future, where multiple architecture will use each
other files.

I am just worried about the file count. Currently :

$ ls include/linux/ | wc -l
1029

If other architecture will also start adding the files in
include/linux like you did then ?

So better make another directory in include.

Thanks,
--
Jaswinder Singh.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [GIT PULL] sh updates for 2.6.35-rc1
  2010-05-18 11:28         ` Jaswinder Singh Rajput
  2010-05-18 11:17           ` Magnus Damm
@ 2010-05-18 22:02           ` Paul Mundt
  1 sibling, 0 replies; 9+ messages in thread
From: Paul Mundt @ 2010-05-18 22:02 UTC (permalink / raw)
  To: Jaswinder Singh Rajput
  Cc: Magnus Damm, Linus Torvalds, linux-sh, linux-kernel,
	Russell King - ARM Linux

On Tue, May 18, 2010 at 04:46:12PM +0530, Jaswinder Singh Rajput wrote:
> I am looking at the future, where multiple architecture will use each
> other files.
> 
> I am just worried about the file count. Currently :
> 
> $ ls include/linux/ | wc -l
> 1029
> 
> If other architecture will also start adding the files in
> include/linux like you did then ?
> 
> So better make another directory in include.
> 
I think you're still missing the point here, this "future" case you speak
of has been commonplace for years already now, and it's certainly not
going to change (we've had mixed architecture multi-cores under Linux for
almost 10 years now, so your future case has been going on for some time
now). All of this started out with the header for the serial block being
moved over, which is now used by 3 in-tree architectures and a 4th
architecture under development.

Things like interrupt and clock controllers are not the first things that
come to mind when people think of architecture independent drivers, but
that's really what it has come down to at this point. The driver model
and so on have helped a lot in this regard, and between that and the
early platform extensions we implemented for the platform bus it's been
possible to do things like move all of our clocksources/clockevents out
in to the driver model and permit different architectures to tie in to
them as necessary. There has been a lot of behind the scenes prep work
that we've been doing to make as much of this stuff completely
architecture independent as possible, so it's not like we've simply been
lazily shuffling headers around based on some idea of what might possible
pop up in the future. Each one of these headers has been explicitly
placed for a reason and has (or will have in a subsequent merge) multiple
architecture users.

While we could try to encapsulate some of this in some sort of pseudo
architecture abstraction, that really doesn't accomplish anything, and it
also suggests an architectural relationship where there simply isn't one.
Sure, most of these drivers and IP blocks began life inside an SH core,
but given that we now use them across a wide range of architectures, this
continued relationship simply doesn't make any sense.

Having said that, I do realize that include/linux is rather cluttered
with hardware-related stuff these days, and that at least is perhaps
something that we may wish to change some day. Having some sort of hw/
abstraction for that stuff would make it easier to see what's hardware
related and what isn't, but that's an entirely different discussion and
one that needs a lot of thinking and consensus. asm/ certainly isn't the
place for these things however, given that at the end of the day they
really have nothing to do with any specific architecture.

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2010-05-18 22:02 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-05-18  9:25 [GIT PULL] sh updates for 2.6.35-rc1 Paul Mundt
2010-05-18  9:57 ` Jaswinder Singh Rajput
2010-05-18 10:15   ` Paul Mundt
2010-05-18 10:51     ` Jaswinder Singh Rajput
2010-05-18 10:57       ` Paul Mundt
2010-05-18 11:05       ` Magnus Damm
2010-05-18 11:28         ` Jaswinder Singh Rajput
2010-05-18 11:17           ` Magnus Damm
2010-05-18 22:02           ` Paul Mundt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).