[PATCH v2] mailbox: zynqmp-ipi: Make polling period configurable

Ben Levinsky posted 1 patch 1 year, 5 months ago
drivers/mailbox/zynqmp-ipi-mailbox.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
[PATCH v2] mailbox: zynqmp-ipi: Make polling period configurable
Posted by Ben Levinsky 1 year, 5 months ago
There are cases where remote that is acking mailbox message can take longer
than the default tx_poll_period value. Therefore, enable this to be mutable.

Added tx_poll_period field while inserting the module to set the
poll period for ack after sending mailbox message.

Signed-off-by: Ben Levinsky <ben.levinsky@amd.com>
---
v2: Made param a module_param_named mutable arg as opposed to compiled option
---
 drivers/mailbox/zynqmp-ipi-mailbox.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/drivers/mailbox/zynqmp-ipi-mailbox.c b/drivers/mailbox/zynqmp-ipi-mailbox.c
index 4acf5612487c..521d08b9ab47 100644
--- a/drivers/mailbox/zynqmp-ipi-mailbox.c
+++ b/drivers/mailbox/zynqmp-ipi-mailbox.c
@@ -64,6 +64,13 @@
 
 #define MAX_SGI 16
 
+/*
+ * Module parameters
+ */
+static int tx_poll_period = 5;
+module_param_named(tx_poll_period, tx_poll_period, int, 0644);
+MODULE_PARM_DESC(tx_poll_period, "Poll period waiting for ack after send.");
+
 /**
  * struct zynqmp_ipi_mchan - Description of a Xilinx ZynqMP IPI mailbox channel
  * @is_opened: indicate if the IPI channel is opened
@@ -537,7 +544,7 @@ static int zynqmp_ipi_mbox_probe(struct zynqmp_ipi_mbox *ipi_mbox,
 	mbox->num_chans = 2;
 	mbox->txdone_irq = false;
 	mbox->txdone_poll = true;
-	mbox->txpoll_period = 5;
+	mbox->txpoll_period = tx_poll_period;
 	mbox->of_xlate = zynqmp_ipi_of_xlate;
 	chans = devm_kzalloc(mdev, 2 * sizeof(*chans), GFP_KERNEL);
 	if (!chans)
-- 
2.25.1
Re: [PATCH v2] mailbox: zynqmp-ipi: Make polling period configurable
Posted by Michal Simek 1 year, 4 months ago

On 7/18/24 22:40, Ben Levinsky wrote:
> There are cases where remote that is acking mailbox message can take longer
> than the default tx_poll_period value. Therefore, enable this to be mutable.
> 
> Added tx_poll_period field while inserting the module to set the
> poll period for ack after sending mailbox message.
> 
> Signed-off-by: Ben Levinsky <ben.levinsky@amd.com>
> ---
> v2: Made param a module_param_named mutable arg as opposed to compiled option
> ---
>   drivers/mailbox/zynqmp-ipi-mailbox.c | 9 ++++++++-
>   1 file changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/mailbox/zynqmp-ipi-mailbox.c b/drivers/mailbox/zynqmp-ipi-mailbox.c
> index 4acf5612487c..521d08b9ab47 100644
> --- a/drivers/mailbox/zynqmp-ipi-mailbox.c
> +++ b/drivers/mailbox/zynqmp-ipi-mailbox.c
> @@ -64,6 +64,13 @@
>   
>   #define MAX_SGI 16
>   
> +/*
> + * Module parameters
> + */
> +static int tx_poll_period = 5;
> +module_param_named(tx_poll_period, tx_poll_period, int, 0644);
> +MODULE_PARM_DESC(tx_poll_period, "Poll period waiting for ack after send.");
> +
>   /**
>    * struct zynqmp_ipi_mchan - Description of a Xilinx ZynqMP IPI mailbox channel
>    * @is_opened: indicate if the IPI channel is opened
> @@ -537,7 +544,7 @@ static int zynqmp_ipi_mbox_probe(struct zynqmp_ipi_mbox *ipi_mbox,
>   	mbox->num_chans = 2;
>   	mbox->txdone_irq = false;
>   	mbox->txdone_poll = true;
> -	mbox->txpoll_period = 5;
> +	mbox->txpoll_period = tx_poll_period;
>   	mbox->of_xlate = zynqmp_ipi_of_xlate;
>   	chans = devm_kzalloc(mdev, 2 * sizeof(*chans), GFP_KERNEL);
>   	if (!chans)

Acked-by: Michal Simek <michal.simek@amd.com>

Thanks,
Michal