Age | Commit message (Collapse) | Author |
|
[ Upstream commit 6cf1bf636a067eb308cb3a8322b9d6b1844a075d ]
The original github source allowed for the cache-line-size property
to be missing. Since recent firmwares also require this property,
it makes sense to always require it in the driver as well.
If the cache-line-size property is missing, then the driver probe
should fail as no dev since the kernel and dt may be out of sync.
The fix is to add a check for the return value of of_property_read_u32.
Changes V2:
1. Add error message if cache-line-size is missing.
2. Simple check for non-zero return value from
of_property_read_u32.
Signed-off-by: Michael Zoran <mzoran@crowfest.net>
Acked-by: Stefan Wahren <stefan.wahren@i2se.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
commit 974d4d03fc020af4fa4e9e72a86f0fefa37803c5 upstream.
This fixes a NULL pointer dereference on RPi 2 with multi_v7_defconfig.
The function page_address() could return NULL with enabled CONFIG_HIGHMEM.
So fix this by using kmap() instead.
Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
Fixes: 71bad7f08641 ("staging: add bcm2708 vchiq driver")
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
from stack.
commit f790923f146140a261ad211e5baf75d169f16fb2 upstream.
Depends on: 691c4b95d1 ("iio: ad_sigma_delta: Implement a dedicated reset function")
SPI host drivers can use DMA to transfer data, so the buffer should be properly allocated.
Keeping it on the stack could cause an undefined behavior.
The dedicated reset function solves this issue.
Signed-off-by: Stefan Popa <stefan.popa@analog.com>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Michael Hennerich <michael.hennerich@analog.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
Use the cpu affine DPIO unless there isn't one which can happen
if less DPIOs than cores are assign to the kernel.
Signed-off-by: Roy Pledge <roy.pledge@nxp.com>
|
|
For some dpio functions, a negative cpu id parameter value is
valid and means "any". But when trying to validate this param
value against an upper limit, in this case num_possible_cpus(),
we risk obtaining the wrong result due to an implicit cast.
Avoid an incorrect check result when cpu id is negative, by
explicitly stating the comparison is between signed values.
Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
|
|
Previous commits:
6e2387e8f19e ("staging: fsl-dpaa2/eth: Add Freescale DPAA2 Ethernet driver")
39163c0ce0f4 ("staging: fsl-dpaa2/eth: Errors checking update")
have added bits that are not specific to the WRIOP accelerator.
Move these where they belong (in DPIO) such that other accelerators
can make use of them.
While here, fix the values of FD_CTRL_FSE and FD_CTRL_FAERR, which
were shifted off by one bit.
Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
|
|
Previous commits:
6e2387e8f19e ("staging: fsl-dpaa2/eth: Add Freescale DPAA2 Ethernet driver")
39163c0ce0f4 ("staging: fsl-dpaa2/eth: Errors checking update")
have added bits that are not specific to the WRIOP accelerator.
Move these where they belong (in DPIO) such that other accelerators
can make use of them.
While here, fix the values of FD_CTRL_FSE and FD_CTRL_FAERR, which
were shifted off by one bit.
Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
|
|
We used to set pass_timestamp parameter only for Tx
confirmation buffer layout config, when in fact MC
also looks at the Tx buffer layout when deciding whether
to enable Tx timestamping support or not.
Older versions of MC (< MC.1.x) enabled this support regardless
of user config, so the issue was hidden.
Copy the pass_timestamp setting to Tx buffer layout configuration.
Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
|
|
Make sure the memory area where the hardware writes the
congestion state is properly synchronized before reading it.
Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
|
|
If build_frag_skb() fails, we risk accessing the skb
pointer before checking it's not NULL.
Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
|
|
When inserting a flow steering rule through ethtool, the user
may specify a location index. Ethtool manual says the expected
behaviour is to overwrite any rule present in that location.
What currently happens is that the driver passes on the location
to MC with no further verifications and if there's already
a rule present at that index, MC returns an error.
Fix this by making sure the location is available, and if not
free the current entry before inserting the new one.
Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
|
|
Once a Tx frame descriptor is enqueued, an interrupt might be triggered
to process the Tx confirmation and free the skb, hitting a memory use
after free when updating the tx_bytes statistic based on skb->len.
Use the frame descriptor length instead.
Signed-off-by: Bogdan Purcareata <bogdan.purcareata@nxp.com>
|
|
Private structure fields "hash_fields" and "num_hash_fields" were
used in check_cls_support() even though they were initialized
later.
Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
|
|
'type' and 'flags' fields were missing from dprc_rsp_get_obj_region
structure therefore the MC Bus driver was not receiving proper flags
from MC like DPRC_REGION_CACHEABLE.
Signed-off-by: Cristian Sovaiala <cristian.sovaiala@freescale.com>
|
|
Starting from MC 10.2.x, max burst size value has decreased from
0xFFFF to 0xF7FF. Update the check in the driver.
Signed-off-by: Bogdan Purcareata <bogdan.purcareata@nxp.com>
|
|
Fix an issue where we weren't freeing the allocated pointer,
but rather the 16-byte aligned address based on it.
Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
|
|
Fix an issue in dpaa2_eth_iova_to_virt() when SMMU is
not enabled.
Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
|
|
There are possibility that the DPIO/DPCON are probed after
DPNI, so DPNI probing should be deferred.
I observed below prints and no DPAA2-Ethernet interface was available
fsl_dpaa2_eth dpni.0: No affine DPIO for cpu 0
fsl_dpaa2_eth dpni.0: No cpu with an affine DPIO/DPCON
This patch defer DPAA2-ETH driver probing when DPIO/DPPCON
are not yet available.
Signed-off-by: Bharat Bhushan <Bharat.Bhushan@nxp.com>
|
|
WRIOP hardware needs to write to the hardware annotation
area of Tx buffers (status bits, timestamp, etc). Map these
buffers with DMA_BIDIRECTIONAL, otherwise the write
transaction through SMMU will not be allowed.
Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
|
|
Use the correct APIs for translating a DMA-mapped IOVA address
into a virtual one.
Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
|
|
Add DPAA2 Ethernet debugfs statistics, displaying aggregated counters
pertaining to CPU, frame queue and channel.
It's a squashed commit containing contributions by the following
authors:
Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
Signed-off-by: Bogdan Hamciuc <bogdan.hamciuc@nxp.com>
Signed-off-by: Cristian Sovaiala <cristian.sovaiala@nxp.com>
Signed-off-by: Bogdan Purcareata <bogdan.purcareata@nxp.com>
|
|
Introduce the DPAA2 Ethernet driver, which manages Datapath
Network Interface (DPNI) objects discovered on the MC bus.
In addition to DPNIs, the Ethernet driver uses several other
MC objects to build a network interface abstraction: buffer
pools (DPBPs), I/O Portals (DPIOs) and concentrators (DPCONs).
The starting point is the SDK 2.0 GA 1703 driver, plus the following
changes:
- removed busy poll code (integrated into netstack)
- minor signature change for dpaa2_eth_get_stats
- debugfs support removed (contained into different patch)
- Tx queues registered to XPS
- max MTU handling changed according to netdevice update
- dropped dpaa2_sg_{le_to_cpu/cpu_to_le} - no longer needed
(BIG_ENDIAN support not tested yet)
This is a squashed commit containing the contributions of the following
authors:
Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
Signed-off-by: Bogdan Hamciuc <bogdan.hamciuc@nxp.com>
Signed-off-by: Cristian Sovaiala <cristian.sovaiala@nxp.com>
Signed-off-by: Alexandru Marginean <alexandru.marginean@nxp.com>
Signed-off-by: Roy Pledge <roy.pledge@nxp.com>
Signed-off-by: Haiying Wang <haiying.wang@nxp.com>
Signed-off-by: Stuart Yoder <stuart.yoder@freescale.com>
Signed-off-by: J. German Rivera <German.Rivera@freescale.com>
Signed-off-by: Itai Katz <itai.katz@freescale.com>
Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
Signed-off-by: Bogdan Purcareata <bogdan.purcareata@nxp.com>
|
|
Implement the rest of the build/parse APIs in order to support full
DPAA2 Ethernet driver functionality.
Signed-off-by: Bogdan Purcareata <bogdan.purcareata@nxp.com>
|
|
Add the command build/parse APIs for operating on DPNI objects through
the DPAA2 Management Complex.
Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
|
|
Add a README file describing the driver architecture, components
and I/O interface.
Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
|
|
Current fsl-mc driver had been upgraded to support mc v10.2.0.
This patch is to update flib files of dpaa2-rtc to v10.2.0, otherwise
there would be compile issue.
Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
|
Update dprtc command ids in order to work with MC 10.0.0.
The binary interface compatibility is maintained with MC v9.x.
Signed-off-by: Catalin Horghidan <catalin.horghidan@nxp.com>
|
|
This patch is to add DPAA2 RTC driver which is PTP 1588 clock
driver for DPAA2. The driver registers itself with class driver
for using the PTP hardware clock infrastructure. Together with
the SO_TIMESTAMPING socket options, this presents a standardized
method for developing PTP user space programs, synchronizing
Linux with external clocks, and using the ancillary features of
PTP hardware clocks.
Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
|
Port carrier synchronization should be performed when the switch ports are
enabled, not at probe, to avoid miss-configuration.
Signed-off-by: Razvan Stefanescu <razvan.stefanescu@nxp.com>
|
|
Checks prevented link restoration when endpoint flipped link state.
Signed-off-by: Razvan Stefanescu <razvan.stefanescu@nxp.com>
|
|
Improve ethtool support by adding ops for:
- driver info
- link status
- auto-negotiation setting and result
- speed setting and result
Signed-off-by: Razvan Stefanescu <razvan.stefanescu@nxp.com>
|
|
Fix compilation warnings triggered by '-Wsign-compare' flag.
Signed-off-by: Razvan Stefanescu <razvan.stefanescu@nxp.com>
|
|
Introducing the DPAA2 L2 Switch driver from commits on sdk-v2.0.x
branch.
The switch and all ports are presented as network interfaces in Linux
(swX and swXpY). I/O functionality is not available on these interfaces,
they are exclusively for management.
This patch contains the following patches squashed together:
dpaa2-ethsw: Ethernet Switch driver
dpaa2-ethsw: Update dpsw binary interface to 7.0
dpaa2-ethsw: Add object version check
dpaa2-ethsw: Fix interrupt handling
staging: dpaa2-ethsw: update dpsw command ids set for MC v10.x
dpaa2-ethsw: replace uint32_t with u32 type
dpaa2-ethsw: replace uint16_t by u16 type
dpaa2-ethsw: replace uint8_t by u8 type
dpaa2-ethsw: replace uint64_t by u64 type
dpaa2-ethsw: uprev binary interface to v8.0
dpaa2-ethsw: move comments from declaration to definition
dpaa2-ethsw: misc whitespace cleanup
dpaa2-ethsw: align block comments properly
dpaa2-ethsw: convert mc command build/parse to use C structs
dpaa2-ethsw: properly align function comments
dpaa2-ethsw: Add jumbo frames support
These patches were initially submitted by:
Alex Marginean <alexandru.marginean@freescale.com>
J. German Rivera <German.Rivera@freescale.com>
Stuart Yoder <stuart.yoder@freescale.com>
Razvan Stefanescu <razvan.stefanescu@freescale.com>
Catalin Horghidan <catalin.horghidan@nxp.com>
Ioana Ciornei <ioana.ciornei@nxp.com>
Updated FLIBs to the latest available for MC 10.x and solved checkpatch
issues. Also removed DPAA2 Ethernet dependency and made changes required
by updating kernel to 4.11.
Signed-off-by: Razvan Stefanescu <razvan.stefanescu@nxp.com>
|
|
Improve ethtool support by adding ops for:
- driver info
- link status
- auto-negotiation setting and result
- speed setting and result
Signed-off-by: Razvan Stefanescu <razvan.stefanescu@nxp.com>
|
|
Fix warnings triggered by '-Wsign-compare' flag.
Signed-off-by: Razvan Stefanescu <razvan.stefanescu@nxp.com>
|
|
This contains the following patches migrated from sdk-v2.0.x branch:
dpaa2-evb: Added Edge Virtual Bridge driver
dpaa2-evb: Add VLAN_8021Q dependency
dpaa2-evb: Update dpdmux binary interface to 5.0
dpaa2-evb: Add support to set max frame length.
dpaa2-evb: Fix interrupt handling
dpaa2-evb: Add object version check
staging: dpaa2-evb: update dpdmux command ids set for MC v10.x
dpaa2-evb: replace uintX_t types by kernel preferred kernel uX types
dpaa2-evb: uprev binary interface to v6.0
dpaa2-evb: move comments from declaration to definition
dpaa2-evb: delete extraneous tabs
dpaa2-evb: align function parameters
dpaa2-evb: convert mc command build/parse to use C structs
Initial patches have been signed-off by:
Alex Marginean <alexandru.marginean@freescale.com>
J. German Rivera <German.Rivera@freescale.com>
Bogdan Hamciuc <bogdan.hamciuc@freescale.com>
Mihaela Panescu <mihaela.panescu@freescale.com>
Catalin Horghidan <catalin.horghidan@nxp.com>
Ioana Ciornei <ioana.ciornei@nxp.com>
Stuart Yoder <stuart.yoder@freescale.com>
Updated FLIBs to the latest available for MC 10.x and fixed check-patch
warnings. Updated maintainer to myself and removed the DPAA2 Ethernet
dependency.
Signed-off-by: Razvan Stefanescu <razvan.stefanescu@nxp.com>
|
|
Signed-off-by: Constantin Tudor <constantin.tudor@nxp.com>
|
|
Introduce the DPAA2 mac driver, which manages Datapath
Media Access Control (DPMAC) objects discovered on the
MC bus.
This driver works as a proxy between phylib including phy
drivers and the Management Complex firmware. It receives
updates on link state changes from PHY lib and forwards
them to the Management Complex and receives interrupts
from the Management Complex whenever a request is made to
change the link state.
This is a squashed commit containing contributions of the
following owners:
Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
Signed-off-by: Alex Marginean <alexandru.marginean@nxp.com>
Signed-off-by: Bogdan Hamciuc <bogdan.hamciuc@nxp.com>
Signed-off-by: Razvan Stefanescu <razvan.stefanescu@nxp.com>
Signed-off-by: Stuart Yoder <stuart.yoder@freescale.com>
Signed-off-by: J. German Rivera <German.Rivera@freescale.com>
Signed-off-by: Itai Katz <itai.katz@freescale.com>
Signed-off-by: Bogdan Purcareata <bogdan.purcareata@nxp.com>
|
|
Add the command build/parse APIs for operating on DPMAC
objects through the DPAA2 Management Complex.
Signed-off-by: Bogdan Hamciuc <bogdan.hamciuc@nxp.com>
Signed-off-by: Bogdan Purcareata <bogdan.purcareata@nxp.com>
|
|
Fix typos and add the following to the scripts/spelling.txt:
deintializing||deinitializing
deintialize||deinitialize
deintialized||deinitialized
Link: http://lkml.kernel.org/r/1481573103-11329-28-git-send-email-yamada.masahiro@socionext.com
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
|
1. add devm_alloc_percpu support
3. use register_hotcpu_notifier instead of cpuhp_setup_state_nocalls
4. remove __cpuinit
5. adjust arguments for funciton
do_mmap_pgoff
do_munmap
Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
|
|
commit 4b184a137767069ef1982c94da389f557e1681cb
[qbman part]
Signed-off-by: Roy Pledge <roy.pledge@nxp.com>
Signed-off-by: Madalin Bucur <madalin.bucur@nxp.com>
Integrated-by: Zhao Qiang <qiang.zhao@nxp.com>
|
|
The kernel support for the restool (a user space resource management
tool) is a driver for the /dev/dprc.N device file.
Its purpose is to provide an ioctl interface,
which the restool uses to interact with the MC bus driver
and with the MC firmware.
We allocate a dpmcp at driver initialization,
and keep that dpmcp until driver exit.
We use that dpmcp by default.
If that dpmcp is in use, we create another portal at run time
and destroy the newly created portal after use.
The ioctl RESTOOL_SEND_MC_COMMAND sends user space command to fsl-mc
bus and utilizes the fsl-mc bus to communicate with MC firmware.
The ioctl RESTOOL_DPRC_SYNC request the mc-bus launch
objects scan under root dprc.
In order to support multiple root dprc, we utilize the bus notify
mechanism to scan fsl_mc_bus_type for the newly added root dprc.
After discovering the root dprc, it creates a miscdevice
/dev/dprc.N to associate with this root dprc.
Signed-off-by: Lijun Pan <Lijun.Pan@freescale.com>
[Stuart: minor fix to resolve compile error]
Signed-off-by: Stuart Yoder <stuart.yoder@nxp.com>
[Ioana: split patch to comply to Dash]
Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
|
|
Add support for dpaa2_fd_list format, i.e. dpaa2_fl_entry structure
and accessors.
Frame list entries (FLEs) are similar, but not identical to FDs:
+ "F" (final) bit
- FMT[b'01] is reserved
- DD, SC, DROPP bits (covered by "FD compatibility" field in FLE case)
- FLC[5:0] not used for stashing
Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
|
|
Signed-off-by: Bogdan Purcareata <bogdan.purcareata@nxp.com>
|
|
Order preservation is a feature that will be supported
in dpni, dpseci and dpci devices.
This is a preliminary patch for the changes to be
introduced in the corresponding drivers.
Signed-off-by: Radu Alexe <radu.alexe@nxp.com>
Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
|
|
When checking the response verb, the valid bit should be masked out,
since its value flips depending on what Response Register
(RR0 /RR1) it's been read from.
Fixes: 321eecb06bfb ("bus: fsl-mc: dpio: add QBMan portal APIs for DPAA2")
Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
|
|
Signed-off-by: Bogdan Purcareata <bogdan.purcareata@nxp.com>
|
|
Fix missing copyright date in DPIO header
Signed-off-by: Roy Pledge <roy.pledge@nxp.com>
|
|
While dpaa2_fd.simple structure fields are marked __leXX,
corresponding cpu_to_leXX / leXX_to_cpu conversions are missing.
While here, fix dpaa2_fd_{get,set}_bpid such that BMT, IVP bits
sharing the 16-bit field with BPID are not affected.
Fixes: d3269bdc7ebc ("bus: fsl-mc: dpio: add frame descriptor and scatter/gather APIs")
Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|