From patchwork Fri Apr 6 08:05:07 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jean-Baptiste Maneyrol X-Patchwork-Id: 10325761 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id E10D060541 for ; Fri, 6 Apr 2018 08:05:17 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D176F2944B for ; Fri, 6 Apr 2018 08:05:17 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id C487A294B0; Fri, 6 Apr 2018 08:05:17 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id CBC072944B for ; Fri, 6 Apr 2018 08:05:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751401AbeDFIFP (ORCPT ); Fri, 6 Apr 2018 04:05:15 -0400 Received: from mail-bn3nam01on0056.outbound.protection.outlook.com ([104.47.33.56]:46910 "EHLO NAM01-BN3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751344AbeDFIFK (ORCPT ); Fri, 6 Apr 2018 04:05:10 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=invensense.onmicrosoft.com; s=selector1-invensense-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=SMYviu4UE3kh75OUpEkAh45Kx5bJ+SI1hpY4Sa20iQk=; b=YRONQQ0xeIplFMz3hDsQMq3c4UsW5ale9yk4lrm0CM2vwAN2GCxUZMlv3Jp1X9ZPRlNPAwgsABb3TX9o+zJs9DXMUHDWbj7+6s1gonpkiZDl54p19F7aC6VrnYw7SFR5sVTV6PDKpAZOwNSCK6EL2/L5XaMSuN4vcerj70EMDoU= Received: from CY4PR1201MB0184.namprd12.prod.outlook.com (10.172.78.141) by CY4PR1201MB0086.namprd12.prod.outlook.com (10.172.77.149) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.631.10; Fri, 6 Apr 2018 08:05:07 +0000 Received: from CY4PR1201MB0184.namprd12.prod.outlook.com ([fe80::6cd9:f753:b84b:7f85]) by CY4PR1201MB0184.namprd12.prod.outlook.com ([fe80::6cd9:f753:b84b:7f85%13]) with mapi id 15.20.0631.015; Fri, 6 Apr 2018 08:05:07 +0000 From: Jean-Baptiste Maneyrol To: linux-iio Subject: [PATCH] iio: imu: inv_mpu6050: use devm_* at init and delete remove Thread-Topic: [PATCH] iio: imu: inv_mpu6050: use devm_* at init and delete remove Thread-Index: AQHTzX3OWyQsyQMZLE2m1jhrKM51Lw== Date: Fri, 6 Apr 2018 08:05:07 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=JManeyrol@invensense.com; x-originating-ip: [92.154.85.143] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; CY4PR1201MB0086; 7:31UQsNXp8AHJ1DpXtXLlIiDcjsKW908HDdWgc9z6cX9aAacsYTrvgD7Hw7kqa+xMSMLEL5jtOzu6iAeaea9ePnE9zIFSTMAIKnOoniVd5/F378FLZFtKIVwL3X2taUm9XrtNHvqjKwXgZVnGmiM4GI4rF8m4uAPknZygdaihHlTVoEwiOcwqls6VUoXiQkJRcKmJQ/VZ2aTx0wofvBHiQg1gb1dHZukifgEd/jziCAoDEqRb/jPbppmxszmYnJ4S x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-correlation-id: 80c616a8-7005-4310-97f0-08d59b951cac x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4604075)(3008032)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:CY4PR1201MB0086; x-ms-traffictypediagnostic: CY4PR1201MB0086: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(257004950022427); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(6040522)(2401047)(5005006)(8121501046)(3002001)(93006095)(93001095)(3231221)(944501327)(52105095)(10201501046)(6041310)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123558120)(20161123564045)(6072148)(201708071742011); SRVR:CY4PR1201MB0086; BCL:0; PCL:0; RULEID:; SRVR:CY4PR1201MB0086; x-forefront-prvs: 0634F37BFF x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(396003)(39850400004)(39380400002)(366004)(346002)(376002)(189003)(199004)(476003)(105586002)(478600001)(2900100001)(80792005)(3660700001)(5660300001)(97736004)(316002)(74316002)(186003)(3846002)(6506007)(6916009)(305945005)(7696005)(72206003)(14454004)(575784001)(26005)(66066001)(55016002)(106356001)(99286004)(6116002)(1857600001)(86362001)(81156014)(7736002)(2906002)(53936002)(3280700002)(9686003)(5250100002)(8936002)(33656002)(25786009)(59450400001)(68736007)(486006)(6436002)(81166006)(8676002)(102836004); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR1201MB0086; H:CY4PR1201MB0184.namprd12.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: invensense.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: BuXUck8BHscbA+4UXf6q6iWdwcllFi26AOUIOcmTOTiUFMuaadz3iNyLvf21dvHbuuHHFudssxlX7SR2iT4t4F3IM2r5p//wERz4ny8Xfok944WtJVBMYEmPrwc6lQ4oJng/36MmWgkLStEUEN+yiEemfBM5+fUK3hRiJOqi0sX1sYf1I//ZQhbhJbMh2q81WEoYvmd8jYvw9REmbxi+3HfU1mQ98BViBZIk+74V8S2U4UQw6VdUyznIYgEhaW2RKSvht60j8n4X4V7/zssSZOIWcE9M9IM6rST4+icOp4p+DTd67hG/hVH/bdQ3g5/5xnMXmi454lv5Ix3zs+mvyu32K/CoT1SQci/N/nMW2Tz3o4dBW/58ShiMuYQtNnwBXvHDiqd2yIAFn7U6ctp6H1wc+mtUerSKHiMID2EPbBc= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: invensense.com X-MS-Exchange-CrossTenant-Network-Message-Id: 80c616a8-7005-4310-97f0-08d59b951cac X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Apr 2018 08:05:07.5517 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 462b3b3b-e42b-47ea-801a-f1581aac892d X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR1201MB0086 Sender: linux-iio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-iio@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Use devm_* for iio_triggered_buffer_setup, iio_device_register, iio_trigger_register. Delete unneeded inv_mpu6050_remove_trigger, inv_mpu_core_remove, and inv_mpu_remove for spi driver. Signed-off-by: Jean-Baptiste Maneyrol --- drivers/iio/imu/inv_mpu6050/inv_mpu_core.c | 32 ++++++--------------------- drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c | 12 ++++------ drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h | 2 -- drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c | 6 ----- drivers/iio/imu/inv_mpu6050/inv_mpu_trigger.c | 7 +----- 5 files changed, 12 insertions(+), 47 deletions(-) diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c index 7d64be3..c0a075d 100644 --- a/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c +++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c @@ -940,10 +940,10 @@ int inv_mpu_core_probe(struct regmap *regmap, int irq, const char *name, indio_dev->info = &mpu_info; indio_dev->modes = INDIO_BUFFER_TRIGGERED; - result = iio_triggered_buffer_setup(indio_dev, - inv_mpu6050_irq_handler, - inv_mpu6050_read_fifo, - NULL); + result = devm_iio_triggered_buffer_setup(dev, indio_dev, + inv_mpu6050_irq_handler, + inv_mpu6050_read_fifo, + NULL); if (result) { dev_err(dev, "configure buffer fail %d\n", result); return result; @@ -951,39 +951,21 @@ int inv_mpu_core_probe(struct regmap *regmap, int irq, const char *name, result = inv_mpu6050_probe_trigger(indio_dev); if (result) { dev_err(dev, "trigger probe fail %d\n", result); - goto out_unreg_ring; + return result; } INIT_KFIFO(st->timestamps); spin_lock_init(&st->time_stamp_lock); - result = iio_device_register(indio_dev); + result = devm_iio_device_register(dev, indio_dev); if (result) { dev_err(dev, "IIO register fail %d\n", result); - goto out_remove_trigger; + return result; } return 0; - -out_remove_trigger: - inv_mpu6050_remove_trigger(st); -out_unreg_ring: - iio_triggered_buffer_cleanup(indio_dev); - return result; } EXPORT_SYMBOL_GPL(inv_mpu_core_probe); -int inv_mpu_core_remove(struct device *dev) -{ - struct iio_dev *indio_dev = dev_get_drvdata(dev); - - iio_device_unregister(indio_dev); - inv_mpu6050_remove_trigger(iio_priv(indio_dev)); - iio_triggered_buffer_cleanup(indio_dev); - - return 0; -} -EXPORT_SYMBOL_GPL(inv_mpu_core_remove); - #ifdef CONFIG_PM_SLEEP static int inv_mpu_resume(struct device *dev) diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c index fcd7a92..c9ed082 100644 --- a/drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c +++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c @@ -137,14 +137,12 @@ static int inv_mpu_probe(struct i2c_client *client, 1, 0, I2C_MUX_LOCKED | I2C_MUX_GATE, inv_mpu6050_select_bypass, inv_mpu6050_deselect_bypass); - if (!st->muxc) { - result = -ENOMEM; - goto out_unreg_device; - } + if (!st->muxc) + return -ENOMEM; st->muxc->priv = dev_get_drvdata(&client->dev); result = i2c_mux_add_adapter(st->muxc, 0, 0, 0); if (result) - goto out_unreg_device; + return result; result = inv_mpu_acpi_create_mux_client(client); if (result) @@ -154,8 +152,6 @@ static int inv_mpu_probe(struct i2c_client *client, out_del_mux: i2c_mux_del_adapters(st->muxc); -out_unreg_device: - inv_mpu_core_remove(&client->dev); return result; } @@ -167,7 +163,7 @@ static int inv_mpu_remove(struct i2c_client *client) inv_mpu_acpi_delete_mux_client(client); i2c_mux_del_adapters(st->muxc); - return inv_mpu_core_remove(&client->dev); + return 0; } /* diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h b/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h index c3d6225..f680d00 100644 --- a/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h +++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h @@ -288,7 +288,6 @@ enum inv_mpu6050_clock_sel_e { irqreturn_t inv_mpu6050_irq_handler(int irq, void *p); irqreturn_t inv_mpu6050_read_fifo(int irq, void *p); int inv_mpu6050_probe_trigger(struct iio_dev *indio_dev); -void inv_mpu6050_remove_trigger(struct inv_mpu6050_state *st); int inv_reset_fifo(struct iio_dev *indio_dev); int inv_mpu6050_switch_engine(struct inv_mpu6050_state *st, bool en, u32 mask); int inv_mpu6050_write_reg(struct inv_mpu6050_state *st, int reg, u8 val); @@ -297,5 +296,4 @@ int inv_mpu_acpi_create_mux_client(struct i2c_client *client); void inv_mpu_acpi_delete_mux_client(struct i2c_client *client); int inv_mpu_core_probe(struct regmap *regmap, int irq, const char *name, int (*inv_mpu_bus_setup)(struct iio_dev *), int chip_type); -int inv_mpu_core_remove(struct device *dev); extern const struct dev_pm_ops inv_mpu_pmops; diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c index 74506e5..93fdd17 100644 --- a/drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c +++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c @@ -69,11 +69,6 @@ static int inv_mpu_probe(struct spi_device *spi) inv_mpu_i2c_disable, chip_type); } -static int inv_mpu_remove(struct spi_device *spi) -{ - return inv_mpu_core_remove(&spi->dev); -} - /* * device id table is used to identify what device can be * supported by this driver @@ -97,7 +92,6 @@ MODULE_DEVICE_TABLE(acpi, inv_acpi_match); static struct spi_driver inv_mpu_driver = { .probe = inv_mpu_probe, - .remove = inv_mpu_remove, .id_table = inv_mpu_id, .driver = { .acpi_match_table = ACPI_PTR(inv_acpi_match), diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_trigger.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_trigger.c index f963f9f..2ec1215 100644 --- a/drivers/iio/imu/inv_mpu6050/inv_mpu_trigger.c +++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_trigger.c @@ -141,7 +141,7 @@ int inv_mpu6050_probe_trigger(struct iio_dev *indio_dev) st->trig->ops = &inv_mpu_trigger_ops; iio_trigger_set_drvdata(st->trig, indio_dev); - ret = iio_trigger_register(st->trig); + ret = devm_iio_trigger_register(&indio_dev->dev, st->trig); if (ret) return ret; @@ -149,8 +149,3 @@ int inv_mpu6050_probe_trigger(struct iio_dev *indio_dev) return 0; } - -void inv_mpu6050_remove_trigger(struct inv_mpu6050_state *st) -{ - iio_trigger_unregister(st->trig); -}