<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-dev/drivers/soc/xilinx, branch master</title>
<subtitle>Linux kernel development work - see feature branches</subtitle>
<id>https://git.zx2c4.com/linux-dev/atom/drivers/soc/xilinx?h=master</id>
<link rel='self' href='https://git.zx2c4.com/linux-dev/atom/drivers/soc/xilinx?h=master'/>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/'/>
<updated>2022-06-29T12:46:22Z</updated>
<entry>
<title>firmware: xilinx: Add TF_A_PM_REGISTER_SGI SMC call</title>
<updated>2022-06-29T12:46:22Z</updated>
<author>
<name>Tanmay Shah</name>
<email>tanmay.shah@xilinx.com</email>
</author>
<published>2022-06-07T22:42:54Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=acd6510dd7ab3664b69eb99e37c4fd6325a7d442'/>
<id>urn:sha1:acd6510dd7ab3664b69eb99e37c4fd6325a7d442</id>
<content type='text'>
SGI interrupt register and reset is performed by EEMI ioctl
IOCTL_REGISTER_SGI. However, this is not correct use of EEMI call.
SGI registration functionality does not qualify as energy management
activity and so shouldn't be mapped to EEMI call.

This new call will replace IOCTL_REGISTER_SGI and will  be handled by TF-A
specific handler in TF-A. To maintain backward compatibility for a while
firmware driver will still use IOCTL_REGISTER_SGI as fallback strategy if
new call fails or is not supported by TF-A.

This new design also helps to make TF-A as pass through layer for EEMI
calls. So we don't have to maintain PM_IOCTL as EEMI API ID in TF-A.

Signed-off-by: Tanmay Shah &lt;tanmay.shah@xilinx.com&gt;
Acked-by: Michal Simek &lt;michal.simek@amd.com&gt;
Link: https://lore.kernel.org/r/20220607224253.54919-1-tanmay.shah@xilinx.com
Signed-off-by: Michal Simek &lt;michal.simek@amd.com&gt;
</content>
</entry>
<entry>
<title>driver: soc: xilinx: Update function prototype for xlnx_unregister_event</title>
<updated>2022-05-19T16:57:28Z</updated>
<author>
<name>Abhyuday Godhasara</name>
<email>abhyuday.godhasara@xilinx.com</email>
</author>
<published>2022-04-27T07:48:03Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=e6d3c99adf54fc1dcd07729990dc32acd3be874b'/>
<id>urn:sha1:e6d3c99adf54fc1dcd07729990dc32acd3be874b</id>
<content type='text'>
As per the current implementation only single callback data gets saved per
event, driver is throwing an error if try to register multiple callback for
same event. So at time of unregistration of any event required things are
event details and callback handler as parameter of xlnx_unregister_event().

As part of adding support of multiple callbacks for same event also require
change in prototype of xlnx_unregister_event().
During unregistration of any events, now required things are event details,
callback handler and agent's private data as parameter of
xlnx_unregister_event().

Also modify the usage of xlnx_unregister_event() in xilinx/zynqmp_power.c
driver as per new implementation.

Signed-off-by: Abhyuday Godhasara &lt;abhyuday.godhasara@xilinx.com&gt;
Link: https://lore.kernel.org/r/20220427074803.19009-3-abhyuday.godhasara@xilinx.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>driver: soc: xilinx: Add support of multiple callbacks for same event in event management driver</title>
<updated>2022-05-19T16:57:28Z</updated>
<author>
<name>Abhyuday Godhasara</name>
<email>abhyuday.godhasara@xilinx.com</email>
</author>
<published>2022-04-27T07:48:02Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=05e5ba40ea7ab6a99bb8d6117c899d0e13ca8700'/>
<id>urn:sha1:05e5ba40ea7ab6a99bb8d6117c899d0e13ca8700</id>
<content type='text'>
As per the current implementation of only single callback data gets
saved per event, driver is throwing an error if try to register multiple
callback for same event.

Add support of multiple callbacks data for same event. So agent can
register for same event with multiple callbacks. Here event management
driver will store the callbacks as list in Hash table entry for that event.

