From patchwork Mon Mar 2 04:38:58 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sebastian Reichel X-Patchwork-Id: 5910191 Return-Path: X-Original-To: patchwork-linux-omap@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 1B0B49F36A for ; Mon, 2 Mar 2015 04:47:20 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 2B2D520218 for ; Mon, 2 Mar 2015 04:47:19 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 4FABE20173 for ; Mon, 2 Mar 2015 04:47:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753292AbbCBEqy (ORCPT ); Sun, 1 Mar 2015 23:46:54 -0500 Received: from ring0.de ([5.45.105.125]:40043 "EHLO ring0.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753472AbbCBEqu (ORCPT ); Sun, 1 Mar 2015 23:46:50 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, T_RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=ham version=3.3.1 From: Sebastian Reichel To: Sebastian Reichel Cc: Peter Ujfalusi , Kai Vehmanen , Pavel Machek , Pali Rohar , Aaro Koskinen , Ivaylo Dimitrov , linux-omap@vger.kernel.org, linux-kernel@vger.kernel.org, linux-api@vger.kernel.org Subject: [PATCH 8/9] HSI: cmt_speech: Remove hardcoded channel numbers Date: Mon, 2 Mar 2015 05:38:58 +0100 Message-Id: <1425271139-24715-9-git-send-email-sre@kernel.org> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1425271139-24715-1-git-send-email-sre@kernel.org> References: <1425271139-24715-1-git-send-email-sre@kernel.org> Sender: linux-omap-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-omap@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP cmt-speech channel numbers should be coming from Device Tree instead of being hardcoded. Signed-off-by: Sebastian Reichel --- drivers/hsi/clients/cmt_speech.c | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/drivers/hsi/clients/cmt_speech.c b/drivers/hsi/clients/cmt_speech.c index 69dc37f..a017292 100644 --- a/drivers/hsi/clients/cmt_speech.c +++ b/drivers/hsi/clients/cmt_speech.c @@ -59,6 +59,9 @@ struct cs_char { spinlock_t lock; struct fasync_struct *async_queue; wait_queue_head_t wait; + /* hsi channel ids */ + int channel_id_cmd; + int channel_id_data; }; #define SSI_CHANNEL_STATE_READING 1 @@ -66,9 +69,6 @@ struct cs_char { #define SSI_CHANNEL_STATE_POLL (1 << 2) #define SSI_CHANNEL_STATE_ERROR (1 << 3) -#define CONTROL_HSI_CH 1 -#define DATA_HSI_CH 2 - #define TARGET_MASK 0xf000000 #define TARGET_REMOTE (1 << CS_DOMAIN_SHIFT) #define TARGET_LOCAL 0 @@ -296,7 +296,7 @@ static int cs_alloc_cmds(struct cs_hsi_iface *hi) goto out; } sg_init_one(msg->sgt.sgl, buf, sizeof(*buf)); - msg->channel = CONTROL_HSI_CH; + msg->channel = cs_char_data.channel_id_cmd; msg->context = hi; list_add_tail(&msg->link, &hi->cmdqueue); } @@ -342,7 +342,7 @@ static int cs_hsi_alloc_data(struct cs_hsi_iface *hi) res = -ENOMEM; goto out1; } - rxmsg->channel = DATA_HSI_CH; + rxmsg->channel = cs_char_data.channel_id_data; rxmsg->destructor = cs_hsi_data_destructor; rxmsg->context = hi; @@ -351,7 +351,7 @@ static int cs_hsi_alloc_data(struct cs_hsi_iface *hi) res = -ENOMEM; goto out2; } - txmsg->channel = DATA_HSI_CH; + txmsg->channel = cs_char_data.channel_id_data; txmsg->destructor = cs_hsi_data_destructor; txmsg->context = hi; @@ -1382,6 +1382,22 @@ static int cs_hsi_client_probe(struct device *dev) INIT_LIST_HEAD(&cs_char_data.chardev_queue); INIT_LIST_HEAD(&cs_char_data.dataind_queue); + cs_char_data.channel_id_cmd = hsi_get_channel_id_by_name(cl, + "speech-control"); + if (cs_char_data.channel_id_cmd < 0) { + err = cs_char_data.channel_id_cmd; + dev_err(dev, "Could not get cmd channel (%d)\n", err); + return err; + } + + cs_char_data.channel_id_data = hsi_get_channel_id_by_name(cl, + "speech-data"); + if (cs_char_data.channel_id_data < 0) { + err = cs_char_data.channel_id_data; + dev_err(dev, "Could not get data channel (%d)\n", err); + return err; + } + err = misc_register(&cs_char_miscdev); if (err) dev_err(dev, "Failed to register: %d\n", err);