From patchwork Fri Apr 17 09:19:16 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Kazior X-Patchwork-Id: 6229711 X-Patchwork-Delegate: kvalo@adurom.com Return-Path: X-Original-To: patchwork-linux-wireless@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 822EE9F1AC for ; Fri, 17 Apr 2015 09:22:47 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 89F0A20328 for ; Fri, 17 Apr 2015 09:22:46 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 7251F201BC for ; Fri, 17 Apr 2015 09:22:45 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752757AbbDQJWn (ORCPT ); Fri, 17 Apr 2015 05:22:43 -0400 Received: from mail-lb0-f179.google.com ([209.85.217.179]:35242 "EHLO mail-lb0-f179.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751812AbbDQJWm (ORCPT ); Fri, 17 Apr 2015 05:22:42 -0400 Received: by lbbuc2 with SMTP id uc2so78064246lbb.2 for ; Fri, 17 Apr 2015 02:22:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tieto.com; s=google; h=from:to:cc:subject:date:message-id; bh=BDMvc0+BzJ0QGyUkDQDo98sPeYtu3yw1mw+RaNka8ys=; b=H0c6X5Z66Pp8q9leivFjBRGanlwhey470IchyWryZSQpqFN/d5eMLNJlhpY5+Ybf4l s2C2qbF6cdMUiryeDxWobx2gxvc5iRMny5+C3TfozSvayGpL3OZVYtmnVlQXG3lURuJH pK21Y77PVwh91ud1iFoORM8NOVOHYSk16uxMQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=BDMvc0+BzJ0QGyUkDQDo98sPeYtu3yw1mw+RaNka8ys=; b=nDkaDnyK5aiC1lSP5G0dw2yJxJU3Jrwj4DTen4KjZSmi/oikxFcMhyK2RJdCyQTXLF oqtdsr8KYBh8UHZaLCQTKLVIQMm2iH1p6/GvirCNfvpvzv9ecDGwjnW0zo9KHowtPNs1 6GwySR7B7wEj4HcnjCVdqTc6RdiqIPlkCbMYT1GHSn6kfID5s2FujX4JQXFNB+VNzsp4 m2SDJdgYpMy1okaERyiwnnbu42I6u6S+lm7jKzlAzKOfGkiQIsm4Pux/LWaACqBVxya1 7H0X3mK2YObuaXu21FGyRUWp7hOnxTfUT3eMhnqNoG8FxG0DrkPosQqcXs4pLJ3aft1i kp2A== X-Gm-Message-State: ALoCoQkCMHnxa9Fde8ZP0F0Bg5iMFge/2z5tewUY/xTInyaRYmb4RxbWXuK2tSLU8l551aIH7STlLXt3ISt2qTeb2s9YOJNeyO2KTQXVas5egRKe1ZHop+L9RPpz14bKOSjsw/yRKxD0 X-Received: by 10.112.17.68 with SMTP id m4mr1801716lbd.10.1429262560369; Fri, 17 Apr 2015 02:22:40 -0700 (PDT) Received: from localhost.localdomain ([91.198.246.8]) by mx.google.com with ESMTPSA id k15sm2282245laa.28.2015.04.17.02.22.38 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 17 Apr 2015 02:22:39 -0700 (PDT) From: Michal Kazior To: ath10k@lists.infradead.org Cc: linux-wireless@vger.kernel.org, Michal Kazior Subject: [PATCH v2 1/2] ath10k: share board file loading code across FW APIs Date: Fri, 17 Apr 2015 09:19:16 +0000 Message-Id: <1429262357-25139-1-git-send-email-michal.kazior@tieto.com> X-Mailer: git-send-email 2.1.4 X-DomainID: tieto.com Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org X-Spam-Status: No, score=-6.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,T_DKIM_INVALID,T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP There's no need to implement the same thing twice. Reduce code duplication. Signed-off-by: Michal Kazior --- drivers/net/wireless/ath/ath10k/core.c | 68 +++++++++++++++------------------- 1 file changed, 30 insertions(+), 38 deletions(-) diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/ath/ath10k/core.c index 2d64926c8228..70f5b7acc411 100644 --- a/drivers/net/wireless/ath/ath10k/core.c +++ b/drivers/net/wireless/ath/ath10k/core.c @@ -482,6 +482,30 @@ static int ath10k_fetch_cal_file(struct ath10k *ar) return 0; } +static int ath10k_core_fetch_board_file(struct ath10k *ar) +{ + int ret; + + if (!ar->hw_params.fw.board) { + ath10k_err(ar, "failed to find board file fw entry\n"); + return -EINVAL; + } + + ar->board = ath10k_fetch_fw_file(ar, + ar->hw_params.fw.dir, + ar->hw_params.fw.board); + if (IS_ERR(ar->board)) { + ret = PTR_ERR(ar->board); + ath10k_err(ar, "failed to fetch board data: %d\n", ret); + return ret; + } + + ar->board_data = ar->board->data; + ar->board_len = ar->board->size; + + return 0; +} + static int ath10k_core_fetch_firmware_api_1(struct ath10k *ar) { int ret = 0; @@ -491,23 +515,6 @@ static int ath10k_core_fetch_firmware_api_1(struct ath10k *ar) return -EINVAL; } - if (ar->hw_params.fw.board == NULL) { - ath10k_err(ar, "board data file not defined"); - return -EINVAL; - } - - ar->board = ath10k_fetch_fw_file(ar, - ar->hw_params.fw.dir, - ar->hw_params.fw.board); - if (IS_ERR(ar->board)) { - ret = PTR_ERR(ar->board); - ath10k_err(ar, "could not fetch board data (%d)\n", ret); - goto err; - } - - ar->board_data = ar->board->data; - ar->board_len = ar->board->size; - ar->firmware = ath10k_fetch_fw_file(ar, ar->hw_params.fw.dir, ar->hw_params.fw.fw); @@ -706,27 +713,6 @@ static int ath10k_core_fetch_firmware_api_n(struct ath10k *ar, const char *name) goto err; } - /* now fetch the board file */ - if (ar->hw_params.fw.board == NULL) { - ath10k_err(ar, "board data file not defined"); - ret = -EINVAL; - goto err; - } - - ar->board = ath10k_fetch_fw_file(ar, - ar->hw_params.fw.dir, - ar->hw_params.fw.board); - if (IS_ERR(ar->board)) { - ret = PTR_ERR(ar->board); - ath10k_err(ar, "could not fetch board data '%s/%s' (%d)\n", - ar->hw_params.fw.dir, ar->hw_params.fw.board, - ret); - goto err; - } - - ar->board_data = ar->board->data; - ar->board_len = ar->board->size; - return 0; err: @@ -741,6 +727,12 @@ static int ath10k_core_fetch_firmware_files(struct ath10k *ar) /* calibration file is optional, don't check for any errors */ ath10k_fetch_cal_file(ar); + ret = ath10k_core_fetch_board_file(ar); + if (ret) { + ath10k_err(ar, "failed to fetch board file: %d\n", ret); + return ret; + } + ar->fw_api = 5; ath10k_dbg(ar, ATH10K_DBG_BOOT, "trying fw api %d\n", ar->fw_api);