Here each callback data contain 2 element as callback handler and private
data of agent driver.

Signed-off-by: Abhyuday Godhasara &lt;abhyuday.godhasara@xilinx.com&gt;
Link: https://lore.kernel.org/r/20220427074803.19009-2-abhyuday.godhasara@xilinx.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>Merge tag 'char-misc-5.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc</title>
<updated>2022-01-14T15:02:28Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2022-01-14T15:02:28Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=3bad80dab94a16c9b7991105e3bffd5fe5957e9a'/>
<id>urn:sha1:3bad80dab94a16c9b7991105e3bffd5fe5957e9a</id>
<content type='text'>
Pull char/misc and other driver updates from Greg KH:
 "Here is the large set of char, misc, and other "small" driver
  subsystem changes for 5.17-rc1.

  Lots of different things are in here for char/misc drivers such as:

   - habanalabs driver updates

   - mei driver updates

   - lkdtm driver updates

   - vmw_vmci driver updates

   - android binder driver updates

   - other small char/misc driver updates

  Also smaller driver subsystems have also been updated, including:

   - fpga subsystem updates

   - iio subsystem updates

   - soundwire subsystem updates

   - extcon subsystem updates

   - gnss subsystem updates

   - phy subsystem updates

   - coresight subsystem updates

   - firmware subsystem updates

   - comedi subsystem updates

   - mhi subsystem updates

   - speakup subsystem updates

   - rapidio subsystem updates

   - spmi subsystem updates

   - virtual driver updates

   - counter subsystem updates

  Too many individual changes to summarize, the shortlog contains the
  full details.

  All of these have been in linux-next for a while with no reported
  issues"

* tag 'char-misc-5.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (406 commits)
  counter: 104-quad-8: Fix use-after-free by quad8_irq_handler
  dt-bindings: mux: Document mux-states property
  dt-bindings: ti-serdes-mux: Add defines for J721S2 SoC
  counter: remove old and now unused registration API
  counter: ti-eqep: Convert to new counter registration
  counter: stm32-lptimer-cnt: Convert to new counter registration
  counter: stm32-timer-cnt: Convert to new counter registration
  counter: microchip-tcb-capture: Convert to new counter registration
  counter: ftm-quaddec: Convert to new counter registration
  counter: intel-qep: Convert to new counter registration
  counter: interrupt-cnt: Convert to new counter registration
  counter: 104-quad-8: Convert to new counter registration
  counter: Update documentation for new counter registration functions
  counter: Provide alternative counter registration functions
  counter: stm32-timer-cnt: Convert to counter_priv() wrapper
  counter: stm32-lptimer-cnt: Convert to counter_priv() wrapper
  counter: ti-eqep: Convert to counter_priv() wrapper
  counter: ftm-quaddec: Convert to counter_priv() wrapper
  counter: intel-qep: Convert to counter_priv() wrapper
  counter: microchip-tcb-capture: Convert to counter_priv() wrapper
  ...
</content>
</entry>
<entry>
<title>soc: xilinx: add a to_zynqmp_pm_domain macro</title>
<updated>2021-12-08T11:53:36Z</updated>
<author>
<name>Michael Tretter</name>
<email>m.tretter@pengutronix.de</email>
</author>
<published>2021-08-25T15:03:13Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=628e8ba1d331397d580e65a61c0fb4b5ae8e5ccb'/>
<id>urn:sha1:628e8ba1d331397d580e65a61c0fb4b5ae8e5ccb</id>
<content type='text'>
Replace container_of for converting a generic_pm_domain to a
zynqmp_pm_domain with a macro definition to simplify the code.

