It will call devm_request_irq() after platform_get_irq() function in many drivers, And sometimes, the error handling of these two functions is incorrect in some drivers. So this function is provided to simplify the driver. the first patch will provide devm_platform_request_irq(), and the second patch will convert to devm_platform_request_irq() in some dirver of i2c bus. v3 -> v4: - The patch v3 sent on May 27 may be lost somewhere in the world, so resend it. - add Michal's Acked-by tag in the second patch. and Thanks for Michal's help. v2 -> v3: - add devm_platform_request_irq() to devres.rst by Grygorii's suggestion. - And also Thanks Michal, Wolfram and Linus's review and comments. v1 -> v2: - I give up this series of patches in v1 version. I resend this patches v2 by that discussion: https://patchwork.ozlabs.org/project/linux-i2c/patch/20200520144821.8069-1-zhengdejin5@xxxxxxxxx/ The patch content has not changed. Dejin Zheng (2): drivers: provide devm_platform_request_irq() i2c: busses: convert to devm_platform_request_irq() .../driver-api/driver-model/devres.rst | 1 + drivers/base/platform.c | 33 +++++++++++++++++++ drivers/i2c/busses/i2c-bcm-kona.c | 16 ++------- drivers/i2c/busses/i2c-cadence.c | 10 ++---- drivers/i2c/busses/i2c-digicolor.c | 10 ++---- drivers/i2c/busses/i2c-emev2.c | 5 ++- drivers/i2c/busses/i2c-jz4780.c | 5 ++- drivers/i2c/busses/i2c-meson.c | 13 +++----- drivers/i2c/busses/i2c-mxs.c | 9 ++--- drivers/i2c/busses/i2c-pnx.c | 9 ++--- drivers/i2c/busses/i2c-rcar.c | 9 ++--- drivers/i2c/busses/i2c-rk3x.c | 14 ++------ drivers/i2c/busses/i2c-sirf.c | 10 ++---- drivers/i2c/busses/i2c-stu300.c | 4 +-- drivers/i2c/busses/i2c-synquacer.c | 12 ++----- include/linux/platform_device.h | 4 +++ 16 files changed, 73 insertions(+), 91 deletions(-) -- 2.25.0