Implement support for the `timeout-ms` device tree property, allowing
platforms to adjust the userspace response timeout as needed.

If `timeout-ms` is not specified, the default response timeout remains
500 ms. This ensures compatibility while providing flexibility for
platforms that require longer timeouts due to BMC or application load.

Signed-off-by: Potin Lai <potin.lai...@gmail.com>
---
 drivers/char/ipmi/ssif_bmc.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/char/ipmi/ssif_bmc.c b/drivers/char/ipmi/ssif_bmc.c
index 310f17dd9511..8f0fbc941936 100644
--- a/drivers/char/ipmi/ssif_bmc.c
+++ b/drivers/char/ipmi/ssif_bmc.c
@@ -87,6 +87,7 @@ struct ssif_bmc_ctx {
        /* Timeout waiting for response */
        struct timer_list       response_timer;
        bool                    response_timer_inited;
+       u32                     response_timeout;
        /* Flag to identify a Multi-part Read Transaction */
        bool                    is_singlepart_read;
        u8                      nbytes_processed;
@@ -331,7 +332,8 @@ static void handle_request(struct ssif_bmc_ctx *ssif_bmc)
                timer_setup(&ssif_bmc->response_timer, response_timeout, 0);
                ssif_bmc->response_timer_inited = true;
        }
-       mod_timer(&ssif_bmc->response_timer, jiffies + 
msecs_to_jiffies(RESPONSE_TIMEOUT));
+       mod_timer(&ssif_bmc->response_timer, jiffies +
+                 msecs_to_jiffies(ssif_bmc->response_timeout));
 }
 
 static void calculate_response_part_pec(struct ssif_part_buffer *part)
@@ -809,6 +811,10 @@ static int ssif_bmc_probe(struct i2c_client *client)
        if (!ssif_bmc)
                return -ENOMEM;
 
+       if (of_property_read_u32(client->dev.of_node, "timeout-ms",
+                                &ssif_bmc->response_timeout))
+               ssif_bmc->response_timeout = RESPONSE_TIMEOUT;
+
        spin_lock_init(&ssif_bmc->lock);
 
        init_waitqueue_head(&ssif_bmc->wait_queue);

-- 
2.31.1



_______________________________________________
Openipmi-developer mailing list
Openipmi-developer@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openipmi-developer

Reply via email to