1. 17 3月, 2012 9 次提交
    • C
      powerpc/85xx: Fix compiler error with THIS_MODULE and related · e4399461
      Claudiu Manoil 提交于
      CC      arch/powerpc/sysdev/fsl_85xx_l2ctlr.o
      arch/powerpc/sysdev/fsl_85xx_l2ctlr.c:209:13: error: 'THIS_MODULE' undeclared here (not in a function)
      arch/powerpc/sysdev/fsl_85xx_l2ctlr.c:229:20: error: expected declaration specifiers or '...' before string constant
      cc1: warnings being treated as errors
      arch/powerpc/sysdev/fsl_85xx_l2ctlr.c:229:1: error: data definition has no type or storage class
      arch/powerpc/sysdev/fsl_85xx_l2ctlr.c:229:1: error: type defaults to 'int' in declaration of 'MODULE_DESCRIPTION'
      arch/powerpc/sysdev/fsl_85xx_l2ctlr.c:229:20: error: function declaration isn't a prototype
      arch/powerpc/sysdev/fsl_85xx_l2ctlr.c:230:16: error: expected declaration specifiers or '...' before string constant
      arch/powerpc/sysdev/fsl_85xx_l2ctlr.c:230:1: error: data definition has no type or storage class
      arch/powerpc/sysdev/fsl_85xx_l2ctlr.c:230:1: error: type defaults to 'int' in declaration of 'MODULE_LICENSE'
      arch/powerpc/sysdev/fsl_85xx_l2ctlr.c:230:16: error: function declaration isn't a prototype
      make[1]: *** [arch/powerpc/sysdev/fsl_85xx_l2ctlr.o] Error 1
      
      ...
      
        CC      arch/powerpc/sysdev/fsl_85xx_cache_sram.o
      cc1: warnings being treated as errors
      arch/powerpc/sysdev/fsl_85xx_cache_sram.c:69:1: error: data definition has no type or storage class
      arch/powerpc/sysdev/fsl_85xx_cache_sram.c:69:1: error: type defaults to 'int' in declaration of 'EXPORT_SYMBOL'
      arch/powerpc/sysdev/fsl_85xx_cache_sram.c:69:1: error: parameter names (without types) in function declaration
      arch/powerpc/sysdev/fsl_85xx_cache_sram.c:80:1: error: data definition has no type or storage class
      arch/powerpc/sysdev/fsl_85xx_cache_sram.c:80:1: error: type defaults to 'int' in declaration of 'EXPORT_SYMBOL'
      arch/powerpc/sysdev/fsl_85xx_cache_sram.c:80:1: error: parameter names (without types) in function declaration
      make[1]: *** [arch/powerpc/sysdev/fsl_85xx_cache_sram.o] Error 1
      Signed-off-by: NClaudiu Manoil <claudiu.manoil@freescale.com>
      Acked-by: NPaul Gortmaker <paul.gortmaker@windriver.com>
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      e4399461
    • P
      powerpc/83xx: mpc836x - fix failed phy detection for ucc ethernet on MDS · 1ee4af86
      Paul Gortmaker 提交于
      The mpc836x_mds platform has been broken since the commit
      6fe32649
      
        "netdev/phy: Use mdiobus_read() so that proper locks are taken"
      
      which caused the fsl_pq_mdio TBI autoprobe to oops.  The oops
      was "fixed" in commit 28d8ea2d
      
        "fsl_pq_mdio: Clean up tbi address configuration"
      
      by simply removing the the autoscan code, and making tbi nodes
      mandatory.  Some of the newer reference platforms were updated
      to have tbi nodes in 22066949
      
        "powerpc: Add TBI PHY node to first MDIO bus"
      
      but the older mpc836x didn't get one and hence was just failing
      with -EBUSY as follows:
      
       fsl-pq_mdio: probe of e0102120.mdio failed with error -16
         ...
       net eth0: Could not attach to PHY
       eth0: Cannot initialize PHY, aborting.
      
      Add a TBI node and use the 1st free address for it.
      Signed-off-by: NPaul Gortmaker <paul.gortmaker@windriver.com>
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      1ee4af86
    • T
      powerpc/85xx: p1022ds: enable monitor switching via pixis indirect mode · 6597c713
      Timur Tabi 提交于
      When the P1022's DIU video controller is active, the pixis must be accessed
      in "indirect" mode, which uses localbus chip select addresses.
      
      Switching between the DVI and LVDS monitor ports is handled by the pixis,
      so that switching needs to be done via indirect mode.
      
      This has the side-effect of no longer requiring U-Boot to enable the DIU.
      Now Linux can enable the DIU all by itself.
      Signed-off-by: NTimur Tabi <timur@freescale.com>
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      6597c713
    • M
      powerpc/85xx: Board support for GE IMP3A · e041013a
      Martyn Welch 提交于
      Initial board support for the GE IMP3A, a 3U compactPCI card with a p2020
      processor.
      Signed-off-by: NMartyn Welch <martyn.welch@ge.com>
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      e041013a
    • M
      powerpc: Move GE PIC drivers · 44b24b74
      Martyn Welch 提交于
      Move the GE PIC drivers to allow these to be used by non-86xx boards.
      Signed-off-by: NMartyn Welch <martyn.welch@ge.com>
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      44b24b74
    • M
      gpio: Move GE GPIO driver to reside within GPIO subsystem · 6518bb69
      Martyn Welch 提交于
      The GE GPIO driver provides basic support (set direction, read/write state)
      for the GPIO provided on some GE single board computers. This patch moves
      the driver from the 86xx specific platform directrory to the GPIO subsystem
      so that it can be used on non-86xx boards.
      Signed-off-by: NMartyn Welch <martyn.welch@ge.com>
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      6518bb69
    • M
      powerpc: Add GE FPGA config option · 330bbf48
      Martyn Welch 提交于
      This patch adds the GE_FPGA configuration option. This is being carried
      out as ground work to allow the PIC and GPIO drivers to be move from the
      powerpc 86xx platform directory to more general locations to allow them to
      be used on non-86xx boards and to reduce churn when further boards using
      these drivers are added.
      Signed-off-by: NMartyn Welch <martyn.welch@ge.com>
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      330bbf48
    • Z
      powerpc/85xx: Add dts for p1020rdb-pc board · 95074009
      Zhicheng Fan 提交于
      P1020RDB-PC Overview
      ------------------
      1Gbyte DDR3 SDRAM
      32 Mbyte NAND flash
      10 16Mbyte NOR flash
      16 Mbyte SPI flash
      SD connector to interface with the SD memory card
      Real-time clock on I2C bus
      
      PCIe:
      - x1 PCIe slot
      - x1 mini-PCIe slot
      
      10/100/1000 BaseT Ethernet ports:
      - eTSEC1, RGMII: one 10/100/1000 port using VitesseTM VSC7385 L2 switch
      - eTSEC2, SGMII: one 10/100/1000 port using VitesseTM VSC8221
      - eTSEC3, RGMII: one 10/100/1000 port using AtherosTM AR8021
      
      USB 2.0 port:
      - Two USB2.0 Type A receptacles
      - One USB2.0 signal to Mini PCIe slot
      
      Dual RJ45 UART ports:
      - DUART interface: supports two UARTs up to 115200 bps for console display
      Signed-off-by: NZhicheng Fan <b32736@freescale.com>
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      95074009
    • Z
      7e6af144
  2. 16 3月, 2012 24 次提交
  3. 13 3月, 2012 1 次提交
  4. 09 3月, 2012 6 次提交
    • B
      powerpc: Rework lazy-interrupt handling · 7230c564
      Benjamin Herrenschmidt 提交于
      The current implementation of lazy interrupts handling has some
      issues that this tries to address.
      
      We don't do the various workarounds we need to do when re-enabling
      interrupts in some cases such as when returning from an interrupt
      and thus we may still lose or get delayed decrementer or doorbell
      interrupts.
      
      The current scheme also makes it much harder to handle the external
      "edge" interrupts provided by some BookE processors when using the
      EPR facility (External Proxy) and the Freescale Hypervisor.
      
      Additionally, we tend to keep interrupts hard disabled in a number
      of cases, such as decrementer interrupts, external interrupts, or
      when a masked decrementer interrupt is pending. This is sub-optimal.
      
      This is an attempt at fixing it all in one go by reworking the way
      we do the lazy interrupt disabling from the ground up.
      
      The base idea is to replace the "hard_enabled" field with a
      "irq_happened" field in which we store a bit mask of what interrupt
      occurred while soft-disabled.
      
      When re-enabling, either via arch_local_irq_restore() or when returning
      from an interrupt, we can now decide what to do by testing bits in that
      field.
      
      We then implement replaying of the missed interrupts either by
      re-using the existing exception frame (in exception exit case) or via
      the creation of a new one from an assembly trampoline (in the
      arch_local_irq_enable case).
      
      This removes the need to play with the decrementer to try to create
      fake interrupts, among others.
      
      In addition, this adds a few refinements:
      
       - We no longer  hard disable decrementer interrupts that occur
      while soft-disabled. We now simply bump the decrementer back to max
      (on BookS) or leave it stopped (on BookE) and continue with hard interrupts
      enabled, which means that we'll potentially get better sample quality from
      performance monitor interrupts.
      
       - Timer, decrementer and doorbell interrupts now hard-enable
      shortly after removing the source of the interrupt, which means
      they no longer run entirely hard disabled. Again, this will improve
      perf sample quality.
      
       - On Book3E 64-bit, we now make the performance monitor interrupt
      act as an NMI like Book3S (the necessary C code for that to work
      appear to already be present in the FSL perf code, notably calling
      nmi_enter instead of irq_enter). (This also fixes a bug where BookE
      perfmon interrupts could clobber r14 ... oops)
      
       - We could make "masked" decrementer interrupts act as NMIs when doing
      timer-based perf sampling to improve the sample quality.
      
      Signed-off-by-yet: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      ---
      
      v2:
      
      - Add hard-enable to decrementer, timer and doorbells
      - Fix CR clobber in masked irq handling on BookE
      - Make embedded perf interrupt act as an NMI
      - Add a PACA_HAPPENED_EE_EDGE for use by FSL if they want
        to retrigger an interrupt without preventing hard-enable
      
      v3:
      
       - Fix or vs. ori bug on Book3E
       - Fix enabling of interrupts for some exceptions on Book3E
      
      v4:
      
       - Fix resend of doorbells on return from interrupt on Book3E
      
      v5:
      
       - Rebased on top of my latest series, which involves some significant
      rework of some aspects of the patch.
      
      v6:
       - 32-bit compile fix
       - more compile fixes with various .config combos
       - factor out the asm code to soft-disable interrupts
       - remove the C wrapper around preempt_schedule_irq
      
      v7:
       - Fix a bug with hard irq state tracking on native power7
      7230c564
    • G
      powerpc/eeh: pseries platform config space access in EEH · 3780444c
      Gavin Shan 提交于
      With the original EEH implementation, the access to config space of
      the corresponding PCI device is done by RTAS sensitive function. That
      depends on pci_dn heavily. That would limit EEH extension to other
      platforms like powernv because other platforms might have different
      ways to access PCI config space.
      
      The patch splits those functions used to access PCI config space
      and implement them in platform related EEH component. It would be
      helpful to support EEH on multiple platforms simutaneously in future.
      Signed-off-by: NGavin Shan <shangw@linux.vnet.ibm.com>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      3780444c
    • G
      powerpc/eeh: Introduce struct eeh_stats for EEH · e575f8db
      Gavin Shan 提交于
      With the original EEH implementation, the EEH global statistics
      are maintained by individual global variables. That makes the
      code a little hard to maintain.
      
      The patch introduces extra struct eeh_stats for the EEH global
      statistics so that it can be maintained in collective fashion.
      
      It's the rework on the corresponding v5 patch. According to
      the comments from David Laight, the EEH global statistics have
      been changed for a litte bit so that they have fixed-type of
      "u64". Also, the format used to print them has been changed to
      "%llu" based on David's suggestion. Also, the output format of
      EEH global statistics should be kept as intacted according to
      Michael's suggestion that there might be tools parsing them.
      Signed-off-by: NGavin Shan <shangw@linux.vnet.ibm.com>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      e575f8db
    • G
      powerpc/eeh: Replace pci_dn with eeh_dev for EEH on pSeries · 54793d0e
      Gavin Shan 提交于
      The pci_dn has been replaced with eeh_dev. In order to comply with
      the rule, the EEH platform implementation on pSeries should also
      be adjusted for a little bit so that it will depend on eeh_dev instead
      of pci_dn.
      
      The patch replaces pci_dn with eeh_dev. The corresponding information
      will be retrieved from eeh_dev instead of pci_dn.
      Signed-off-by: NGavin Shan <shangw@linux.vnet.ibm.com>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      54793d0e
    • G
      powerpc/eeh: Replace pci_dn with eeh_dev for EEH aux components · 40a7cd92
      Gavin Shan 提交于
      The original EEH implementation is heavily depending on struct pci_dn.
      We have to put EEH related information to pci_dn. Actually, we could
      split struct pci_dn so that the EEH sensitive information to form an
      individual struct, then EEH looks more independent.
      
      The patch replaces pci_dn with eeh_dev for EEH aux components like
      event and driver. Also, the eeh_event struct has been adjusted for
      a little bit since eeh_dev has linked the associated FDT (Flat Device
      Tree) node and PCI device. It's not necessary for eeh_event struct to
      trace FDT node and PCI device. We can just simply to trace eeh_dev in
      eeh_event.
      
      The patch also renames function pcid_name() to eeh_pcid_name(), which
      should be missed in the previous patch where the EEH aux components
      have been cleaned up.
      Signed-off-by: NGavin Shan <shangw@linux.vnet.ibm.com>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      40a7cd92
    • G
      powerpc/eeh: Replace pci_dn with eeh_dev for EEH core · f631acd3
      Gavin Shan 提交于
      The original EEH implementation is heavily depending on struct pci_dn.
      We have to put EEH related information to pci_dn. Actually, we could
      split struct pci_dn so that the EEH sensitive information to form an
      individual struct, then EEH looks more independent.
      
      The patch replaces pci_dn with eeh_dev for EEH core.
      Signed-off-by: NGavin Shan <shangw@linux.vnet.ibm.com>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      f631acd3