driver: input: 88pm860x-ts: fix missing of_node_put
Subsystems (2)
PATCH 1/3 driver: input: 88pm860x-ts: fix missing of_node_put
decrease np device_node refcount after task completion
Signed-off-by Libo Chen <[email protected]>
--- drivers/input/touchscreen/88pm860x-ts.c | 22 +++++++++++++++------- 1 files changed, 15 insertions(+), 7 deletions(-)
drivers/input/touchscreen/88pm860x-ts.c +15 -7
@@ -142,14 +142,18 @@ static int pm860x_touch_dt_init(struct platform_device *pdev, data |= (n <<7 ) &PM8607_GPADC_SW_CAL_MASK ;if (data) { ret =pm860x_reg_write (i2c,PM8607_GPADC_MISC1 , data); -if (ret <0 ) -return -EINVAL ; +if (ret <0 ) { + ret = -EINVAL ; + goto err; + } }/* set tsi prebias time */ if (!of_property_read_u32 (np,"marvell,88pm860x-tsi-prebias" , &data)) { ret =pm860x_reg_write (i2c,PM8607_TSI_PREBIAS , data); -if (ret <0 ) -return -EINVAL ; +if (ret <0 ) { + ret = -EINVAL ; + goto err; + } }/* set prebias & prechg time of pen detect */ data =0 ;
@@ -159,11 +163,15 @@ static int pm860x_touch_dt_init(struct platform_device *pdev, data |= n &PM8607_PD_PRECHG_MASK ;if (data) { ret =pm860x_reg_write (i2c,PM8607_PD_PREBIAS , data); -if (ret <0 ) -return -EINVAL ; +if (ret <0 ) { + ret = -EINVAL ; + goto err; + } }of_property_read_u32 (np,"marvell,88pm860x-resistor-X" , res_x); - return 0; +err: +of_node_put (np); + return ret; }#else #define pm860x_touch_dt_init (x, y, z) (-1)
Signature · 1 line
1.7.1