1. 04 4月, 2013 6 次提交
  2. 07 3月, 2013 5 次提交
    • H
      ARM: S3C24XX: add handle_irq function · 17453dd2
      Heiko Stuebner 提交于
      This removes the dependency on static irq mappings for basic irq handling
      and makes the s3c24xx entry-macro.S obsolete.
      
      Also the interrupts of the second full interrupt controller on the s3c2416
      are really handled now, which was forgotten when adding them.
      
      The handling itself does the same as the previous assembler-code in that
      it tries to get the interrupt offset from the offset register first and
      if that produces wrong results manually searches for the interrupt bit
      in the pending register value. It also saves the historic comment which
      explains the reason behind this.
      Signed-off-by: NHeiko Stuebner <heiko@sntech.de>
      Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
      17453dd2
    • H
      ARM: S3C24XX: make s3c24xx_init_intc static · 3d3eb5a4
      Heiko Stuebner 提交于
      It's not used anywhere else.
      Signed-off-by: NHeiko Stuebner <heiko@sntech.de>
      Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
      3d3eb5a4
    • H
      ARM: S3C24XX: move s3c24xx_init_irq to s3c2410_init_irq · f182aa1d
      Heiko Stuebner 提交于
      The s3c24xx_init_irq function that was the base for all irq inits
      is now only used to initialize the real s3c2410 irqs.
      
      Therefore rename it and also move its declaration from plat/cpu.h
      to common.h
      
      The eint declaration is used by the vast majority of the SoCs and
      gets therefore placed outside any ifdefs.
      Signed-off-by: NHeiko Stuebner <heiko@sntech.de>
      Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
      f182aa1d
    • H
      ARM: S3C24XX: fix irq parent check · 0fe3cb1e
      Heiko Stuebner 提交于
      The current parent_irq check checks for a value != 0. This does of course
      not work when the parent irq sits in the bit 0 of the parent register.
      This only affects the eint0 interrupt of the s3c2412.
      
      To fix this behaviour, check for the presence of a parent_intc in the
      structure. In an s3c24xx interrupt controller either all interrupts have
      parent interrupts or none have, so if a parent controller is available
      the parent_irq value always points to a parent_irq.
      Signed-off-by: NHeiko Stuebner <heiko@sntech.de>
      Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
      0fe3cb1e
    • H
      ARM: S3C24XX: fix redundant checks in the irq mapping function · 502a2989
      Heiko Stuebner 提交于
      The check during the parent handling itself was wrong, as it should have
      checked for parent_irq_data.
      
      The interrupt controller structs always contain an irq_data array with 32
      entries and the only possible error could be a parent_irq assignment of >31.
      
      As this would point to outside the irq_data array this could contain
      anything including non-NULL values. Therefore correct this to check
      the parent_irq value to be in the right range.
      
      With the same explanation of a valid interrupt controller always having a
      full irq_data array, the topmost irq_data check in s3c24xx_irq_map
      can also go away.
      
      Finally the mapping function is only called thru the irq_domain ops, in
      which case the intc struct is already successfully created, so there is
      no need to check for it again.
      Reported-by: NJulia Lawall <julia.lawall@lip6.fr>
      Signed-off-by: NHeiko Stuebner <heiko@sntech.de>
      Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
      502a2989
  3. 05 3月, 2013 24 次提交
  4. 04 3月, 2013 5 次提交