- 01 8月, 2014 1 次提交
-
-
由 Pawel Moll 提交于
The bitfield allocation function returns error condition as a negative value, but in two cases its result was assigned to an unsigned member of the hw_perf_event structure, thus the error would not be ever detected. Fixed by using an intermediate, signed variable. Reported-by: NDan Carpenter <dan.carpenter@oracle.com> Signed-off-by: NPawel Moll <pawel.moll@arm.com> Signed-off-by: NOlof Johansson <olof@lixom.net>
-
- 31 7月, 2014 1 次提交
-
-
由 Himangi Saraogi 提交于
In commit ae91d60b, a bug was fixed that involved converting !x & y to !(x & y). The code below shows the same pattern, and thus should perhaps be fixed in the same way. The Coccinelle semantic patch that makes this change is as follows: // <smpl> @@ expression E1,E2; @@ ( !E1 & !E2 | - !E1 & E2 + !(E1 & E2) ) // </smpl> Signed-off-by: NHimangi Saraogi <himangi774@gmail.com> Acked-by: NJulia Lawall <julia.lawall@lip6.fr> Acked-by: NPunit Agrawal <punit.agrawal@arm.com> Signed-off-by: NOlof Johansson <olof@lixom.net>
-
- 24 7月, 2014 2 次提交
-
-
由 Arnd Bergmann 提交于
The CCN driver makes no sense without PERF_EVENTS, and trying to build it when that option is disabled results in compile errors, so it's best to just add a strong Kconfig dependency. Signed-off-by: NArnd Bergmann <arnd@arndb.de>
-
由 Pawel Moll 提交于
Driver providing perf backend for ARM Cache Coherent Network interconnect. Supports counting all hardware events and crosspoint watchpoints. Currently works with CCN-504 only, although there should be no changes required for CCN-508 (just impossible to test it now). Signed-off-by: NPawel Moll <pawel.moll@arm.com> Signed-off-by: NArnd Bergmann <arnd@arndb.de>
-
- 18 7月, 2014 1 次提交
-
-
由 Liu Ying 提交于
There could be some memory map devices located in a certain chip select region of the i.MX WEIM. The devices could be attached to a simple bus(for example, a AXI bus) whose root node is one child device tree node of the i.MX WEIM device tree node. There should be a bridge(very likely, software transparent) bewteen the i.MX WEIM and the simple bus. This patch makes the i.MX WEIM driver possible to populate devices on a simple bus. In this way, people may try various IPs(in a FPGA, maybe) outside of i.MX chips with the i.MX WEIM embedded. Signed-off-by: NLiu Ying <Ying.Liu@freescale.com> Signed-off-by: NShawn Guo <shawn.guo@freescale.com>
-
- 20 6月, 2014 1 次提交
-
-
由 Jingoo Han 提交于
devm_request_and_ioremap() was obsoleted by the commit 75096579 ("lib: devres: Introduce devm_ioremap_resource()") and has been deprecated for a long time. So, let's remove this function. In addition, all usages of devm_request_and_ioremap() are also removed. Signed-off-by: NJingoo Han <jg1.han@samsung.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
- 17 6月, 2014 1 次提交
-
-
由 Arnd Bergmann 提交于
The arm-cci code uses device tree helpers for initialization that don't work on kernels built without CONFIG_OF. Further, it contains an inline assembly in cci_enable_port_for_self() that uses ARMv7 instructions and fails to build when targetting other ARM instruction set versions. This works around both issues by limiting the scope of the Kconfig symbol to platforms that can actually build this driver cleanly. Signed-off-by: NArnd Bergmann <arnd@arndb.de> Acked-by: NLorenzo Pieralisi <lorenzo.pieralisi@arm.com> Cc: Shawn Guo <shawn.guo@linaro.org>
-
- 27 5月, 2014 1 次提交
-
-
由 Arnd Bergmann 提交于
The versatile express changes for 3.16 introduced a number of build regressions for randconfig kernels by not tracking dependencies between the components right. This patch tries to rectify that: * the mach-vexpress code cannot link without the syscfg driver, which in turn needs MFD_VEXPRESS_SYSREG * various drivers call devm_regmap_init_vexpress_config(), which has to be exported so it can be used by loadable modules * the configuration bus uses OF DT helper functions that are not available to platforms disable CONFIG_OF * The sysreg driver exports GPIOs through gpiolib, which can be disabled on some platforms. * The clocksource code cannot be built on platforms that don't use modern timekeeping but rely on gettimeoffset. Signed-off-by: NArnd Bergmann <arnd@arndb.de>
-
- 24 5月, 2014 1 次提交
-
-
由 Florian Fainelli 提交于
This patch adds support for the Broadcom GISB arbiter bus timeout/error handler. GISB is a proprietary bus used by Broadcom Set Top Box System-on-a-chip devices (BCM7xxx) which allows multiple masters and clients to be interfaced with each other. The bus arbiter offers support for generating two interrupts towards the host CPU, thus allowing us to "catch" clock gated masters, or masters being volontarily blocked for powersaving purposes, or do general system troubleshooting. We also register a hook with the ARM fault exception handling to allow printing a more informative message than "imprecise external abort at 0x00000000" for instance. Signed-off-by: NFlorian Fainelli <f.fainelli@gmail.com> Signed-off-by: NArnd Bergmann <arnd@arndb.de>
-
- 16 5月, 2014 1 次提交
-
-
由 Pawel Moll 提交于
Components of the Versatile Express platform (configuration microcontrollers on motherboard and daughterboards in particular) talk to each other over a custom configuration bus. They provide miscellaneous functions (from clock generator control to energy sensors) which are represented as platform devices (and Device Tree nodes). The transactions on the bus can be generated by different "bridges" in the system, some of which are universal for the whole platform (for the price of high transfer latencies), others restricted to a subsystem (but much faster). Until now drivers for such functions were using custom "func" API, which is being replaced in this patch by regmap calls. This required: * a rework (and move to drivers/bus directory, as suggested by Samuel and Arnd) of the config bus core, which is much simpler now and uses device model infrastructure (class) to keep track of the bridges; non-DT case (soon to be retired anyway) is simply covered by a special device registration function * the new config-bus driver also takes over device population, so there is no need for special matching table for of_platform_populate nor "simple-bus" hack in the arm64 model dtsi file (relevant bindings documentation has been updated); this allows all the vexpress devices fit into normal device model, making it possible to remove plenty of early inits and other hacks in the near future * adaptation of the syscfg bridge implementation in the sysreg driver, again making it much simpler; there is a special case of the "energy" function spanning two registers, where they should be both defined in the tree now, but backward compatibility is maintained in the code * modification of the relevant drivers: * hwmon - just a straight-forward API change * power/reset driver - API change * regulator - API change plus error handling simplification * osc clock driver - this one required larger rework in order to turn in into a standard platform driver Signed-off-by: NPawel Moll <pawel.moll@arm.com> Acked-by: NMark Brown <broonie@linaro.org> Acked-by: NLee Jones <lee.jones@linaro.org> Acked-by: NGuenter Roeck <linux@roeck-us.net> Acked-by: NMike Turquette <mturquette@linaro.org>
-
- 06 5月, 2014 25 次提交
-
-
由 Afzal Mohammed 提交于
Add AM4372 information to handle L3 error. AM4372 has two clk domains 100f and 200s. Provide flagmux and data associated with it. NOTE: Timeout doesn't have STDERRLOG_MAIN register. And per hardware team, L3 timeout error cannot be cleared the normal way (by setting bit 31 in STDERRLOG_MAIN), instead it may be required to do system reset. L3 error handler can't help in such scenarios. Hence indicate timeout target offset as L3_TARGET_NOT_SUPPORTED as done for undocumented bits. Signed-off-by: NDave Gerlach <d-gerlach@ti.com> Signed-off-by: NAfzal Mohammed <afzal@ti.com> Signed-off-by: NSekhar Nori <nsekhar@ti.com> Signed-off-by: NNishanth Menon <nm@ti.com> Acked-by: NSantosh Shilimkar <santosh.shilimkar@ti.com> Acked-by: NPeter Ujfalusi <peter.ujfalusi@ti.com> Tested-by: NDarren Etheridge <detheridge@ti.com> Tested-by: NSekhar Nori <nsekhar@ti.com>
-
由 Rajendra Nayak 提交于
DRA7 is distinctly different from OMAP4 in terms of masters and clock domain organization. There two main clock domains which is divided as follows: <0x44000000 0x1000000> is clk1 and clk2 is the sub clock domain <0x45000000 0x1000> is clk3 Add all the data needed to handle L3 error handling on DRA7 devices and mark clk2 as subdomain and provide a compatible flag for functionality. Other than the data difference the hardware blocks involved are essentially the same. Signed-off-by: NRajendra Nayak <rnayak@ti.com> [nm@ti.com: bugfixes and generic improvements, documentation] Signed-off-by: NNishanth Menon <nm@ti.com> Acked-by: NSantosh Shilimkar <santosh.shilimkar@ti.com> Acked-by: NPeter Ujfalusi <peter.ujfalusi@ti.com> Tested-by: NDarren Etheridge <detheridge@ti.com> Tested-by: NSekhar Nori <nsekhar@ti.com>
-
由 Nishanth Menon 提交于
While OMAP4 and OMAP5 had 3 separate clock domains, DRA7 has only 2 and the first one then is internally divided into 2 sub clock domains. To better represent this in the driver, we use the concept of submodule. The address defintions in the devicetree is as per the high level clock domain(module) base, the sub clockdomain/subdomain which shares the same register space of a clockdomain is marked in the SoC data as L3_BASE_IS_SUBMODULE. L3_BASE_IS_SUBMODULE is used as an indication that it's base address is the same as the parent module and offsets are considered from the same base address as they are usually intermingled. Other than the base address, the submodule is same as a module as it is functionally so. Signed-off-by: NNishanth Menon <nm@ti.com> Acked-by: NSantosh Shilimkar <santosh.shilimkar@ti.com> Acked-by: NPeter Ujfalusi <peter.ujfalusi@ti.com> Tested-by: NDarren Etheridge <detheridge@ti.com> Tested-by: NSekhar Nori <nsekhar@ti.com>
-
由 Nishanth Menon 提交于
L3 error may be triggered using Debug interface (example JTAG) or due to other errors, for example an opcode fetch (due to function pointer or stack corruption) or a data access (due to some other failure). NOC registers contain additional information to help aid debug information. With this, we can enhance the error information to more detailed form: " L3 Custom Error: MASTER MPU TARGET L4PER2 (Read): Data Access in User mode during Functional access " Signed-off-by: NNishanth Menon <nm@ti.com> Acked-by: NSantosh Shilimkar <santosh.shilimkar@ti.com> Acked-by: NPeter Ujfalusi <peter.ujfalusi@ti.com> Tested-by: NDarren Etheridge <detheridge@ti.com> Tested-by: NSekhar Nori <nsekhar@ti.com>
-
由 Nishanth Menon 提交于
Today we get error such as L3 Custom Error: MASTER MPU TARGET L4PER2 But since the actual instruction triggerring the error Vs the point at which we report error may not be aligned, it makes sense to try and provide additional information - example the type of operation that was attempted to being performed can help narrow the debug down further. This helps provide log such as: L3 Custom Error: MASTER MPU TARGET L4PER2 (Read) Signed-off-by: NNishanth Menon <nm@ti.com> Acked-by: NSantosh Shilimkar <santosh.shilimkar@ti.com> Acked-by: NPeter Ujfalusi <peter.ujfalusi@ti.com> Tested-by: NDarren Etheridge <detheridge@ti.com> Tested-by: NSekhar Nori <nsekhar@ti.com>
-
由 Afzal Mohammed 提交于
Errors that cannot be cleared (determined by reading REGERR register) are currently handled by masking it. Documentation states that REGERR "Checks which application/debug error sources are active" - it does not indicate that this is "interrupt status" - masked out status represented eventually in the irq line to MPU. For example: Lets say module 0 bit 8(0x100) was unclearable, we do the mask it from generating further errors. However in the following cases: a) bit 9 of Module 0 OR b) any bit of Module 1+ occur, the interrupt handler wrongly assumes that the raw interrupt status of module 0 bit 8 is the root cause of the interrupt, and returns. This causes unhandled interrupt and resultant infinite interrupts. Fix this scenario by storing the events we masked out and masking raw status with masked ones before identifying and handling the error. Reported-by: NVaibhav Hiremath <hvaibhav@ti.com> Signed-off-by: NAfzal Mohammed <afzal@ti.com> Tested-by: NVaibhav Hiremath <hvaibhav@gmail.com> Signed-off-by: NSekhar Nori <nsekhar@ti.com> Signed-off-by: NNishanth Menon <nm@ti.com> Tested-by: NSekhar Nori <nsekhar@ti.com>
-
由 Nishanth Menon 提交于
Current interrupt handler does the first level parse to identify the slave and then handles the slave even identification, reporting and clearing of event as well. It is hence logical to split the handler into two where the primary handler just parses the flagmux till it identifies a slave and the slave handling, reporting and clearing is done in a helper function. While at it update the documentation in kerneldoc style. Signed-off-by: NNishanth Menon <nm@ti.com> Acked-by: NSantosh Shilimkar <santosh.shilimkar@ti.com> Acked-by: NPeter Ujfalusi <peter.ujfalusi@ti.com> Tested-by: NDarren Etheridge <detheridge@ti.com> Tested-by: NSekhar Nori <nsekhar@ti.com>
-
由 Nishanth Menon 提交于
The logic between handling CUSTOM_ERROR and STANDARD_ERROR is just the reporting style. So make it generic, simplify and standardize the reporting with both master and target information printed to log. Handle the register address difference for master code for standard error and custom error as well. While at it, fix a minor indentation error. Signed-off-by: NNishanth Menon <nm@ti.com> Acked-by: NSantosh Shilimkar <santosh.shilimkar@ti.com> Acked-by: NPeter Ujfalusi <peter.ujfalusi@ti.com> Tested-by: NDarren Etheridge <detheridge@ti.com> Tested-by: NSekhar Nori <nsekhar@ti.com>
-
由 Nishanth Menon 提交于
As per Documentation (OMAP4+), then masterid is infact encoded as follows: "L3_TARG_STDERRLOG_MSTADDR[7:0] STDERRLOG_MSTADDR stores the NTTP master address. The master address is the concatenation of Prefix & Initiator ConnID. It is defined on 8 bits. The 6 MSBs are used to distinguish the different initiators." So, when we matchup currently with the master ID list, we never get a proper match other than when MPU is the master (thanks to 0). Now, on other platforms such as AM437x, this tends to be bits[5:0]. Fix this by using the relevant 6MSBits to identify the master ID for standard and custom errors. Reported-by: NDarren Etheridge <detheridge@ti.com> Signed-off-by: NNishanth Menon <nm@ti.com> Acked-by: NSantosh Shilimkar <santosh.shilimkar@ti.com> Acked-by: NPeter Ujfalusi <peter.ujfalusi@ti.com> Tested-by: NDarren Etheridge <detheridge@ti.com> Tested-by: NSekhar Nori <nsekhar@ti.com>
-
由 Nishanth Menon 提交于
This allows us to encompass target information and flag mux offset that points to the target information into a singular structure. This saves us the need to look up two different arrays indexed by module ID for information. This allows us to reduce the static target information allocation to just the ones that are documented. Signed-off-by: NNishanth Menon <nm@ti.com> Acked-by: NSantosh Shilimkar <santosh.shilimkar@ti.com> Acked-by: NPeter Ujfalusi <peter.ujfalusi@ti.com> Tested-by: NDarren Etheridge <detheridge@ti.com> Tested-by: NSekhar Nori <nsekhar@ti.com>
-
由 Sricharan R 提交于
DRA7xx SoC has the same l3-noc interconnect ip (as OMAP4 and OMAP5), but AM437x SoC has just 2 modules instead of 3 which other SoCs have. So, stop using direct access of array indices and use of->match data and simplify implementation to benefit future usage. While at it, rename a few very generic variables to make them omap specific. This helps us differentiate from DRA7 and AM43xx data in the future. NOTE: None of the platforms that use omap_l3_noc are non-device tree anymore. So, it is safe to assume OF match here. Signed-off-by: NSricharan R <r.sricharan@ti.com> Signed-off-by: NRajendra Nayak <rnayak@ti.com> [nm@ti.com: split, refactor and optimize logic] Signed-off-by: NNishanth Menon <nm@ti.com> Acked-by: NSantosh Shilimkar <santosh.shilimkar@ti.com> Acked-by: NPeter Ujfalusi <peter.ujfalusi@ti.com> Tested-by: NDarren Etheridge <detheridge@ti.com> Tested-by: NSekhar Nori <nsekhar@ti.com>
-
由 Rajendra Nayak 提交于
On DRA7, unlike on OMAP4 and OMAP5, the flag mux input numbers used to indicate the source of errors are not continous. Have a way in the driver to catch these and WARN the user of the flag mux input thats either undocumented or wrong. In the similar vein, Timeout errors in AM43x can't be cleared per h/w team, neither does it have a STDERRLOG_MAIN to clear the error. Further, the mux bit offset might not even be indexed into our array of known mux input description, in which case we'd have a abort. So, define a static range check for bit description and any definition which has target_name set to NULL (the ones that are not populated or ones that are specifically marked in the case of discontinous input numbers), can handle the same gracefully. Upon occurance of error from such sources, mask it. Otherwise, we'd have an infinite interrupt source without any means to clear it. NOTE: follow on patch ensures that these masked bits are ignored. [nm@ti.com: rebase, squash and improve] Signed-off-by: NRajendra Nayak <rnayak@ti.com> Signed-off-by: NAfzal Mohammed <afzal@ti.com> Signed-off-by: NNishanth Menon <nm@ti.com> Acked-by: NSantosh Shilimkar <santosh.shilimkar@ti.com> Acked-by: NPeter Ujfalusi <peter.ujfalusi@ti.com> Tested-by: NDarren Etheridge <detheridge@ti.com> Tested-by: NSekhar Nori <nsekhar@ti.com>
-
由 Nishanth Menon 提交于
Currently the target instance information is organized indexed by bit field offset into multiple arrays. 1. We currently have offsets specific to each target associated with each clock domains are in seperate arrays: l3_targ_inst_clk1 l3_targ_inst_clk2 l3_targ_inst_clk3 2. Then they are organized per master index in l3_targ. 3. We have names in l3_targ_inst_name as an array to array of strings corresponding to the above with offsets. Simplify the same by defining a structure for information containing both target offset and name. this is then stored in arrays per domain and organized into an array indexed off domain. The array is still indexed based on bit field offset. Signed-off-by: NNishanth Menon <nm@ti.com> Acked-by: NSantosh Shilimkar <santosh.shilimkar@ti.com> Acked-by: NPeter Ujfalusi <peter.ujfalusi@ti.com> Tested-by: NDarren Etheridge <detheridge@ti.com> Tested-by: NSekhar Nori <nsekhar@ti.com>
-
由 Nishanth Menon 提交于
Move the L3 master structure out of the static definition to enable reuse for other SoCs. Signed-off-by: NNishanth Menon <nm@ti.com> Acked-by: NSantosh Shilimkar <santosh.shilimkar@ti.com> Acked-by: NPeter Ujfalusi <peter.ujfalusi@ti.com> Tested-by: NDarren Etheridge <detheridge@ti.com> Tested-by: NSekhar Nori <nsekhar@ti.com>
-
由 Nishanth Menon 提交于
just simplify derefencing that is equivalent. Signed-off-by: NNishanth Menon <nm@ti.com> Acked-by: NSantosh Shilimkar <santosh.shilimkar@ti.com> Acked-by: NPeter Ujfalusi <peter.ujfalusi@ti.com> Tested-by: NDarren Etheridge <detheridge@ti.com> Tested-by: NSekhar Nori <nsekhar@ti.com>
-
由 Nishanth Menon 提交于
Currently we use __raw_readl and writel in this driver. Considering there is no specific need for a memory barrier, replacing writel with endian-neutral writel_relaxed and replacing __raw_readls with the corresponding endian-neutral readl_relaxed allows us to have a standard set of register operations for the driver. While at it, simplify address computation using variables for register. Signed-off-by: NNishanth Menon <nm@ti.com> Acked-by: NSantosh Shilimkar <santosh.shilimkar@ti.com> Acked-by: NFelipe Balbi <balbi@ti.com> Acked-by: NPeter Ujfalusi <peter.ujfalusi@ti.com> Tested-by: NDarren Etheridge <detheridge@ti.com> Tested-by: NSekhar Nori <nsekhar@ti.com>
-
由 Nishanth Menon 提交于
l3->dev is not populated, so populate it and use it to print information relevant to the device instead of using a generic pr_*. Signed-off-by: NNishanth Menon <nm@ti.com> Acked-by: NSantosh Shilimkar <santosh.shilimkar@ti.com> Acked-by: NPeter Ujfalusi <peter.ujfalusi@ti.com> Tested-by: NDarren Etheridge <detheridge@ti.com> Tested-by: NSekhar Nori <nsekhar@ti.com>
-
由 Nishanth Menon 提交于
we do not use iclk directly anymore. And, even if we had to, we should be using pm_runtime APIs to do the same to be completely SoC independent. Signed-off-by: NNishanth Menon <nm@ti.com> Acked-by: NSantosh Shilimkar <santosh.shilimkar@ti.com> Acked-by: NPeter Ujfalusi <peter.ujfalusi@ti.com> Tested-by: NDarren Etheridge <detheridge@ti.com> Tested-by: NSekhar Nori <nsekhar@ti.com>
-
由 Sricharan R 提交于
Since omap_l3_noc driver is now being used for OMAP5 and reusable with DRA7 and AM437x, using omap4 specific naming is misleading. Signed-off-by: NSricharan R <r.sricharan@ti.com> Signed-off-by: NNishanth Menon <nm@ti.com> Acked-by: NSantosh Shilimkar <santosh.shilimkar@ti.com> Acked-by: NPeter Ujfalusi <peter.ujfalusi@ti.com> Tested-by: NDarren Etheridge <detheridge@ti.com> Tested-by: NSekhar Nori <nsekhar@ti.com>
-
由 Nishanth Menon 提交于
This is an embarrassing patch :(. Texas Corporation does not make OMAP. Texas Instruments Inc does. For that matter I dont seem to be able to find a Texas Corporation on the internet either. While at it, update coverage to the current year and update the template to remove redundant information and use the standard boiler plate licensing. Signed-off-by: NNishanth Menon <nm@ti.com> Acked-by: NSantosh Shilimkar <santosh.shilimkar@ti.com> Acked-by: NPeter Ujfalusi <peter.ujfalusi@ti.com> Tested-by: NDarren Etheridge <detheridge@ti.com> Tested-by: NSekhar Nori <nsekhar@ti.com>
-
由 Peter Ujfalusi 提交于
Use dev_err() which will going to print the driver's name as well and the KERN_ERR level is sufficient in this case (we also print via dev_err when there is an error with the mem resources) Signed-off-by: NPeter Ujfalusi <peter.ujfalusi@ti.com> Reviewed-by: NSantosh Shilimkar <santosh.shilimkar@ti.com> Acked-by: NTony Lindgren <tony@atomide.com> Signed-off-by: NNishanth Menon <nm@ti.com> Tested-by: NSekhar Nori <nsekhar@ti.com>
-
由 Peter Ujfalusi 提交于
It is NOP after the devm_* conversion. Signed-off-by: NPeter Ujfalusi <peter.ujfalusi@ti.com> Reviewed-by: NSantosh Shilimkar <santosh.shilimkar@ti.com> Acked-by: NTony Lindgren <tony@atomide.com> Signed-off-by: NNishanth Menon <nm@ti.com> Tested-by: NSekhar Nori <nsekhar@ti.com>
-
由 Peter Ujfalusi 提交于
With this we can remove the free_irq() calls from probe and remove. Signed-off-by: NPeter Ujfalusi <peter.ujfalusi@ti.com> Reviewed-by: NSantosh Shilimkar <santosh.shilimkar@ti.com> Acked-by: NTony Lindgren <tony@atomide.com> Signed-off-by: NNishanth Menon <nm@ti.com> Tested-by: NSekhar Nori <nsekhar@ti.com>
-
由 Peter Ujfalusi 提交于
We can then remove the iounmap() calls from probe and remove. Since the driver requests the resources via index we can do the mem resource request within a for loop. Signed-off-by: NPeter Ujfalusi <peter.ujfalusi@ti.com> Reviewed-by: NSantosh Shilimkar <santosh.shilimkar@ti.com> Acked-by: NTony Lindgren <tony@atomide.com> Signed-off-by: NNishanth Menon <nm@ti.com> Tested-by: NSekhar Nori <nsekhar@ti.com>
-
由 Peter Ujfalusi 提交于
We can remove the kfree() calls from probe and remove. Signed-off-by: NPeter Ujfalusi <peter.ujfalusi@ti.com> Reviewed-by: NSantosh Shilimkar <santosh.shilimkar@ti.com> Acked-by: NTony Lindgren <tony@atomide.com> Signed-off-by: NNishanth Menon <nm@ti.com> Tested-by: NSekhar Nori <nsekhar@ti.com>
-
- 24 4月, 2014 3 次提交
-
-
由 Thomas Petazzoni 提交于
Until now, the mvebu-mbus was guessing by itself whether hardware I/O coherency was available or not by poking into the Device Tree to see if the coherency fabric Device Tree node was present or not. However, on some upcoming SoCs, the presence or absence of the coherency fabric DT node isn't sufficient: in CONFIG_SMP, the coherency can be enabled, but not in !CONFIG_SMP. In order to clean this up, the mvebu_mbus_dt_init() function is extended to get a boolean argument telling whether coherency is enabled or not. Therefore, the logic to decide whether coherency is available or not now belongs to the core SoC code instead of the mvebu-mbus driver itself, which is much better. Signed-off-by: NThomas Petazzoni <thomas.petazzoni@free-electrons.com> Link: https://lkml.kernel.org/r/1397483228-25625-4-git-send-email-thomas.petazzoni@free-electrons.comSigned-off-by: NJason Cooper <jason@lakedaemon.net>
-
由 Thomas Petazzoni 提交于
Having multiple windows with the same target and attribute is actually legal, and can be useful for PCIe windows, when PCIe BARs have a size that isn't a power of two, and we therefore need to create several MBus windows to cover the PCIe BAR for a given PCIe interface. Fixes: fddddb52 ('bus: introduce an Marvell EBU MBus driver') Cc: <stable@vger.kernel.org> # v3.10+ Signed-off-by: NThomas Petazzoni <thomas.petazzoni@free-electrons.com> Link: https://lkml.kernel.org/r/1397823593-1932-7-git-send-email-thomas.petazzoni@free-electrons.comTested-by: NNeil Greatorex <neil@fatboyfat.co.uk> Signed-off-by: NJason Cooper <jason@lakedaemon.net>
-
由 Jason Gunthorpe 提交于
The mbus hardware requires a power of two size, and size aligned base. Currently, if a non-power of two is passed in to the low level routines they configure the register in a way that results in undefined behaviour. Call WARN and return EINVAL instead. Also, update the debugfs routines to show a message if there is an invalid register setting. All together this makes the recent problems with silent failure of PCI very obvious, noisy and debuggable. Signed-off-by: NJason Gunthorpe <jgunthorpe@obsidianresearch.com> Signed-off-by: NThomas Petazzoni <thomas.petazzoni@free-electrons.com> Link: https://lkml.kernel.org/r/1397823593-1932-6-git-send-email-thomas.petazzoni@free-electrons.comSigned-off-by: NJason Cooper <jason@lakedaemon.net>
-
- 05 3月, 2014 1 次提交
-
-
由 Shawn Guo 提交于
For imx50-weim and imx6q-weim type of devices, there might a WEIM CS space configuration register in General Purpose Register controller, e.g. IOMUXC_GPR1 on i.MX6Q. Depending on which configuration of the following 4 is chosen for given system, IOMUXC_GPR1[11:0] should be set up as 05, 033, 0113 or 01111 correspondingly. CS0(128M) CS1(0M) CS2(0M) CS3(0M) CS0(64M) CS1(64M) CS2(0M) CS3(0M) CS0(64M) CS1(32M) CS2(32M) CS3(0M) CS0(32M) CS1(32M) CS2(32M) CS3(32M) The patch creates a function for such type of devices, which scans 'ranges' property of WEIM node and build the GPR value incrementally. Thus the WEIM CS GPR can be set up automatically at boot time. Signed-off-by: NShawn Guo <shawn.guo@linaro.org> Reviewed-by: NPhilippe De Muyter <phdm@macqel.be> Tested-by: NPhilippe De Muyter <phdm@macqel.be>
-
- 26 2月, 2014 1 次提交
-
-
由 Punit Agrawal 提交于
The event numbering changed between revision r0 and r1 of the CCI PMU. Expose this to userspace to allow tooling to handle the differences in event numbers. Suggested-by: NDrew Richardson <Drew.Richardson@arm.com> Signed-off-by: NPunit Agrawal <punit.agrawal@arm.com> Reviewed-by: NWill Deacon <will.deacon@arm.com> Signed-off-by: NArnd Bergmann <arnd@arndb.de>
-