]> rtime.felk.cvut.cz Git - zynq/linux.git/log
zynq/linux.git
4 years agonet: macb: Change interrupt and napi enable order in open xilinx-v2019.1
Harini Katakam [Tue, 7 May 2019 14:07:24 +0000 (19:37 +0530)]
net: macb: Change interrupt and napi enable order in open

Current order in open:
-> Enable interrupts (macb_init_hw)
-> Enable NAPI
-> Start PHY

Sequence of RX handling:
-> RX interrupt occurs
-> Interrupt is cleared and interrupt bits disabled in handler
-> NAPI is scheduled
-> In NAPI, RX budget is processed and RX interrupts are re-enabled

With the above, on QEMU or fixed link setups (where PHY state doesn't
matter), there's a chance macb RX interrupt occurs before NAPI is
enabled. This will result in NAPI being scheduled before it is enabled.
Fix this macb open by changing the order.

Signed-off-by: Harini Katakam <harini.katakam@xilinx.com>
Reviewed-by: Radhey Shyam Pandey <radhey.shyam.pandey@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
4 years agospi: spi-xilinx: Fixed kernel booting issue when startup block is enabled
Amit Kumar Mahapatra [Mon, 6 May 2019 11:52:13 +0000 (17:22 +0530)]
spi: spi-xilinx: Fixed kernel booting issue when startup block is enabled

In AXI SPI when startup block is enabled in the hardware the driver
performs a dummy Read ID by selecting one of the connected SPI slave
device.

The dummy read operation will fail if the design has only cs0, as the
driver was always using cs1 and causing the kernel to hang while
booting.
So this patch reads the chip select number from devicetree and uses
the same for startup block.

Signed-off-by: Amit Kumar Mahapatra <amit.kumar-mahapatra@xilinx.com>
Acked-by: Naga Sureshkumar Relli <naga.sureshkumar.relli@xilinx.com>
Reviewed-by: Radhey Shyam Pandey <radhey.shyam.pandey@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
4 years agogpio: gpio-xilinx: consider -ve return values from of_irq_to_resource
Sai Pavan Boddu [Fri, 3 May 2019 14:04:17 +0000 (19:34 +0530)]
gpio: gpio-xilinx: consider -ve return values from of_irq_to_resource

of_irq_to_resource returns 0 or -ve value on failing to map irq.

Signed-off-by: Sai Pavan Boddu <sai.pavan.boddu@xilinx.com>
Signed-off-by: Bharat Kumar Gogada <bharat.kumar.gogada@xilinx.com>
Acked-by: Harini Katakam <harini.katakam@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agoclk: clk-fixed-factor: Return EPROBE_DEFER to wait for dependent drivers
Shubhrajyoti Datta [Sat, 30 Mar 2019 11:59:33 +0000 (17:29 +0530)]
clk: clk-fixed-factor: Return EPROBE_DEFER to wait for dependent drivers

In case the provider clock is not yet probed the fixed factor does not
find the name of the parent clock. This is because the parent clock is
not yet probed and in case of zynqmp the output-names is omitted.

This is a temporary solution however the critical components
like firmware probe should happen early.
Fixes a probe failure.

Signed-off-by: Shubhrajyoti Datta <shubhrajyoti.datta@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agospi: cadence: Correct initialisation of runtime PM
Charles Keepax [Thu, 25 Apr 2019 12:59:49 +0000 (18:29 +0530)]
spi: cadence: Correct initialisation of runtime PM

Currently the driver calls pm_runtime_put_autosuspend but without ever
having done a pm_runtime_get, this causes the reference count in the pm
runtime core to become -1. The bad reference count causes the core to
sometimes suspend whilst an active SPI transfer is in progress.

arizona spi0.1: SPI transfer timed out
spi_master spi0: failed to transfer one message from queue

The correct proceedure is to do all the initialisation that requires the
hardware to be powered up before enabling the PM runtime, then enable
the PM runtime having called pm_runtime_set_active to inform it that the
hardware is currently powered up. The core will then power it down at
it's leisure and no explicit pm_runtime_put is required.

Fixes: d36ccd9 ("spi: cadence: Runtime pm adaptation")
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Amit Kumar Mahapatra <amit.kumar-mahapatra@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agoRevert "net: xilinx: axiethernet: Increase TX and RX BD count"
Radhey Shyam Pandey [Wed, 17 Apr 2019 15:16:58 +0000 (20:46 +0530)]
Revert "net: xilinx: axiethernet: Increase TX and RX BD count"

This reverts commit ce37bfc2d48a94c5938838f5befbb48336f556e6.

In 10G + mcdma(32-bit) zcu102 design we are seeing swiotlb buffer full
error when MTU is set to 9000. The reason is default software IO TLB
64MB size is not sufficient. Hence in order to make all configurations
work with the default kernel parameters, reverting BD count increase.

Signed-off-by: Radhey Shyam Pandey <radhey.shyam.pandey@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agoarm64: zynqmp: Rename zc1285 to zcu1285
Michal Simek [Tue, 23 Apr 2019 10:45:07 +0000 (12:45 +0200)]
arm64: zynqmp: Rename zc1285 to zcu1285

zcu1285 is released to public that's why name has changed.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agoserial: uartps: Add support for cts-override
Shubhrajyoti Datta [Mon, 15 Apr 2019 08:52:25 +0000 (14:22 +0530)]
serial: uartps: Add support for cts-override

Having flow is configurable. Add support for the same by
checking for cts-override.

Signed-off-by: Shubhrajyoti Datta <shubhrajyoti.datta@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agodt-bindings: xilinx-uartps: Add support for cts-override
Shubhrajyoti Datta [Mon, 15 Apr 2019 08:52:24 +0000 (14:22 +0530)]
dt-bindings: xilinx-uartps: Add support for cts-override

Flow control is configurable in xilinx-uartps
Add a dt binding to check for the same.

Signed-off-by: Shubhrajyoti Datta <shubhrajyoti.datta@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agov4l: xilinx: m2m: Fix buftype for s_selection ioctl
Satish Kumar Nagireddy [Wed, 17 Apr 2019 01:30:37 +0000 (18:30 -0700)]
v4l: xilinx: m2m: Fix buftype for s_selection ioctl

In current implementstion, driver is checking against _MPLANE buffer
types, but the type field in struct v4l2_selection is supposed to never
use the _MPLANE variants.

