From patchwork Sun Jun 25 12:32:15 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?RGF2aWQgSMODwqRyZGVtYW4=?= X-Patchwork-Id: 9808143 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 36058603F3 for ; Sun, 25 Jun 2017 12:32:23 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 26BD4201BD for ; Sun, 25 Jun 2017 12:32:23 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 1BA83285E5; Sun, 25 Jun 2017 12:32:23 +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.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, RCVD_IN_DNSWL_HI 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 B860A201BD for ; Sun, 25 Jun 2017 12:32:22 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751351AbdFYMcV (ORCPT ); Sun, 25 Jun 2017 08:32:21 -0400 Received: from vader.hardeman.nu ([95.142.160.32]:56436 "EHLO hardeman.nu" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751050AbdFYMcU (ORCPT ); Sun, 25 Jun 2017 08:32:20 -0400 Received: from hardeman.nu (zeus.hardeman.nu [IPv6:fd27:2a41:8fcb:2::a]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by vader.hardeman.nu (Postfix) with ESMTPSA id 9D1FB32F0; Sun, 25 Jun 2017 14:32:18 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=hardeman.nu; s=hardeman-201705; t=1498393938; bh=ReNxXlbdQUOvkwj2Be9AeYdSNSvlPSgV84Wzo75SVvQ=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=P5aw76894gEqnJe6+ZREKOOKtFdJZdkmlOy94xz8VBCjzLtXpCL5Fo4z4XR48FKir EWT/vpApsLcaS94oPdSmj5R3r6FW9dlTtKlGC87FBXckPf4b3VZbb8C4DMjwCl/bIT T2lcvrMXqElDY+ENaX2UvZrBQ0aT22gZ66gc4dKEXUP4khsHJ6RXBFw6mr0SDLJ1bq 9Cl3EhSesfOsmO1tipF25yDhKUqYKSRAPvIPIvWjaU4xYZnBEto/KqR0Q6hRH9nAv2 sa+hMgHuyHy8n87bs2glhbkMutiEIOpXAAQAxKKHRl1bumbeH7gbX2YGsZ7ymsZRW6 gHYH77H11nzRw== Received: (nullmailer pid 29139 invoked by uid 1000); Sun, 25 Jun 2017 12:32:15 -0000 Subject: [PATCH 12/19] lirc_dev: introduce lirc_allocate_device and lirc_free_device From: David =?utf-8?b?SMOkcmRlbWFu?= To: linux-media@vger.kernel.org Cc: mchehab@s-opensource.com, sean@mess.org Date: Sun, 25 Jun 2017 14:32:15 +0200 Message-ID: <149839393575.28811.11742425812585187743.stgit@zeus.hardeman.nu> In-Reply-To: <149839373103.28811.9486751698665303339.stgit@zeus.hardeman.nu> References: <149839373103.28811.9486751698665303339.stgit@zeus.hardeman.nu> User-Agent: StGit/0.17.1-dirty MIME-Version: 1.0 Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Introduce two new functions so that the API for lirc_dev matches that of the rc-core and input subsystems. This means that lirc_dev structs are managed using the usual four functions: lirc_allocate_device lirc_free_device lirc_register_device lirc_unregister_device The functions are pretty simplistic at this point, later patches will put more flesh on the bones of both. Signed-off-by: David Härdeman --- drivers/media/rc/ir-lirc-codec.c | 2 +- drivers/media/rc/lirc_dev.c | 13 +++++++++++++ include/media/lirc_dev.h | 9 ++++----- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/drivers/media/rc/ir-lirc-codec.c b/drivers/media/rc/ir-lirc-codec.c index 2349630ed383..f276c4f56fb5 100644 --- a/drivers/media/rc/ir-lirc-codec.c +++ b/drivers/media/rc/ir-lirc-codec.c @@ -347,7 +347,7 @@ static int ir_lirc_register(struct rc_dev *dev) int rc = -ENOMEM; unsigned long features = 0; - ldev = kzalloc(sizeof(struct lirc_dev), GFP_KERNEL); + ldev = lirc_allocate_device(); if (!ldev) return rc; diff --git a/drivers/media/rc/lirc_dev.c b/drivers/media/rc/lirc_dev.c index 1c2f1a07bdaa..d107ed6b634b 100644 --- a/drivers/media/rc/lirc_dev.c +++ b/drivers/media/rc/lirc_dev.c @@ -101,6 +101,19 @@ static int lirc_allocate_buffer(struct irctl *ir) return err; } +struct lirc_dev * +lirc_allocate_device(void) +{ + return kzalloc(sizeof(struct lirc_dev), GFP_KERNEL); +} +EXPORT_SYMBOL(lirc_allocate_device); + +void lirc_free_device(struct lirc_dev *d) +{ + kfree(d); +} +EXPORT_SYMBOL(lirc_free_device); + int lirc_register_device(struct lirc_dev *d) { struct irctl *ir; diff --git a/include/media/lirc_dev.h b/include/media/lirc_dev.h index 567959e9524f..3f8edabfef88 100644 --- a/include/media/lirc_dev.h +++ b/include/media/lirc_dev.h @@ -150,11 +150,10 @@ struct lirc_dev { struct irctl *irctl; }; -/* following functions can be called ONLY from user context - * - * returns negative value on error or zero - * contents of the structure pointed by p is copied - */ +extern struct lirc_dev *lirc_allocate_device(void); + +extern void lirc_free_device(struct lirc_dev *d); + extern int lirc_register_device(struct lirc_dev *d); extern void lirc_unregister_device(struct lirc_dev *d);