Signed-off-by: Michael Tretter &lt;m.tretter@pengutronix.de&gt;
Acked-by: Michal Simek &lt;michal.simek@xilinx.com&gt;
Acked-by: Rajan Vaja &lt;rajan.vaja@xilinx.com&gt;
Link: https://lore.kernel.org/r/20210825150313.4033156-5-m.tretter@pengutronix.de
Signed-off-by: Michal Simek &lt;michal.simek@xilinx.com&gt;
</content>
</entry>
<entry>
<title>soc: xilinx: use a properly named field instead of flags</title>
<updated>2021-12-08T11:53:36Z</updated>
<author>
<name>Michael Tretter</name>
<email>m.tretter@pengutronix.de</email>
</author>
<published>2021-08-25T15:03:12Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=e7a9106c32c0527735a01ae00d5d9edbdb573b40'/>
<id>urn:sha1:e7a9106c32c0527735a01ae00d5d9edbdb573b40</id>
<content type='text'>
Instead of defining a flags field and a single bit in this field to
signal that a PM node has been requested, use a boolean field with a
descriptive name.

No functional change, but using a proper name instead of flags makes the
code easier to read.

Signed-off-by: Michael Tretter &lt;m.tretter@pengutronix.de&gt;
Acked-by: Michal Simek &lt;michal.simek@xilinx.com&gt;
Acked-by: Rajan Vaja &lt;rajan.vaja@xilinx.com&gt;
Link: https://lore.kernel.org/r/20210825150313.4033156-4-m.tretter@pengutronix.de
Signed-off-by: Michal Simek &lt;michal.simek@xilinx.com&gt;
</content>
</entry>
<entry>
<title>soc: xilinx: cleanup debug and error messages</title>
<updated>2021-12-08T11:53:35Z</updated>
<author>
<name>Michael Tretter</name>
<email>m.tretter@pengutronix.de</email>
</author>
<published>2021-08-25T15:03:11Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=c4245100f7461e0dd1f16ef0e0fcc19bcd826de3'/>
<id>urn:sha1:c4245100f7461e0dd1f16ef0e0fcc19bcd826de3</id>
<content type='text'>
Use dev_err/dev_dbg instead of pr_err/pr_debug.

Add the PM node ids to supplement the (arbitrary) power domain names to
include information which PM nodes are requested by the driver.

Drop function names from the messages, because they can easily be added
with dynamic debug.

Remove comments explaining that error messages are printed on errors.

Signed-off-by: Michael Tretter &lt;m.tretter@pengutronix.de&gt;
Acked-by: Michal Simek &lt;michal.simek@xilinx.com&gt;
Acked-by: Rajan Vaja &lt;rajan.vaja@xilinx.com&gt;
Link: https://lore.kernel.org/r/20210825150313.4033156-3-m.tretter@pengutronix.de
Signed-off-by: Michal Simek &lt;michal.simek@xilinx.com&gt;
</content>
</entry>
<entry>
<title>soc: xilinx: move PM_INIT_FINALIZE to zynqmp_pm_domains driver</title>
<updated>2021-12-08T11:53:35Z</updated>
<author>
<name>Michael Tretter</name>
<email>m.tretter@pengutronix.de</email>
</author>
<published>2021-08-25T15:03:10Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=7fd890b89dea55eb5866640eb8befad26d558161'/>
<id>urn:sha1:7fd890b89dea55eb5866640eb8befad26d558161</id>
<content type='text'>
PM_INIT_FINALIZE tells the PMU FW that Linux is able to handle the power
management nodes that are provided by the PMU FW. Nodes that are not
requested are shut down after this call.

Calling PM_INIT_FINALIZE from the zynqmp_power driver is wrong. The PM
node request mechanism is implemented in the zynqmp_pm_domains driver,
which must also call PM_INIT_FINALIZE.

Due to the behavior of the PMU FW, all devices must be powered up before
PM_INIT_FINALIZE is called, because otherwise the devices might
misbehave. Calling PM_INIT_FINALIZE from the sync_state device callback
ensures that all users probed successfully before the PMU FW is allowed
to power off unused domains.

