Age | Commit message (Collapse) | Author |
|
The driver was calling free_irq() without first calling
disable_irq() to synchronize pending and active handlers.
This commit adds a call to disable_irq().
Signed-off-by: John Jacques <john.jacques@intel.com>
|
|
This define is no longer used.
Signed-off-by: John Jacques <john.jacques@intel.com>
|
|
Move lsi-ncr.h to include/linux as it is used in arch/arm/* and
arch/powerpc/* among other places. All source files including
lsi-ncr.h are updated as well.
Signed-off-by: John Jacques <john.jacques@intel.com>
|
|
This is to fix mount.nfs over TCP generating the following
circular dependency and possible DEADLOCK message. FEMAC
driver has been converted to LLTX to avoid this issue. Tx
lock is introduced in the FEMAC driver.
CPU0 CPU1
---- ----
lock(clock-AF_INET);
lock(_xmit_ETHER#2);
lock(clock-AF_INET);
lock(_xmit_ETHER#2);
*** DEADLOCK ***
Signed-off-by: Sreedevi Joshi <sreedevi.joshi@intel.com>
Signed-off-by: John Jacques <john.jacques@intel.com>
|
|
Only map the Axxia system controller when needed, and don't
keep the mapping.
Signed-off-by: John Jacques <john.jacques@intel.com>
|
|
The m*dcr() macros were called incorrectly when SMP was not
enabled.
Signed-off-by: John Jacques <john.jacques@intel.com>
|
|
The Axxia GIC driver was calling handle_IPI() when SMP
was not enabled.
Signed-off-by: John Jacques <john.jacques@intel.com>
|
|
The Axxia NCR code has been moved a number of times. Remove
unused versions.
For some targets, a low-level lock is not needed. Don't lock
in those cases.
Signed-off-by: John Jacques <john.jacques@intel.com>
|
|
This patch deletes 2 arm defconfigs no longer used. Instead, the Axxia
platforms use configuration fragments.
Signed-off-by: Cristian Bercaru <cristian.bercaru@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
|
|
This patch ensures that 'axxia_rio_ds_port_irq_init' initializes the
right input irq handlers: 'ib_dse_vsid_irq' instead of 'ob_dse_irq'.
Mis-initializing 'ob_dse_irq' also caused an "array index out of
bounds" exception. The size of 'ob_dse_irq' is 16
(RIO_MAX_NUM_OBDS_DSE), while the init index ranges from 0 to the size
of 'ib_dse_vsid_irq' i.e. 32 (RIO_MAX_NUM_IBDS_VSID_M).
gcc warns about the mis-initialization:
"drivers/rapidio/devices/lsi/axxia-rio-ds.c:1857:41: warning: iteration
16u invokes undefined behavior [-Waggressive-loop-optimizations]
ptr_ds_priv->ob_dse_irq[i].release_fn = release_ib_ds;"
Signed-off-by: Cristian Bercaru <cristian.bercaru@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
|
|
AXXIA TRNG block driver for random number generation has
been added. This provides HW Random number generation using
AXXIA HW block. When enabled in the device tree,
/dev/hwrng device is available and random numbers can be read
from there.
Signed-off-by: Sreedevi Joshi <sreedevi.joshi@intel.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
|
|
This patch updates the fix to PPC476 erratum 48 in order to use the
correct calculation for L2 cache register for CPUs 4 and 5.
Signed-off-by: Sangeetha Rao <sangeetha.rao@intel.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
|
|
Signed-off-by: Sangeetha Rao <sangeetha.rao@intel.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
|
|
Signed-off-by: Sangeetha Rao <sangeetha.rao@intel.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
|
|
Disable the BTAC in order to prevent errors in circumstances described
by IBM PPC476 erratum 47.
Signed-off-by: Sangeetha Rao <sangeetha.rao@intel.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
|
|
This reverts commit d49a60bb3e7545b772f285d4b25039e075e2cb3c.
|
|
This reverts commit be12b74ad8fae321bc039e386deb1f4579451546.
|
|
This reverts commit ebaa511dad5bdca51b710e217dae24541936757b.
|
|
Signed-off-by: Sangeetha Rao <sangeetha.rao@intel.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
|
|
Signed-off-by: Sangeetha Rao <sangeetha.rao@intel.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
|
|
Disable the BTAC in order to prevent errors in circumstances described
by IBM PPC476 erratum 47.
Signed-off-by: Sangeetha Rao <sangeetha.rao@intel.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
|
|
Signed-off-by: SangeethaRao <sangeetha.rao@lsi.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
|
|
The work around is to switch the PPCs back to the reference
clock before issuing a reset. As described in the defect:
The reset_system issue is caused since the 6
counters are **NOT** reset by reset_system, but the
PLL and clock switch that controls the counters
**IS**. Workaround for this: switch clk_ppc to
clk_ref before a reset_system or reset_chip. This
logically should work, BUT no STA work has been done
to validate this. Empirically, this seems to work.
Signed-off-by: John Jacques <john.jacques@lsi.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
|
|
If the MDIO offset and period are defined in the device tree,
use them. Otherwise, don't change anything.
Signed-off-by: John Jacques <john.jacques@lsi.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
|
|
Added calibrate_delay_is_known() such that only the first core
calculates delay calibration and rest of the cores use
the calculated value by the axxia_calibrate_delay_converge().
Set LPS_PREC - number of bits of precision for the loops_per_jiffy.
Each time we refine our estimate after the first takes 1.5/HZ seconds,
so try to start with a good estimate.
For the boot cpu we can skip the delay calibration and assign it a
value calculated based on the timer frequency.
For the rest of the CPUs we cannot assume that the timer frequency
is same as the cpu frequency, hence do the calibration for those.
Signed-off-by: SangeethaRao <sangeetha.rao@lsi.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
|
|
Signed-off-by: John Jacques <john.jacques@lsi.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
|
|
- Updated compatibility strings to work with the latest boot loader.
- Updated reg adresses for memory, I2C
- Defined I2C devices for acp35xx
- Remove unused dts files: lsi_acp342x.dts and lsi_acp344x.dts
Signed-off-by: John Jacques <john.jacques@lsi.com>
Signed-off-by: SangeethaRao <sangeetha.rao@lsi.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
|
|
Reset support for 3400/2500/3500 got removed when we were porting to
Yocto quite some time back. It has never worked since that port.
This restores the original reset code require to support reset on 3400/2500/3500.
Signed-off-by: John Jacques <john.jacques@lsi.com>
|
|
The nand driver changes have to support multiple controllers on multiple targets.
This is the simplest way I could see to get there. There is a change from using
hard coded defines to using the device tree which was required to accomplish this.
Signed-off-by: John Jacques <john.jacques@lsi.com>
|
|
Also added the 6th Core to the Default 3500 Device Tree
Signed-off-by: John Jacques <john.jacques@lsi.com>
|
|
Signed-off-by: SangeethaRao <sangeetha.rao@lsi.com>
|
|
Added module parameter panic_on_fatal which when set will cause the driver
to call panic() when an uncorrectable ECC error is detected.
Signed-off-by: Anders Berg <anders.berg@avagotech.com>
|
|
We must not call the ncr_write function to unmask interrupts with
the memory controller interrupt enabled, as this could cause the ISR to
be invoked before ncr_write has released the lock used to serialize
register accesses.
To avoid this, temporarily disable the IRQ line while unmasking the
interrupt sources in the controller.
Signed-off-by: Anders Berg <anders.berg@avagotech.com>
|
|
Signed-off-by: Anders Berg <anders.berg@avagotech.com>
|
|
Signed-off-by: Anders Berg <anders.berg@avagotech.com>
|
|
Signed-off-by: Anders Berg <anders.berg@avagotech.com>
|
|
If the device tree does not specify an interrupt property, the device driver
falls back to polling the controller status. This is needed to support
simulator models without interrupt capabilities.
Signed-off-by: Anders Berg <anders.berg@avagotech.com>
|
|
Changed the initial transfer size on block reads from 1 to
I2C_SMBUS_BLOCK_MAX. The size is adjusted when the first byte (block
length) is received. Having the initial size set to 1 could cause the
controller to stop the transfer after the block length byte, if the
transfer length register wasn't updated in time.
Signed-off-by: Anders Berg <anders.berg@avagotech.com>
|
|
Fixed ISR to return IRQ_NONE if no interrupt was pending (or no transfer
was in progress).
Signed-off-by: Anders Berg <anders.berg@avagotech.com>
|
|
Remove unused definitions and remove redundant variable.
Signed-off-by: Anders Berg <anders.berg@avagotech.com>
|
|
Add support for PCIe MSI on both controllers. On AXM5516, PCIE0 has the ability
to signal MSI interrupts on 16 separate lines to the CPU cores, where as PCIE1
only has a single interrupt line that is used for legacy, status/error and MSI.
This patch adds MSI support on a controller with only one interrupt line.
Signed-off-by: Anders Berg <anders.berg@lsi.com>
|
|
The interrupt numbers for the memory controllers was wrong (conflicting with
assigned range for PCI MSI. This would cause a device using MSI to fail to
request its IRQ.
Signed-off-by: Anders Berg <anders.berg@lsi.com>
|
|
Add a the vendor prefixed compatible string to the match table.
Signed-off-by: Anders Berg <anders.berg@lsi.com>
|
|
This typo causes the build to break, the fix includes
some cleanup to the file.
Signed-off-by: John Jacques <john.jacques@lsi.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
|
|
|
|
|
|
This is the 3.4.91 stable release
|
|
|
|
|
|
This is the 3.4.90 stable release
|