The commit eaec420f530d ("[media] v4l2-ioctl/exynos: fix G/S_SELECTION's
type handling") is converging non-mplane and _MPLANE formats to non-mpalne
formats. This is to allow applications to pass _MPLANE and non-mpalne
buffer types, and the driver only handles the non-mplane formats. Fix
this driver accordingly.

Signed-off-by: Satish Kumar Nagireddy <satish.nagireddy.nagireddy@xilinx.com>
Reviewed-by: Hyun Kwon <hyun.kwon@xilinx.com>
5 years agodrm: xlnx: mixer: Adding 16 layer support
Venkateshwar Rao Gannavarapu [Tue, 16 Apr 2019 20:40:18 +0000 (13:40 -0700)]
drm: xlnx: mixer: Adding 16 layer support

This patch adds 16 layer support with backward compatibility.

Signed-off-by: Venkateshwar Rao Gannavarapu <venkateshwar.rao.gannavarapu@xilinx.com>
Signed-off-by: Saurabh Sengar <saurabh.singh@xilinx.com>
Reviewed-by: Hyun Kwon <hyun.kwon@xilinx.com>
5 years agodt-bindings: display: xlnx: mixer: Updated compatible string
Venkateshwar Rao Gannavarapu [Tue, 16 Apr 2019 20:40:17 +0000 (13:40 -0700)]
dt-bindings: display: xlnx: mixer: Updated compatible string

This patch introduces the compatible string for Mixer4.0.

Signed-off-by: Venkateshwar Rao Gannavarapu <venkateshwar.rao.gannavarapu@xilinx.com>
Signed-off-by: Saurabh Sengar <saurabhs@xilinx.com>
Reviewed-by: Hyun Kwon <hyun.kwon@xilinx.com>
5 years agousb: dwc3: gadget: do not issue END_TRANSFER if request list is empty
Anurag Kumar Vulisha [Mon, 15 Apr 2019 15:32:33 +0000 (15:32 +0000)]
usb: dwc3: gadget: do not issue END_TRANSFER if request list is empty

If there are no entry in request list (i.e, both pending_list and
started_list are empty) then do not issue END_TRANSFER instead set
the PENDING flag, so that the END_TRANSFER is issued when an new
entry is added into request list. This patch updates the same.

If the isocronous transfers are started before XFERNOTREADY event,
there are chances of getting BUS_EXPIRY. So, this patch updates the
code to not issue __dwc3_gadget_start_isoc() before XFERNOTREADY
event and wait for dwc3_gadget_endpoint_transfer_not_ready() to
start the isocronous transfers.

Signed-off-by: Anurag Kumar Vulisha <anurag.kumar.vulisha@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agousb: dwc3: gadget: check for empty started_list after cleaning completed requests
Anurag Kumar Vulisha [Mon, 15 Apr 2019 15:32:32 +0000 (15:32 +0000)]
usb: dwc3: gadget: check for empty started_list after cleaning completed requests

The code in dwc3_gadget_endpoint_transfer_in_progress() checks for
the empty value in started_list before cleaning up the complted
requests. Since the present working request is not yet cleaned from
started_list, the list_empty(started_list) always returns non-empty.
This patch corrects the code by moving the list_empty(started_list)
check after calling dwc3_gadget_ep_cleanup_completed_requests()

Signed-off-by: Anurag Kumar Vulisha <anurag.kumar.vulisha@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agousb: dwc3: gadget: clear DWC3_EP_PENDING_REQUEST flag
Anurag Kumar Vulisha [Mon, 15 Apr 2019 15:32:31 +0000 (15:32 +0000)]
usb: dwc3: gadget: clear DWC3_EP_PENDING_REQUEST flag

This patch modifies the code to clear the DWC3_EP_PENDING_REQUEST
flag once the transfer is started.

Signed-off-by: Anurag Kumar Vulisha <anurag.kumar.vulisha@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agov4l: xilinx: vip: Add YUV444 12bit and 16bit formats
Satish Kumar Nagireddy [Wed, 10 Apr 2019 22:04:57 +0000 (15:04 -0700)]
v4l: xilinx: vip: Add YUV444 12bit and 16bit formats

This patch adds support for YUV444 12bit and 16bit formats.

Signed-off-by: Satish Kumar Nagireddy <satish.nagireddy.nagireddy@xilinx.com>
Reviewed-by: Hyun Kwon <hyun.kwon@xilinx.com>
5 years agomedia: v4l2-ioctl: Add YUV444 12bit and 16bit pixel formats
Satish Kumar Nagireddy [Wed, 10 Apr 2019 22:04:56 +0000 (15:04 -0700)]
media: v4l2-ioctl: Add YUV444 12bit and 16bit pixel formats

This patch adds new fourcc codes for YUV444 12bit and 16bit formats.

Signed-off-by: Satish Kumar Nagireddy <satish.nagireddy.nagireddy@xilinx.com>
Reviewed-by: Hyun Kwon <hyun.kwon@xilinx.com>
5 years agomedia: v4l: Add YUV444 12bit and 16bit media bus format
Satish Kumar Nagireddy [Wed, 10 Apr 2019 22:04:55 +0000 (15:04 -0700)]
media: v4l: Add YUV444 12bit and 16bit media bus format

This patch adds new media bus formats for YUV444 12bit and 16bit.

Signed-off-by: Satish Kumar Nagireddy <satish.nagireddy.nagireddy@xilinx.com>
Reviewed-by: Hyun Kwon <hyun.kwon@xilinx.com>
5 years agov4l: xilinx: vip: Fix stride calculation
Satish Kumar Nagireddy [Wed, 10 Apr 2019 22:04:54 +0000 (15:04 -0700)]
v4l: xilinx: vip: Fix stride calculation

The stride calculation for RGB 10bit and YUV444 10bit formats are missing
scaling / padding factor and also using wrong bpl factor.

This patch corrects the stride calculation by fixing aforementioned issue.

Signed-off-by: Satish Kumar Nagireddy <satish.nagireddy.nagireddy@xilinx.com>
Reviewed-by: Hyun Kwon <hyun.kwon@xilinx.com>
5 years agomedia: v4l2-ioctl: Use correct fourcc for YUV444 10bit format
Satish Kumar Nagireddy [Wed, 10 Apr 2019 22:04:53 +0000 (15:04 -0700)]
media: v4l2-ioctl: Use correct fourcc for YUV444 10bit format

Y_only 10bit and YUV444 10bit pixel formats are using same fourcc. This
patch uses X410 as fourcc for YUV444 10bit format.

 X  -> padding
 4  -> chroma subsampling
 10 -> Bits per component

Signed-off-by: Satish Kumar Nagireddy <satish.nagireddy.nagireddy@xilinx.com>
Reviewed-by: Hyun Kwon <hyun.kwon@xilinx.com>
5 years agoASoC: xlnx: revert HDMI audio mclk mutliplier
Maruthi Srinivas Bayyavarapu [Wed, 10 Apr 2019 08:35:38 +0000 (14:05 +0530)]
ASoC: xlnx: revert HDMI audio mclk mutliplier

Mutliplier value of 768 used in latest ACR IP is not providing proper
audio in some test cases. The old value of 512 is tested to be appropriate
with all tests. So, revert back to 512. ACR IP was aleady reverted back
to 512.

Signed-off-by: Maruthi Srinivas Bayyavarapu <maruthi.srinivas.bayyavarapu@xilinx.com>
Reviewed-by: Hyun Kwon <hyun.kwon@xilinx.com>
5 years agodrm: xlnx: pl_disp: Added plane atomic check function
Venkateshwar Rao Gannavarapu [Tue, 9 Apr 2019 19:17:57 +0000 (12:17 -0700)]
drm: xlnx: pl_disp: Added plane atomic check function

This patch adds the atomic check helper function to update mode
changed flag and returns error when framebuffer remove functionality
forces to commit without disable crtc.

Without this patch, new DRM framework commits without disable crtc
which leads image corruption and delay in consecutive runs.

Signed-off-by: Venkateshwar Rao Gannavarapu <venkateshwar.rao.gannavarapu@xilinx.com>
Reviewed-by: Hyun Kwon <hyun.kwon@xilinx.com>
5 years agowatchdog: of_xilinx_wdt: Wire setting up timeout via module parameter/DT
Srinivas Goud [Tue, 9 Apr 2019 14:29:27 +0000 (19:59 +0530)]
watchdog: of_xilinx_wdt: Wire setting up timeout via module parameter/DT

Add support for setting up timeout via kernel module parameter or read
timeout-sec via device tree.

Signed-off-by: Srinivas Goud <srinivas.goud@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Radhey Shyam Pandey <radhey.shyam.pandey@xilinx.com>
5 years agowatchdog: of_xilinx_wdt: Add Versal support
Srinivas Goud [Tue, 9 Apr 2019 14:29:26 +0000 (19:59 +0530)]
watchdog: of_xilinx_wdt: Add Versal support

Versal watchdog driver uses generic watchdog mode.
Generic watchdog contains closed and open window of equal timeout.
Generic watchdog will generate reset signal if it is not explicitly
refreshed in second window.

Signed-off-by: Srinivas Goud <srinivas.goud@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Radhey Shyam Pandey <radhey.shyam.pandey@xilinx.com>
5 years agodt-bindings: watchdog: xilinx: Add binding for Versal watchdog
Srinivas Goud [Tue, 9 Apr 2019 14:29:25 +0000 (19:59 +0530)]
dt-bindings: watchdog: xilinx: Add binding for Versal watchdog

Updated watchdog binding for Versal window watchdog.
Added timeout-sec DT property.
timeout-sec is optional property for Versal window watchdog.

Signed-off-by: Srinivas Goud <srinivas.goud@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Radhey Shyam Pandey <radhey.shyam.pandey@xilinx.com>
5 years agowatchdog: of_xilinx_wdt: Introduce wdttype enum for identification
Srinivas Goud [Tue, 9 Apr 2019 14:29:24 +0000 (19:59 +0530)]
watchdog: of_xilinx_wdt: Introduce wdttype enum for identification

There is a need to identify watchdog type that's why new enum was
was introduced to cover it. Move functionality valid only for this
watchdog type if statement.

Signed-off-by: Srinivas Goud <srinivas.goud@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Radhey Shyam Pandey <radhey.shyam.pandey@xilinx.com>
5 years agowatchdog: of_xilinx_wdt: Initialize watchdog via data structure
Srinivas Goud [Tue, 9 Apr 2019 14:29:23 +0000 (19:59 +0530)]
watchdog: of_xilinx_wdt: Initialize watchdog via data structure

This patch is preparation for adding new watchdog based on this driver.
of_id->data is storing link xwdt_devtype_data which stores watchdog
info and ops pointers to structures.

Signed-off-by: Srinivas Goud <srinivas.goud@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Radhey Shyam Pandey <radhey.shyam.pandey@xilinx.com>
5 years agowatchdog: of_xilinx_wdt: Used dev_dbg()
Srinivas Goud [Tue, 9 Apr 2019 14:29:22 +0000 (19:59 +0530)]
watchdog: of_xilinx_wdt: Used dev_dbg()

This patch removes pr_info in stop function and adds dev_dbg()
in start/stop function to display device specific debug info.

Signed-off-by: Srinivas Goud <srinivas.goud@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Radhey Shyam Pandey <radhey.shyam.pandey@xilinx.com>
5 years agowatchdog: of_xilinx_wdt: Used BIT macro
Srinivas Goud [Tue, 9 Apr 2019 14:29:21 +0000 (19:59 +0530)]
watchdog: of_xilinx_wdt: Used BIT macro

Used BIT macro instead of mask value.

Signed-off-by: Srinivas Goud <srinivas.goud@xilinx.com>
Reviewed-by: Radhey Shyam Pandey <radhey.shyam.pandey@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agowatchdog: of_xilinx_wdt: Add comment to spinlock
Srinivas Goud [Tue, 9 Apr 2019 14:29:20 +0000 (19:59 +0530)]
watchdog: of_xilinx_wdt: Add comment to spinlock

Based on checkpatch every spinlock should be documented.
The patch is fixing this issue:
./scripts/checkpatch.pl --strict -f drivers/watchdog/of_xilinx_wdt.c
CHECK: spinlock_t definition without comment
+ spinlock_t spinlock;

Signed-off-by: Srinivas Goud <srinivas.goud@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Radhey Shyam Pandey <radhey.shyam.pandey@xilinx.com>
5 years agomtd: rawnand: pl353: Allow raw read/write only for on-die ecc flash parts
Naga Sureshkumar Relli [Mon, 8 Apr 2019 13:16:22 +0000 (18:46 +0530)]
mtd: rawnand: pl353: Allow raw read/write only for on-die ecc flash parts

When using HW-ECC, do not assign pl353_read_page_raw() and
pl353_write_page_raw() to ecc->write_page_raw and ecc->read_page_raw
hooks. if we do that read and writes will fail. We came to know this,
when running mtd_nandbiterrs test. This test case uses raw read/writes
when assigned but with hw-ecc, causes failures in data read
and writes.

Signed-off-by: Naga Sureshkumar Relli <naga.sureshkumar.relli@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agoARM: dts: zynq: update smcc properties
Naga Sureshkumar Relli [Mon, 8 Apr 2019 13:16:21 +0000 (18:46 +0530)]
ARM: dts: zynq: update smcc properties

As per the new devicetree documentation, update the compatible and
clock-names properties.
i.e. add "arm,primecell" as another compatibility
and apb_pclk instead of aclk in clock-names.

Signed-off-by: Naga Sureshkumar Relli <naga.sureshkumar.relli@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agouio: xilinx_ai_engine: Enable platform genirq driver
Hyun Kwon [Thu, 4 Apr 2019 17:03:35 +0000 (10:03 -0700)]
uio: xilinx_ai_engine: Enable platform genirq driver

The NPI can be modeled with the platform genirq driver. Enable
the driver as a part of it. This will require the dts node
for the NPI space.

Signed-off-by: Hyun Kwon <hyun.kwon@xilinx.com>
Reviewed-by: Wendy Liang <wendy.liang@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agodt-bindings: soc: xilinx: ai-engine-npi: Add the binding for AIE NPI
Hyun Kwon [Thu, 4 Apr 2019 17:03:34 +0000 (10:03 -0700)]
dt-bindings: soc: xilinx: ai-engine-npi: Add the binding for AIE NPI

This is the binding for AIE NPI space. This is a temporary or
non-standard way by representing privileged NPI space as a device
to non-secure world.

Signed-off-by: Hyun Kwon <hyun.kwon@xilinx.com>
Reviewed-by: Wendy Liang <wendy.liang@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agouio: xilinx_ai_engine: Simulate the irq if no hw irq is available
Hyun Kwon [Thu, 4 Apr 2019 17:03:33 +0000 (10:03 -0700)]
uio: xilinx_ai_engine: Simulate the irq if no hw irq is available

Only when there's no hw irq available and the debugfs is enabled,
simulate the irq. This allows users to trigger the interrupt through
debugfs and helps debug, as some emulation platforms don't even
have the NPI interrupt connected.

Signed-off-by: Hyun Kwon <hyun.kwon@xilinx.com>
Reviewed-by: Wendy Liang <wendy.liang@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agouio: xilinx_ai_engine: Enable the irq
Hyun Kwon [Thu, 4 Apr 2019 17:03:32 +0000 (10:03 -0700)]
uio: xilinx_ai_engine: Enable the irq

Pass the irq info from dt to the uio genirq. For now, only enable
one interrupt, but there's can be up to 3 interrupts assigned.

Signed-off-by: Hyun Kwon <hyun.kwon@xilinx.com>
Reviewed-by: Wendy Liang <wendy.liang@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agodt-bindings: soc: xilinx: ai_engine: Add interrupts
Hyun Kwon [Thu, 4 Apr 2019 17:03:31 +0000 (10:03 -0700)]
dt-bindings: soc: xilinx: ai_engine: Add interrupts

Add the interrupts definition.

Signed-off-by: Hyun Kwon <hyun.kwon@xilinx.com>
Reviewed-by: Wendy Liang <wendy.liang@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agouio: xilinx_ai_engine: Unreference correct pdev
Hyun Kwon [Thu, 4 Apr 2019 17:03:30 +0000 (10:03 -0700)]
uio: xilinx_ai_engine: Unreference correct pdev

The correct device should be unreferenced.

Signed-off-by: Hyun Kwon <hyun.kwon@xilinx.com>
Reviewed-by: Wendy Liang <wendy.liang@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agouio: xilinx_ai_engine: Set the uio device as pdev driver data
Hyun Kwon [Thu, 4 Apr 2019 17:03:29 +0000 (10:03 -0700)]
uio: xilinx_ai_engine: Set the uio device as pdev driver data

It's needed when the driver is removed.

Signed-off-by: Hyun Kwon <hyun.kwon@xilinx.com>
Reviewed-by: Wendy Liang <wendy.liang@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agov4l: xilinx: scd: Don't mark channel as disabled in .s_stream(0)
Laurent Pinchart [Wed, 3 Apr 2019 20:01:59 +0000 (13:01 -0700)]
v4l: xilinx: scd: Don't mark channel as disabled in .s_stream(0)

Commit 2e77607047c6 ("xilinx: v4l2: dma: Add multiple output support")
incorrectly calls .s_stream(0) on all channels when one of them gets
disabled, causing all the other channels to hang. Work around this by
not disabling the channel in .s_stream(0). The channel will be disabled
in xscd_dma_terminate_all() which should be safe as long as
dmaengine_terminate_all() is called after xvip_pipeline_set_stream().

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Hyun Kwon <hyun.kwon@xilinx.com>
5 years agov4l: xilinx: scd: Rewrite core start/stop and interrupt handling
Laurent Pinchart [Wed, 3 Apr 2019 20:01:58 +0000 (13:01 -0700)]
v4l: xilinx: scd: Rewrite core start/stop and interrupt handling

The current mechanism to control start/stop of the SCD core and notify
userspace of V4L2 events is racy. Rewrite it.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Satish Kumar Nagireddy <satish.nagireddy.nagireddy@xilinx.com>
Reviewed-by: Hyun Kwon <hyun.kwon@xilinx.com>
5 years agov4l: xilinx: scd: Cleanup the xscd_dma_chan structure
Laurent Pinchart [Wed, 3 Apr 2019 20:01:57 +0000 (13:01 -0700)]
v4l: xilinx: scd: Cleanup the xscd_dma_chan structure

Cleanup the xscd_dma_chan structure by

- Reordering fields to group them by category
- Renaming the en field to enabled
- Removing the unused chan_node field
- Turning the id field from u8 to unsigned int

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Satish Kumar Nagireddy <satish.nagireddy.nagireddy@xilinx.com>
Reviewed-by: Hyun Kwon <hyun.kwon@xilinx.com>
5 years agov4l: xilinx: scd: Clean up #include statements
Laurent Pinchart [Wed, 3 Apr 2019 20:01:56 +0000 (13:01 -0700)]
v4l: xilinx: scd: Clean up #include statements

xilinx-scenechange.h contains various #include statements not needed by
the header itself but by the multiple .c files that include it. Move
them to the .c files and remove unneeded includes.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Hyun Kwon <hyun.kwon@xilinx.com>
5 years agov4l: xilinx: scd: Inline the xscd_dma_alloc_tx_descriptor() function
Laurent Pinchart [Wed, 3 Apr 2019 20:01:55 +0000 (13:01 -0700)]
v4l: xilinx: scd: Inline the xscd_dma_alloc_tx_descriptor() function

The function performs a single kzalloc() call, inline it in its caller
to simplify the code.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Hyun Kwon <hyun.kwon@xilinx.com>
5 years agov4l: xilinx: scd: Allocate all channels in one go
Laurent Pinchart [Wed, 3 Apr 2019 20:01:54 +0000 (13:01 -0700)]
v4l: xilinx: scd: Allocate all channels in one go

This eases memory management and channels initialization, we don't have
to iterate over subnodes anymore.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Satish Kumar Nagireddy <satish.nagireddy.nagireddy@xilinx.com>
Reviewed-by: Hyun Kwon <hyun.kwon@xilinx.com>
5 years agov4l: xilinx: scd: Initialize DMA channels in xilinx-scenechange-dma.c
Laurent Pinchart [Wed, 3 Apr 2019 20:01:53 +0000 (13:01 -0700)]
v4l: xilinx: scd: Initialize DMA channels in xilinx-scenechange-dma.c

Most of the DMA channel initialization is performed in
xilinx-scenechange-dma.c, but a small part is in
xilinx-scenechange-channel.c. Move all the initialization code to
xilinx-scenechange-dma.c, rename the xscd_dma_chan_probe() function to
xscd_dma_chan_init(), and simplify the code as the function can't fail.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Hyun Kwon <hyun.kwon@xilinx.com>
5 years agov4l: xilinx: scd: Request IRQ after completing initialization
Laurent Pinchart [Wed, 3 Apr 2019 20:01:52 +0000 (13:01 -0700)]
v4l: xilinx: scd: Request IRQ after completing initialization

IRQs can be triggered as soon as they're requested. To ensure a valid
state in the IRQ handler, make sure to request the IRQ after
initializing all components.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Satish Kumar Nagireddy <satish.nagireddy.nagireddy@xilinx.com>
Reviewed-by: Hyun Kwon <hyun.kwon@xilinx.com>
5 years agov4l: xilinx: scd: Store channel registers address in iomem field
Laurent Pinchart [Wed, 3 Apr 2019 20:01:51 +0000 (13:01 -0700)]
v4l: xilinx: scd: Store channel registers address in iomem field

Store the channel registers address instead of the base offset in the
iomem field of the channel structures. This allows accessing the channel
registers without having to compute the offset each time.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Satish Kumar Nagireddy <satish.nagireddy.nagireddy@xilinx.com>
Reviewed-by: Hyun Kwon <hyun.kwon@xilinx.com>
5 years agov4l: xilinx: scd: Allocate pads array statically
Laurent Pinchart [Wed, 3 Apr 2019 20:01:50 +0000 (13:01 -0700)]
v4l: xilinx: scd: Allocate pads array statically

Allocating the pads array dynamically doesn't save much memory, if at
all, due to the extra data needed to track the devm allocation, compared
to embedding an array of two pads in the xscd_device structure. Replace
the dynamic allocation.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Hyun Kwon <hyun.kwon@xilinx.com>
5 years agov4l: xilinx: scd: Refactor the xscd_device structure
Laurent Pinchart [Wed, 3 Apr 2019 20:01:49 +0000 (13:01 -0700)]
v4l: xilinx: scd: Refactor the xscd_device structure

Reorder fields to group them by category (system resources,
configuration V4L2 channels, DMA channels), squash the xscd_shared_data
structure with xscd_device and remove duplicated fields.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Satish Kumar Nagireddy <satish.nagireddy.nagireddy@xilinx.com>
Reviewed-by: Hyun Kwon <hyun.kwon@xilinx.com>
5 years agov4l: xilinx: scd: Compile all SCD source files in a single module
Laurent Pinchart [Wed, 3 Apr 2019 20:01:48 +0000 (13:01 -0700)]
v4l: xilinx: scd: Compile all SCD source files in a single module

The files xilinx-scenechange.c, xilinx-scenechange-dma.c and
xilinx-scenechange-channel.c are part of the same driver. Compile them
as a single module.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Hyun Kwon <hyun.kwon@xilinx.com>
5 years agov4l: xilinx: scd: Merge the main and DMA IRQ handlers
Laurent Pinchart [Wed, 3 Apr 2019 20:01:47 +0000 (13:01 -0700)]
v4l: xilinx: scd: Merge the main and DMA IRQ handlers

Both the main SCD driver and the DMA support code register an IRQ
handler, for the same IRQ. This is unnecessary, we can just call the DMA
IRQ handling function from the main IRQ handler.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Hyun Kwon <hyun.kwon@xilinx.com>
5 years agov4l: xilinx: scd: Cleanup the DMA engine at remove() time
Laurent Pinchart [Thu, 4 Apr 2019 11:32:54 +0000 (14:32 +0300)]
v4l: xilinx: scd: Cleanup the DMA engine at remove() time

The resources allocated by the xscd_dma_init() function are never
released. Add a new xscd_dma_cleanup() function to handle the cleanup
and call it at driver remove() time.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Hyun Kwon <hyun.kwon@xilinx.com>
5 years agov4l: xilinx: scd: Merge the DMA support in the main SCD driver
Laurent Pinchart [Wed, 3 Apr 2019 20:01:46 +0000 (13:01 -0700)]
v4l: xilinx: scd: Merge the DMA support in the main SCD driver

There's no need to create a separate platform_driver and platform_device
for the DMA support. Merge the xscd_dma_device structure into the
xscd_device. This allows removing duplicating fields, as well as
unneeded code.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Satish Kumar Nagireddy <satish.nagireddy.nagireddy@xilinx.com>
Reviewed-by: Hyun Kwon <hyun.kwon@xilinx.com>
5 years agov4l: xilinx: scd: Merge the main and V4L2 IRQ handlers
Laurent Pinchart [Wed, 3 Apr 2019 20:01:45 +0000 (13:01 -0700)]
v4l: xilinx: scd: Merge the main and V4L2 IRQ handlers

Both the main SCD driver and the V4L2 support code register an IRQ
handler, for the same IRQ. This is unnecessary, we can just call the
V4L2 IRQ handling function from the main IRQ handler.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Satish Kumar Nagireddy <satish.nagireddy.nagireddy@xilinx.com>
Reviewed-by: Hyun Kwon <hyun.kwon@xilinx.com>
5 years agov4l: xilinx: scd: Merge the V4L2 support in the main SCD driver
Laurent Pinchart [Wed, 3 Apr 2019 20:01:44 +0000 (13:01 -0700)]
v4l: xilinx: scd: Merge the V4L2 support in the main SCD driver

There's no need to create a separate platform_driver and platform_device
for the V4L2 support. Call the xilinx-scenechange-channel initialization
function directly from the main driver. This allows removing duplicating
fields, as well as unneeded code.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Satish Kumar Nagireddy <satish.nagireddy.nagireddy@xilinx.com>
Reviewed-by: Hyun Kwon <hyun.kwon@xilinx.com>
5 years agov4l: xilinx: scd: Reorder structure definitions
Laurent Pinchart [Wed, 3 Apr 2019 20:01:43 +0000 (13:01 -0700)]
v4l: xilinx: scd: Reorder structure definitions

This will make it easier to refactor them.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Satish Kumar Nagireddy <satish.nagireddy.nagireddy@xilinx.com>
Reviewed-by: Hyun Kwon <hyun.kwon@xilinx.com>
5 years agov4l: xilinx: scd: Make local functions static
Laurent Pinchart [Wed, 3 Apr 2019 20:01:42 +0000 (13:01 -0700)]
v4l: xilinx: scd: Make local functions static

Several of the xscd_dma_* functions are only used in their compilation
unit. Make them static and remove their declaration from the common
header.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Hyun Kwon <hyun.kwon@xilinx.com>
5 years agov4l: xilinx: scd: Consolidate structure definitions
Laurent Pinchart [Wed, 3 Apr 2019 20:01:41 +0000 (13:01 -0700)]
v4l: xilinx: scd: Consolidate structure definitions

Move all driver data structures to the xilinx-scenechange.h header. Turn
the cast macros into static inline function and rename them all to
to_<struct name> for consistency.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Satish Kumar Nagireddy <satish.nagireddy.nagireddy@xilinx.com>
Reviewed-by: Hyun Kwon <hyun.kwon@xilinx.com>
5 years agov4l: xilinx: scd: Consolidate register definitions
Laurent Pinchart [Wed, 3 Apr 2019 20:01:40 +0000 (13:01 -0700)]
v4l: xilinx: scd: Consolidate register definitions

Move all macros defining register offsets and bits to the
xilinx-scenechange.h header, shared between the three source files that
deal with the SCD.

Rename the XSCD_COLOR_FMT_* macros to XSCD_VID_FMT_*, in order to match
the correspongin register name.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Satish Kumar Nagireddy <satish.nagireddy.nagireddy@xilinx.com>
Reviewed-by: Hyun Kwon <hyun.kwon@xilinx.com>
5 years agov4l: xilinx: vipp: Support entity matching on DT subnodes
Laurent Pinchart [Wed, 3 Apr 2019 20:01:39 +0000 (13:01 -0700)]
v4l: xilinx: vipp: Support entity matching on DT subnodes

When the video IP pipeline is parsed in DT, the composite device stores
all entities found in the graph, along with their corresponding DT node.
Later on the DT nodes pointers are used to locate the corresponding V4L2
subdevs by matching them against subdev->dev->of_node.

This mechanism works fine for devices that register a single subdev. For
devices that register multiple subdevs, subdev->dev->of_node points to
the DT node of the device, while the entities parsed from the pipeline
point to child nodes of the device DT node.

The v4l2_subdev structure has a fwnode field that is set to point to the
fwnode corresponding to the device DT node. Drivers that register
multiple subdevs must set the fwnode field manually to the associated
child node of the device DT node. We can thus fix this issue by locating
V4L2 subdevs for an entity based on the subdev fwnode instead of the
dev->of_node.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Hyun Kwon <hyun.kwon@xilinx.com>
5 years agofpga: zynqmp-fpga: Fix broken secure bitstream loading use cases
Nava kishore Manne [Wed, 3 Apr 2019 08:01:11 +0000 (13:31 +0530)]
fpga: zynqmp-fpga: Fix broken secure bitstream loading use cases

Device-tree overlay flow the below secure use cases got
broken with 4.19
-Encrypted Bitstream loading
-Authenticated Bitstream loading.
-Authenticated and Encrypted Bitstream loading.

Signed-off-by: Nava kishore Manne <nava.manne@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agoASoC: xlnx: change HDMI audio mclk
Maruthi Srinivas Bayyavarapu [Mon, 1 Apr 2019 17:50:07 +0000 (10:50 -0700)]
ASoC: xlnx: change HDMI audio mclk

audio mclk depends on the ACR IP being used. Multiplier value is changed
in updated version of ACR IP. Updated the same in driver.

Signed-off-by: Maruthi Srinivas Bayyavarapu <maruthi.srinivas.bayyavarapu@xilinx.com>
Reviewed-by: Hyun Kwon <hyun.kwon@xilinx.com>
5 years agov4l: xilinx: sdirxss: Fix the media bus formats to 10bpc type
Vishal Sagar [Tue, 2 Apr 2019 10:13:08 +0000 (03:13 -0700)]
v4l: xilinx: sdirxss: Fix the media bus formats to 10bpc type

With commit id 563e888fca45a978e4c29b2f5ec5a8a95af60e68, xyavta now
fails to start stream as the media bus format requested is
MEDIA_BUS_FMT_UYVY10_1x20 but the SDI Rx subdev returned media bus
format is MEDIA_BUS_FMT_UYVY8_1x16.

Fix this by updating the driver for correct media bus formats for YUV
422 and 420 10bpc i.e. MEDIA_BUS_FMT_UYVY10_1X20 and
MEDIA_BUS_FMT_VYYUYY10_4X20.

Signed-off-by: Vishal Sagar <vishal.sagar@xilinx.com>
Reviewed-by: Hyun Kwon <hyun.kwon@xilinx.com>
5 years agodt-bindings: power: Add versal power domain bindings
Rajan Vaja [Tue, 2 Apr 2019 17:12:50 +0000 (10:12 -0700)]
dt-bindings: power: Add versal power domain bindings

Define Versal power domain value macros for RTC and ADMA.

Signed-off-by: Rajan Vaja <rajan.vaja@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agov4l: xilinx: tpg: Dynamically modify TPG output format
Vishal Sagar [Fri, 29 Mar 2019 06:23:20 +0000 (23:23 -0700)]
v4l: xilinx: tpg: Dynamically modify TPG output format

The TPG output format was fixed based on the device tree. This patch now
allows the TPG output format to be configured at runtime. This is valid
only for the HLS version of TPG.

Signed-off-by: Vishal Sagar <vishal.sagar@xilinx.com>
Tested-by: Rohan Dhaval Parikh <rohanp@xilinx.com>
Reviewed-by: Hyun Kwon <hyun.kwon@xilinx.com>
5 years agousb: dwc3: Coding style syncs with mainline
Anurag Kumar Vulisha [Wed, 3 Apr 2019 08:00:42 +0000 (08:00 +0000)]
usb: dwc3: Coding style syncs with mainline

The patch fixes trivial code changes in the dwc3 driver done in
mainline.

Signed-off-by: Anurag Kumar Vulisha <anurag.kumar.vulisha@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agoreset: reset-zynqmp: Defer probe if firmware is not ready
Michal Simek [Mon, 1 Apr 2019 10:33:48 +0000 (12:33 +0200)]
reset: reset-zynqmp: Defer probe if firmware is not ready

This patch is the part of mainline patch:
"drivers: Defer probe if firmware is not ready"
https://lkml.org/lkml/2019/3/4/1027

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agoRevert "spi: Increase the spi time out"
Michal Simek [Mon, 1 Apr 2019 10:38:01 +0000 (12:38 +0200)]
Revert "spi: Increase the spi time out"

This reverts commit 4b988333b9f18aa128b8441dcc02c889c8f123fc.
This patch is not needed for regular platforms what's why revert it.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agodt-bindings: remoteproc: zynqmp-r5: correct dts example
Wendy Liang [Fri, 29 Mar 2019 16:45:29 +0000 (09:45 -0700)]
dt-bindings: remoteproc: zynqmp-r5: correct dts example

* Correct ZynqMP r5 remoteproc device node example bindings to
remove the old sram, power domain nodes, and add new reserved memory
nodes.
* Fix the remoteproc device node compatible string to match the driver
* Use the mailbox to match the OpenAMP usecase

Signed-off-by: Wendy Liang <wendy.liang@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agoarm64: config: Sync location of XILINX_AFI_FPGA in defconfig
Michal Simek [Sun, 31 Mar 2019 07:57:21 +0000 (09:57 +0200)]
arm64: config: Sync location of XILINX_AFI_FPGA in defconfig

Trivial patch.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agoreset: zynqmp: Removed ZYNQMP_RESET_CONTROLLER config entry
Sai Krishna Potthuri [Sat, 30 Mar 2019 18:16:32 +0000 (23:46 +0530)]
reset: zynqmp: Removed ZYNQMP_RESET_CONTROLLER config entry

This patch removes config entry for ZYNQMP_RESET_CONTROLLER since
below commit updates makefile to build zynqmp reset driver for
ZYNQMP platform.

'19325a233ba7 ("reset: reset-zynqmp: Makefile update")'

Signed-off-by: Sai Krishna Potthuri <lakshmi.sai.krishna.potthuri@xilinx.com>
Reviewed-by: Radhey Shyam Pandey <radhey.shyam.pandey@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agoarm64: config: Removed CONFIG_ZYNQMP_RESET_CONTROLLER entry
Sai Krishna Potthuri [Sat, 30 Mar 2019 18:16:33 +0000 (23:46 +0530)]
arm64: config: Removed CONFIG_ZYNQMP_RESET_CONTROLLER entry

This patch removes CONFIG_ZYNQMP_RESET_CONTROLLER entry from
xilinx_zynqmp_defconfig file since zynqmp reset driver will
build for ZYNQMP platform by default.

Signed-off-by: Sai Krishna Potthuri <lakshmi.sai.krishna.potthuri@xilinx.com>
Reviewed-by: Radhey Shyam Pandey <radhey.shyam.pandey@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agoreset: reset-zynqmp: Removed license text
Sai Krishna Potthuri [Sat, 30 Mar 2019 18:16:31 +0000 (23:46 +0530)]
reset: reset-zynqmp: Removed license text

This patch removes license text and sync year with mainline.

Signed-off-by: Sai Krishna Potthuri <lakshmi.sai.krishna.potthuri@xilinx.com>
Reviewed-by: Radhey Shyam Pandey <radhey.shyam.pandey@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agonet: xilinx: axiethernet: Fix crash in ifconfig down
Radhey Shyam Pandey [Fri, 29 Mar 2019 12:07:41 +0000 (17:37 +0530)]
net: xilinx: axiethernet: Fix crash in ifconfig down

In axidma(allow un-aligned transfers) designs, axienet_dma_q structure
tx_bufs pointer is not explicitly initialized to NULL so freeing it in
.ndo_stop may result in a kernel crash. To fix it allocate axienet_dma_q
structure memory using kzalloc. This fixes below crash in vcu118 design.

root@xilinx-vcu118-2019_1:~# ifconfig eth0 down
Oops: kernel access of bad area, sig: 11
CPU: 0 PID: 390 Comm: ifconfig Not tainted 4.19.0 #47
 Registers dump: mode=AEBEBBD0
 r1=00000001, r2=00000000, r3=00000694, r4=00000000
 r5=C05A1000, r6=00400000, r7=5A5A5A5A, r8=5A5A5A5A
 r9=00000000, r10=C05BE118, r11=00000000, r12=00000040
 r13=00000000, r14=C008F920, r15=C030A178, r16=00000000
 r17=C0006A88, r18=FFFFFFCF, r19=5A5A5A5A, r20=48296FF4
 r21=48115B20, r22=5A9A5A5A, r23=EE84120C, r24=EE84120C
 r25=00000001, r26=00000000, r27=EE9B8900, r28=EEB11000
 r29=00000000, r30=00000001, r31=EEB7F800, rPC=C0006A88
 msr=800046A6, ear=00000694, esr=000008B2, fsr=00000000
Segmentation fault

Signed-off-by: Radhey Shyam Pandey <radhey.shyam.pandey@xilinx.com>
Acked-by: Appana Durga Kedareswara rao <appana.durga.rao@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agogpio: zynq: Disable the irq if it is not a wakeup source
Shubhrajyoti Datta [Fri, 29 Mar 2019 06:34:46 +0000 (12:04 +0530)]
gpio: zynq: Disable the irq if it is not a wakeup source

If gpio is not set to wake disable the interrupt. ATF set all slaves with
enabled interrupts as wakeup sources and if gpio is used in r5 then it
wakes up linux.

Signed-off-by: Shubhrajyoti Datta <shubhrajyoti.datta@xilinx.com>
Reviewed-by: Radhey Shyam Pandey <radhey.shyam.pandey@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agonet: can: xilinx_can: Fix the data updation logic for CANFD FD frames
Appana Durga Kedareswara rao [Sat, 30 Mar 2019 08:20:11 +0000 (13:50 +0530)]
net: can: xilinx_can: Fix the data updation logic for CANFD FD frames

commit fc8c67368936 ("net: can: xilinx_can: Add support for CANFD
 FD frames") is writing data to a wrong offset for FD frames.

This patch fixes this issue.

Reviewed-by: Radhey Shyam Pandey <radhey.shyam.pandey@xilinx.com>
Reviewed-by: Shubhrajyoti Datta <Shubhrajyoti.datta@xilinx.com>
Signed-off-by: Appana Durga Kedareswara rao <appana.durga.rao@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agonet: can: xilinx_can: Fix FSR register handling in the rx path
Appana Durga Kedareswara rao [Sat, 30 Mar 2019 08:20:10 +0000 (13:50 +0530)]
net: can: xilinx_can: Fix FSR register handling in the rx path

After commit fc8c67368936 ("net: can: xilinx_can: Add support for
 CANFD FD frames") driver is updating the FSR IRI index multiple
times(i.e in xcanfd_rx() and xcan_rx_fifo_get_next_frame()),
It should be updated once per rx packet this patch fixes this issue,
also this patch removes the unnecessary fsr register checks in
xcanfd_rx() API.

Reviewed-by: Radhey Shyam Pandey <radhey.shyam.pandey@xilinx.com>
Reviewed-by: Shubhrajyoti Datta <Shubhrajyoti.datta@xilinx.com>
Signed-off-by: Appana Durga Kedareswara rao <appana.durga.rao@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agodrm: xlnx: zynqmp_disp: Skip the modeset for same fb
Hyun Kwon [Fri, 29 Mar 2019 05:22:00 +0000 (22:22 -0700)]
drm: xlnx: zynqmp_disp: Skip the modeset for same fb

Since the async update creates a separate atomic mode set, there can be
back to back atomic modeset with same fb. If the mode set is applied
twice, it ends up submitting 2 dma transactions, and it results in
jitter. This fixes it by adding the check in plane atomic update,
and using plane mode set in async update.

Signed-off-by: Hyun Kwon <hyun.kwon@xilinx.com>
Tested-by: Preetesh Parekh <preetesh.parekh@xilinx.com>
5 years agov4l: xilinx: m2m: Use crop parameters set on output port
Satish Kumar Nagireddy [Thu, 28 Mar 2019 23:29:50 +0000 (16:29 -0700)]
v4l: xilinx: m2m: Use crop parameters set on output port

This patch uses the crop rectangle parameters set on output port,
and prepare the dma descriptor accordingly.

Signed-off-by: Satish Kumar Nagireddy <satish.nagireddy.nagireddy@xilinx.com>
Reviewed-by: Hyun Kwon <hyun.kwon@xilinx.com>
5 years agov4l: xilinx: m2m: Add S_SELECTION and G_SELECTION ioctls
Satish Kumar Nagireddy [Thu, 28 Mar 2019 23:29:49 +0000 (16:29 -0700)]
v4l: xilinx: m2m: Add S_SELECTION and G_SELECTION ioctls

This patch implements S_SELECTION and G_SELECTION ioctls in driver. This
enables applications to pass crop rectangle parameters to driver.

Signed-off-by: Satish Kumar Nagireddy <satish.nagireddy.nagireddy@xilinx.com>
Reviewed-by: Hyun Kwon <hyun.kwon@xilinx.com>
5 years agov4l: xilinx: scd: Use correct threshold value
Satish Kumar Nagireddy [Thu, 28 Mar 2019 01:03:31 +0000 (18:03 -0700)]
v4l: xilinx: scd: Use correct threshold value

The driver is using threshold value as 1 and it is 0.5 according to the
specification. This patch uses the right threshold value.

Reference (page 21):
https://www.xilinx.com/support/documentation/ip_documentation/v_scenechange/v1_0/pg322-v-scenechange-detect.pdf

Signed-off-by: Satish Kumar Nagireddy <satish.nagireddy.nagireddy@xilinx.com>
Reviewed-by: Hyun Kwon <hyun.kwon@xilinx.com>
5 years agoclk: zynqmp: Warn user if clock user are more than allowed
Rajan Vaja [Fri, 29 Mar 2019 05:46:49 +0000 (22:46 -0700)]
clk: zynqmp: Warn user if clock user are more than allowed

Warn user if clock is used by more than allowed devices.
This check is done by firmware and returns respective
error code. Upon receiving error code for excessive user,
warn user for the same.

This change is done to restrict VPLL use count. It is
assumed that VPLL is used by one user only.

Signed-off-by: Rajan Vaja <rajan.vaja@xilinx.com>
Reviewed-by: Shubhrajyoti Datta <shubhrajyoti.datta@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agomtd: devices: m25p80: sync driver with mainline v4.19
Naga Sureshkumar Relli [Fri, 29 Mar 2019 09:15:14 +0000 (14:45 +0530)]
mtd: devices: m25p80: sync driver with mainline v4.19

This patch syncs the driver with mainline 4.19 m25p80.c.
Below is the commit from mainline
9882b53 mtd: m25p80: Use SPI_MEM_OP_NO_DUMMY instead of
     SPI_MEM_OP_DUMMY(0, x)

Signed-off-by: Naga Sureshkumar Relli <naga.sureshkumar.relli@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agostaging: fclk: Add sysfs entry for set_rate
Shubhrajyoti Datta [Tue, 12 Mar 2019 09:32:12 +0000 (15:02 +0530)]
staging: fclk: Add sysfs entry for set_rate

This is a temporary hack for setting the rate.

Signed-off-by: Shubhrajyoti Datta <shubhrajyoti.datta@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agoreset: reset-zynqmp: License fix and copyright update
Sai Krishna Potthuri [Fri, 29 Mar 2019 08:30:38 +0000 (14:00 +0530)]
reset: reset-zynqmp: License fix and copyright update

This patch updates the copyright year and license fix for
zynqmp reset driver.

Signed-off-by: Sai Krishna Potthuri <lakshmi.sai.krishna.potthuri@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agoreset: reset-zynqmp: Makefile update
Sai Krishna Potthuri [Fri, 29 Mar 2019 08:30:37 +0000 (14:00 +0530)]
reset: reset-zynqmp: Makefile update

This patch updates makefile to build zynqmp reset driver for
ZYNQMP platform irrespective of reset driver selection.

62f0d7d reset: reset-zynqmp: Adding support for Xilinx zynqmp reset controller.

Signed-off-by: Sai Krishna Potthuri <lakshmi.sai.krishna.potthuri@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agoreset: reset-zynqmp: Move eemi_ops inside zynqmp_reset_data struct
Sai Krishna Potthuri [Fri, 29 Mar 2019 08:30:36 +0000 (14:00 +0530)]
reset: reset-zynqmp: Move eemi_ops inside zynqmp_reset_data struct

This patch move eemi_ops into priv struct zynqmp_reset_data.
Updated all the functions to get the priv struct and use the eemi_ops
structure present inside priv struct.

62f0d7d reset: reset-zynqmp: Adding support for Xilinx zynqmp reset controller.

Signed-off-by: Sai Krishna Potthuri <lakshmi.sai.krishna.potthuri@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agoreset: reset-zynqmp: Sync Reset Id macro with Mainline
Sai Krishna Potthuri [Fri, 29 Mar 2019 08:30:35 +0000 (14:00 +0530)]
reset: reset-zynqmp: Sync Reset Id macro with Mainline

Reset Start and End Macro values are updated as part of below
commit Id.
bc3843d firmware: xilinx: Add reset API's
Hence updated the driver in using the start and end macro values.

Signed-off-by: Sai Krishna Potthuri <lakshmi.sai.krishna.potthuri@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agoserial: uartlite: fix null dereference on probe error path
Alexandru Ardelean [Thu, 28 Mar 2019 12:25:36 +0000 (14:25 +0200)]
serial: uartlite: fix null dereference on probe error path

The `pdata->ulite_uart_driver` is assigned last in the probe function. So,
when un-registering the serial device on the error path this causes a
null dereference and a crash.

This fixes that by passing the initialized `ulite_uart_driver` pointer.

Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agoclk: zynqmp: Fix divider calculation
Rajan Vaja [Thu, 28 Mar 2019 13:05:56 +0000 (06:05 -0700)]
clk: zynqmp: Fix divider calculation

Linux doesn't know maximum value of divisor that it can support.
zynqmp_clk_divider_round_rate() returns actual divider value
after calculating from parent rate and desired rate, even though
that rate is not supported by single divider of hardware. It is
also possible that such divisor value can be achieved through 2
different dividers. As, Linux tries to set such divisor value(out
of range) in single divider set divider is getting failed.

Fix the same by computing best possible combination of two
divisors which provides more accurate clock rate.

Signed-off-by: Rajan Vaja <rajan.vaja@xilinx.com>
Reviewed-by: Shubhrajyoti Datta <Shubhrajyoti.datta@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agofpga: versal-fpga: Add versal fpga manager driver
Appana Durga Kedareswara rao [Tue, 26 Mar 2019 09:36:55 +0000 (15:06 +0530)]
fpga: versal-fpga: Add versal fpga manager driver

This patch adds driver for versal fpga manager.

Signed-off-by: Appana Durga Kedareswara rao <appana.durga.rao@xilinx.com>
Reviewed-by: Radhey Shyam Pandey <radhey.shyam.pandey@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agodt-bindings: fpga: Add binding doc for versal fpga manager
Appana Durga Kedareswara rao [Tue, 26 Mar 2019 09:36:54 +0000 (15:06 +0530)]
dt-bindings: fpga: Add binding doc for versal fpga manager

This patch adds binding doc for versal fpga manager driver.

Signed-off-by: Appana Durga Kedareswara rao <appana.durga.rao@xilinx.com>
Reviewed-by: Radhey Shyam Pandey <radhey.shyam.pandey@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agofpga: fpga-mgr: Add debugfs entry for loading fpga image from user space
Appana Durga Kedareswara rao [Tue, 26 Mar 2019 09:36:53 +0000 (15:06 +0530)]
fpga: fpga-mgr: Add debugfs entry for loading fpga image from user space

This patch adds an debugfs entry to load fpga image from user
provided address pointer and size.

--> Usage:
   debugfs_fd = open("/sys/kernel/debug/fpga/fpga0/load", O_WRONLY);
   write(debugfs_fd, Image_pointer, Image_size);

(OR)

   dd bs=26M if=/mnt/top.bin of=/sys/kernel/debug/fpga/fpga0/load

Signed-off-by: Appana Durga Kedareswara rao <appana.durga.rao@xilinx.com>
Reviewed-by: Radhey Shyam Pandey <radhey.shyam.pandey@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agodrivers: firmware: Add Pdi load API support
Jolly Shah [Fri, 22 Mar 2019 14:21:35 +0000 (07:21 -0700)]
drivers: firmware: Add Pdi load API support

This patch adds load pdi api support to enable pdi/partial loading from
linux. Programmable Device Image (PDI) is combination of headers, images
and bitstream files to be loaded. Partial PDI is partial set of image/
images to be loaded.

Signed-off-by: Jolly Shah <jolly.shah@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agozynqmp-secure: Fix for crash seen with secure image loading
Kalyani Akula [Wed, 27 Mar 2019 07:38:11 +0000 (13:08 +0530)]
zynqmp-secure: Fix for crash seen with secure image loading

This patch resolves the crash/backtrace seen with secure load.
arch_setup_dma_ops is not setting coherent mask due to which
we see a warning (added recently in dma_mapping.h) and backtrace
along with it.

So, instead of using arch_setup_dma_ops we used of_dma_configure.

Signed-off-by: Kalyani Akula <kalyani.akula@xilinx.com>
Reviewed-by: Radhey Shyam Pandey <radhey.shyam.pandey@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agofirmware: zynqmp-secure: Correct error handling for secure_load
Kalyani Akula [Wed, 27 Mar 2019 07:38:10 +0000 (13:08 +0530)]
firmware: zynqmp-secure: Correct error handling for secure_load

This patch modifies the secure_load call according to the new
prototype in zynqmp.c

Signed-off-by: Kalyani Akula <kalyani.akula@xilinx.com>
Reviewed-by: Radhey Shyam Pandey <radhey.shyam.pandey@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agofirmware: zynqmp: Modify zynqmp_pm_secure_load to return only dst.
Kalyani Akula [Wed, 27 Mar 2019 07:38:09 +0000 (13:08 +0530)]
firmware: zynqmp: Modify zynqmp_pm_secure_load to return only dst.

This extra parameter added earlier to know proper error code
from the SMC, but earlier change broken backward compatibility.
So, handling the same in PMU by displaying proper error code
using PmErr.

Signed-off-by: Kalyani Akula <kalyani.akula@xilinx.com>
Reviewed-by: Radhey Shyam Pandey <radhey.shyam.pandey@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agommc: core: use mrq->sbc when sending CMD23 for RPMB
Wolfram Sang [Thu, 28 Mar 2019 12:35:08 +0000 (18:05 +0530)]
mmc: core: use mrq->sbc when sending CMD23 for RPMB

When sending out CMD23 in the blk preparation, the comment there
rightfully says:

 * However, it is not sufficient to just send CMD23,
 * and avoid the final CMD12, as on an error condition
 * CMD12 (stop) needs to be sent anyway. This, coupled
 * with Auto-CMD23 enhancements provided by some
 * hosts, means that the complexity of dealing
 * with this is best left to the host. If CMD23 is
 * supported by card and host, we'll fill sbc in and let
 * the host deal with handling it correctly.

Let's do this behaviour for RPMB as well, and not send CMD23
independently. Otherwise IP cores (like Renesas SDHI) may timeout
because of automatic CMD23/CMD12 handling.

Reported-by: Masaharu Hayakawa <masaharu.hayakawa.ry@renesas.com>
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Tested-by: Clément Péron <peron.clem@gmail.com>
Reviewed-by: Avri Altman <avri.altman@wdc.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Cc: stable@vger.kernel.org
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
5 years agoMAINTAINERS: Added fragment for xilinx axi spi driver
Sai Krishna Potthuri [Wed, 27 Mar 2019 09:25:04 +0000 (14:55 +0530)]
MAINTAINERS: Added fragment for xilinx axi spi driver

Added fragment for xilinx AXI SPI driver.

Signed-off-by: Sai Krishna Potthuri <lakshmi.sai.krishna.potthuri@xilinx.com>
Reviewed-by: Radhey Shyam Pandey <radhey.shyam.pandey@xilinx.com>
Acked-by: Naga Sureshkumar Relli <naga.sureshkumar.relli@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>