Signed-off-by: Michael Tretter &lt;m.tretter@pengutronix.de&gt;
Acked-by: Michal Simek &lt;michal.simek@xilinx.com&gt;
Acked-by: Rajan Vaja &lt;rajan.vaja@xilinx.com&gt;
Link: https://lore.kernel.org/r/20210825150313.4033156-2-m.tretter@pengutronix.de
Signed-off-by: Michal Simek &lt;michal.simek@xilinx.com&gt;
</content>
</entry>
<entry>
<title>driver: soc: xilinx: register for power events in zynqmp power driver</title>
<updated>2021-12-03T15:08:46Z</updated>
<author>
<name>Abhyuday Godhasara</name>
<email>abhyuday.godhasara@xilinx.com</email>
</author>
<published>2021-11-29T07:02:16Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=70602b37c4afd91c4dfc237121b31310b6c02a7a'/>
<id>urn:sha1:70602b37c4afd91c4dfc237121b31310b6c02a7a</id>
<content type='text'>
With Xilinx Event Management driver, all types of events like power and
error gets handled from single place as part of event management driver.

So power events(SUSPEND_POWER_REQUEST and SUSPEND_SYSTEM_SHUTDOWN)
also gets handled by event management driver instead of zynqmp_power
driver.

zynqmp-power driver use event management driver and provide callback
function for Suspend and shutdown handler, which will be called by event
management driver when respective event is arrived.

If event management driver is not available than use ipi-mailbox rx channel
or IPI interrupt IRQ handler for power events (suspend/shutdown) same as
current zynqmp-power driver.

Acked-by: Michal Simek &lt;michal.simek@xilinx.com&gt;
Signed-off-by: Rajan Vaja &lt;rajan.vaja@xilinx.com&gt;
Signed-off-by: Abhyuday Godhasara &lt;abhyuday.godhasara@xilinx.com&gt;
Link: https://lore.kernel.org/r/20211129070216.30253-4-abhyuday.godhasara@xilinx.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>drivers: soc: xilinx: add xilinx event management driver</title>
<updated>2021-12-03T15:08:46Z</updated>
<author>
<name>Abhyuday Godhasara</name>
<email>abhyuday.godhasara@xilinx.com</email>
</author>
<published>2021-11-29T07:02:14Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=c7fdb2404f66131bc9c22e06f712717288826487'/>
<id>urn:sha1:c7fdb2404f66131bc9c22e06f712717288826487</id>
<content type='text'>
Xilinx event management driver provides an interface to subscribe or
unsubscribe for the event/callback supported by firmware. An agent can use
this driver to register for Error Event, Device Event and Suspend callback.
This driver only allows one agent per event to do registration. Driver will
return an error in case of multiple registration for the same event.

This driver gets notification from firmware through TF-A as SGI. During
initialization, event manager driver register handler for SGI used for
notification. It also provides SGI number info to TF-A by using
IOCTL_REGISTER_SGI call to TF-A.

After receiving notification from firmware, the driver makes an SMC call to
TF-A to get IPI data. From the IPI data provided by TF-A, event manager
identified the cause of event and forward that event/callback notification
to the respective subscribed driver. After this, in case of Error Event,
driver performs unregistration as firmware expecting from agent to do
re-registration if the agent wants to get notified on the second occurrence
of an error event.

Add new IOCTL id IOCTL_REGISTER_SGI = 25 which is used to register SGI on
TF-A.

Older firmware doesn't have all required support for event handling which
is required by the event manager driver. So add check for the register
notifier version in the event manager driver.

Xilinx event management driver provides support to subscribe for multiple
error events with the use of Event Mask in a single call of
xlnx_register_event(). Agent driver can provide 'Event' parameter value as
ORed of multiple event masks to register single callback for multiple
events. For example, to register callback for event=0x1 and event=0x2 for
the given node, agent can provide event=0x3 (0x1 | 0x2). It is not possible
to register multiple events for different nodes in a single registration
call.

Also provide support to receive multiple error events as in single
notification from firmware and then forward it to subscribed drivers via
registered callback one by one.

Acked-by: Michal Simek &lt;michal.simek@xilinx.com&gt;
Signed-off-by: Tejas Patel &lt;tejas.patel@xilinx.com&gt;
Signed-off-by: Rajan Vaja &lt;rajan.vaja@xilinx.com&gt;
Signed-off-by: Abhyuday Godhasara &lt;abhyuday.godhasara@xilinx.com&gt;
Link: https://lore.kernel.org/r/20211129070216.30253-2-abhyuday.godhasara@xilinx.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
</feed>
