1. 04 4月, 2013 4 次提交
    • J
      ARM: OMAP2+: Convert ONENAND to retrieve GPMC settings from DT · 32cde0b5
      Jon Hunter 提交于
      When booting with device-tree, retrieve GPMC settings for ONENAND from
      the device-tree blob. This will allow us to remove all static settings
      stored in the gpmc-nand.c in the future once the migration to
      device-tree is complete.
      
      The user must now specify the ONENAND device width in the device-tree
      binding so that the GPMC can be programmed correctly. Therefore, update
      the device-tree binding documentation for ONENAND devices connected to
      the GPMC to reflect this.
      
      Please note that this does not include GPMC timings for ONENAND. The
      timings are being calculated at runtime.
      
      There is some legacy code that only enables read wait monitoring for
      non-OMAP3 devices. There are no known OMAP3 device issues that prevent
      this feature being enabled and so when booting with device-tree use the
      wait-monitoring settings described in the device-tree blob.
      Signed-off-by: NJon Hunter <jon-hunter@ti.com>
      Tested-by: NEzequiel Garcia <ezequiel.garcia@free-electrons.com>
      32cde0b5
    • J
      ARM: OMAP2+: Convert NAND to retrieve GPMC settings from DT · acc79980
      Jon Hunter 提交于
      When booting with device-tree, retrieve GPMC settings for NAND from
      the device-tree blob. This will allow us to remove all static settings
      stored in the gpmc-nand.c in the future once the migration to
      device-tree is complete.
      Signed-off-by: NJon Hunter <jon-hunter@ti.com>
      Tested-by: NEzequiel Garcia <ezequiel.garcia@free-electrons.com>
      acc79980
    • J
      ARM: OMAP2+: Add device-tree support for NOR flash · cdd6928c
      Jon Hunter 提交于
      NOR flash is not currently supported when booting with device-tree
      on OMAP2+ devices. Add support to detect and configure NOR devices
      when booting with device-tree.
      
      Add documentation for the TI GPMC NOR binding.
      Signed-off-by: NJon Hunter <jon-hunter@ti.com>
      Tested-by: NEzequiel Garcia <ezequiel.garcia@free-electrons.com>
      cdd6928c
    • J
      ARM: OMAP2+: Add additional GPMC timing parameters · d36b4cd4
      Jon Hunter 提交于
      Some of the GPMC timings parameters are currently missing from the GPMC
      device-tree binding. Add these parameters to the binding documentation
      as well as code to read them. Also add either "-ps" or "-ns" suffix to
      the GPMC timing properties to indicate whether the timing is in
      picoseconds or nanoseconds.
      
      The existing code in gpmc_read_timings_dt() is checking the value of
      of_property_read_u32() and only is successful storing the value read
      in the gpmc_timings structure. Checking the return value in this case
      is not necessary and we can simply read the value, if present, and
      store directly in the gpmc_timings structure. Therefore, simplify the
      code by removing these checks.
      
      The comment in the gpmc_read_timings_dt() function, "only for OMAP3430"
      is also incorrect as it is applicable to all OMAP3+ devices. So correct
      this too.
      Signed-off-by: NJon Hunter <jon-hunter@ti.com>
      Tested-by: NEzequiel Garcia <ezequiel.garcia@free-electrons.com>
      d36b4cd4
  2. 02 4月, 2013 19 次提交
  3. 14 3月, 2013 1 次提交
    • R
      ARM: OMAP: use consistent error checking · 71856843
      Russell King 提交于
      Consistently check errors using the usual method used in the kernel
      for much of its history.  For instance:
      
      int gpmc_cs_set_timings(int cs, const struct gpmc_timings *t)
      {
      	int div;
      	div = gpmc_calc_divider(t->sync_clk);
      	if (div < 0)
      		return div;
      static int gpmc_set_async_mode(int cs, struct gpmc_timings *t)
      {
      ...
      	return gpmc_cs_set_timings(cs, t);
      
      .....
      	ret = gpmc_set_async_mode(gpmc_onenand_data->cs, &t);
      	if (IS_ERR_VALUE(ret))
      		return ret;
      
      So, gpmc_cs_set_timings() thinks any negative return value is an error,
      but where we check that in higher levels, only a limited range are
      errors...
      
      There is only _one_ use of IS_ERR_VALUE() in arch/arm which is really
      appropriate, and that is in arch/arm/include/asm/syscall.h:
      
      static inline long syscall_get_error(struct task_struct *task,
      				     struct pt_regs *regs)
      {
      	unsigned long error = regs->ARM_r0;
      	return IS_ERR_VALUE(error) ? error : 0;
      }
      
      because this function really does have to differentiate between error
      return values and addresses which look like negative numbers (eg, from
      mmap()).
      
      So, here's a patch to remove them from OMAP, except for the above.
      Acked-by: NTony Lindgren <tony@atomide.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      71856843
  4. 05 3月, 2013 2 次提交
  5. 03 3月, 2013 14 次提交
    • J
      metag: Provide dma_get_sgtable() · c60ac315
      James Hogan 提交于
      metag/allmodconfig:
      
      drivers/media/v4l2-core/videobuf2-dma-contig.c: In function 'vb2_dc_get_base_sgt':
      drivers/media/v4l2-core/videobuf2-dma-contig.c:387: error: implicit declaration of function 'dma_get_sgtable'
      
      For architectures using dma_map_ops, dma_get_sgtable() is provided in
      <asm-generic/dma-mapping-common.h>.
      
      Metag does not use dma_map_ops yet, hence it should implement it as an
      inline stub using dma_common_get_sgtable().
      Signed-off-by: NJames Hogan <james.hogan@imgtec.com>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Acked-by: NMarek Szyprowski <m.szyprowski@samsung.com>
      c60ac315
    • J
      metag: prom.h: remove declaration of metag_dt_memblock_reserve() · 2742c526
      James Hogan 提交于
      Metag doesn't have a metag_dt_memblock_reserve() function so remove the
      declaration from asm/prom.h.
      Signed-off-by: NJames Hogan <james.hogan@imgtec.com>
      2742c526
    • J
      metag: copy devicetree to non-init memory · 2270e6d3
      James Hogan 提交于
      Make a copy of the device tree blob in non-init memory. It is required
      when using built-in device tree files that the platform code copies the
      blob to non-init memory prior to calling unflatten_device_tree(),
      otherwise the strings that the device tree refer to will get poisoned
      and potentially reused, breaking later reading of the device tree
      post-init (such as compatible matching in modules, debugfs, and the
      procfs interface).
      Signed-off-by: NJames Hogan <james.hogan@imgtec.com>
      Reviewed-by: NVineet Gupta <vgupta@synopsys.com>
      2270e6d3
    • J
      metag: cleanup metag_ksyms.c includes · d7900504
      James Hogan 提交于
      Minimise metag_ksyms.c includes to directly include the <asm/*.h> files
      that declare a particular symbol, and not include any unnecessary ones.
      Signed-off-by: NJames Hogan <james.hogan@imgtec.com>
      d7900504
    • J
      metag: move mm/init.c exports out of metag_ksyms.c · 44c24510
      James Hogan 提交于
      It's less error prone to have function symbols exported immediately
      after the function rather than in metag_ksyms.c. Move each EXPORT_SYMBOL
      in metag_ksyms.c for symbols defined in mm/init.c into mm/init.c.
      Signed-off-by: NJames Hogan <james.hogan@imgtec.com>
      44c24510
    • J
      metag: move usercopy.c exports out of metag_ksyms.c · 9da3ee9a
      James Hogan 提交于
      It's less error prone to have function symbols exported immediately
      after the function rather than in metag_ksyms.c. Move each EXPORT_SYMBOL
      in metag_ksyms.c for symbols defined in usercopy.c into usercopy.c
      Signed-off-by: NJames Hogan <james.hogan@imgtec.com>
      9da3ee9a
    • J
      metag: move setup.c exports out of metag_ksyms.c · 7293dbed
      James Hogan 提交于
      It's less error prone to have function symbols exported immediately
      after the function rather than in metag_ksyms.c. Move each EXPORT_SYMBOL
      in metag_ksyms.c for symbols defined in setup.c into setup.c
      Signed-off-by: NJames Hogan <james.hogan@imgtec.com>
      7293dbed
    • J
      metag: move kick.c exports out of metag_ksyms.c · aa29ec5f
      James Hogan 提交于
      It's less error prone to have function symbols exported immediately
      after the function rather than in metag_ksyms.c. Move each EXPORT_SYMBOL
      in metag_ksyms.c for symbols defined in kick.c into kick.c
      Signed-off-by: NJames Hogan <james.hogan@imgtec.com>
      aa29ec5f
    • J
      metag: move traps.c exports out of metag_ksyms.c · 9fb4aa87
      James Hogan 提交于
      It's less error prone to have function symbols exported immediately
      after the function rather than in metag_ksyms.c. Move each EXPORT_SYMBOL
      in metag_ksyms.c for symbols defined in traps.c into traps.c
      Signed-off-by: NJames Hogan <james.hogan@imgtec.com>
      9fb4aa87
    • J
      metag: move irq enable out of irqflags.h on SMP · fa771d02
      James Hogan 提交于
      The SMP version of arch_local_irq_enable() uses preempt_disable(), but
      <asm/irqflags.h> doesn't include <linux/preempt.h> causing the following
      errors on SMP when pstore/ftrace is enabled (caught by buildbot smp
      allyesconfig):
      
      In file included from include/linux/irqflags.h:15,
                       from fs/pstore/ftrace.c:16:
      arch/metag/include/asm/irqflags.h: In function 'arch_local_irq_enable':
      arch/metag/include/asm/irqflags.h:84: error: implicit declaration of function 'preempt_disable'
      arch/metag/include/asm/irqflags.h:86: error: implicit declaration of function 'preempt_enable_no_resched'
      
      However <linux/preempt.h> cannot be easily included from
      <asm/irqflags.h> as it can cause circular include dependencies in the
      !SMP case, and potentially in the SMP case in the future. Therefore move
      the SMP implementation of arch_local_irq_enable() into traps.c and use
      an inline version of get_trigger_mask() which is also defined in traps.c
      for SMP.
      
      This adds an extra layer of function call / stack push when
      preempt_disable needs to call other functions, however in the
      non-preemptive SMP case it should be about as fast, as it was already
      calling the get_trigger_mask() function which is now used inline.
      Signed-off-by: NJames Hogan <james.hogan@imgtec.com>
      fa771d02
    • J
      metag: hugetlb: convert to vm_unmapped_area() · f75c28d8
      James Hogan 提交于
      Convert hugetlb_get_unmapped_area_new_pmd() to use vm_unmapped_area()
      rather than searching the virtual address space itself. This fixes the
      following errors in linux-next due to the specified members being
      removed after other architectures have already been converted:
      
      arch/metag/mm/hugetlbpage.c: In function 'hugetlb_get_unmapped_area_new_pmd':
      arch/metag/mm/hugetlbpage.c:199: error: 'struct mm_struct' has no member named 'cached_hole_size'
      arch/metag/mm/hugetlbpage.c:200: error: 'struct mm_struct' has no member named 'free_area_cache'
      arch/metag/mm/hugetlbpage.c:215: error: 'struct mm_struct' has no member named 'cached_hole_size'
      Signed-off-by: NJames Hogan <james.hogan@imgtec.com>
      Acked-by: NMichel Lespinasse <walken@google.com>
      f75c28d8
    • J
      metag: export clear_page and copy_page · c838e72a
      James Hogan 提交于
      Various file systems use clear_page() and copy_page(), so when they're
      built as modules we get build errors like the following:
      
      ERROR: "clear_page" [fs/ntfs/ntfs.ko] undefined!
      ERROR: "copy_page" [fs/nilfs2/nilfs2.ko] undefined!
      
      Therefore export these functions to modules from metag_ksyms.c to fix
      the errors. This was hit by a randconfig build.
      Signed-off-by: NJames Hogan <james.hogan@imgtec.com>
      c838e72a
    • J
      metag: export metag_code_cache_flush_all · f626dc70
      James Hogan 提交于
      Various file systems indirectly use metag_code_cache_flush_all(), so
      when they're built as modules we get build errors like the following:
      
      ERROR: "metag_code_cache_flush_all" [fs/xfs/xfs.ko] undefined!
      
      Therefore export this function to modules to fix the errors. This was
      hit by a randconfig build.
      Signed-off-by: NJames Hogan <james.hogan@imgtec.com>
      f626dc70
    • J
      metag: protect more non-MMU memory regions · 3d6b7bb0
      James Hogan 提交于
      Rename setup_txprivext() to setup_priv() and add initialisation of some
      more per-thread privilege protection registers:
      
       - TxPRIVSYSR: 0x04400000-0x047fffff
                     0x05000000-0x07ffffff
                     0x84000000-0x87ffffff
       - TxPIOREG:   0x02000000-0x02ffffff
                     0x04800000-0x048fffff
       - TxSYREG:    0x04000000-0x04000fff (except write fetch system event)
      Signed-off-by: NJames Hogan <james.hogan@imgtec.com>
      3d6b7bb0