diff options
author | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2018-02-01 00:37:30 -0800 |
---|---|---|
committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2018-02-01 00:37:30 -0800 |
commit | d67ad78e09cbb9935c74a40b85c5abe5b9cd48f8 (patch) | |
tree | 56e92b487de80090a998ff3c0469375982156802 /drivers/input/touchscreen/raydium_i2c_ts.c | |
parent | Revert "Input: synaptics_rmi4 - use devm_device_add_group() for attributes in F01" (diff) | |
parent | Input: goodix - use generic touchscreen_properties (diff) | |
download | linux-dev-d67ad78e09cbb9935c74a40b85c5abe5b9cd48f8.tar.xz linux-dev-d67ad78e09cbb9935c74a40b85c5abe5b9cd48f8.zip |
Merge branch 'next' into for-linus
Prepare input updates for 4.16 merge window.
Diffstat (limited to 'drivers/input/touchscreen/raydium_i2c_ts.c')
-rw-r--r-- | drivers/input/touchscreen/raydium_i2c_ts.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/drivers/input/touchscreen/raydium_i2c_ts.c b/drivers/input/touchscreen/raydium_i2c_ts.c index 100538d64fff..d1c09e6a2cb6 100644 --- a/drivers/input/touchscreen/raydium_i2c_ts.c +++ b/drivers/input/touchscreen/raydium_i2c_ts.c @@ -752,13 +752,20 @@ static int raydium_i2c_fw_update(struct raydium_data *ts) { struct i2c_client *client = ts->client; const struct firmware *fw = NULL; - const char *fw_file = "raydium.fw"; + char *fw_file; int error; + fw_file = kasprintf(GFP_KERNEL, "raydium_%#04x.fw", + le32_to_cpu(ts->info.hw_ver)); + if (!fw_file) + return -ENOMEM; + + dev_dbg(&client->dev, "firmware name: %s\n", fw_file); + error = request_firmware(&fw, fw_file, &client->dev); if (error) { dev_err(&client->dev, "Unable to open firmware %s\n", fw_file); - return error; + goto out_free_fw_file; } disable_irq(client->irq); @@ -787,6 +794,9 @@ out_enable_irq: release_firmware(fw); +out_free_fw_file: + kfree(fw_file); + return error; } |