Received: by 2002:a05:6a10:9afc:0:0:0:0 with SMTP id t28csp697709pxm; Fri, 25 Feb 2022 17:34:57 -0800 (PST) X-Google-Smtp-Source: ABdhPJx2IRK3CkxwfAAUoy0dqDJf6OtZzAHoNZvqR64NPxE6WaMMiUtd14THYZy30/qGPp91oh3B X-Received: by 2002:aa7:8d08:0:b0:4e1:5fb5:b15 with SMTP id j8-20020aa78d08000000b004e15fb50b15mr10293121pfe.70.1645839297422; Fri, 25 Feb 2022 17:34:57 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1645839297; cv=none; d=google.com; s=arc-20160816; b=RZJBfnQpQOynb+1aK+2vzl28GeuvxUZ+HGLsFT4EVD7pBuRYg9X2JmN0anEYHmjKPZ E/BB+6PwrFiXQFikoA2FKB5u+S/ArDhpzXg0hxbdOi+d/Vx6wNDY/L0W9if6aPhPpqrP E+pS04AVIYPyH1vkxTwsxMrpIqoW8YPlBRKvPurMqEcEU/bbf1TmqG8GmwJ8jvwcewVr t8mMrs82JQ6wK1EJUe0FAmIdKku7Tijx8R3nw7HBUWxDiIom1hU8AKoB2HOwBSCBxdtl BbSRLTL+mfG70EwyMDCskNmMFG651NDt9WoEru+ZpYfcKty+VTAMVj1ZylCqSHDYwmpF GZnw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-disposition:mime-version:message-id :subject:cc:to:from:date:dkim-signature; bh=LN5HwDIZ+3LUm5kG7dgd32Ez9v++QZy+tfNeqMDGJv8=; b=LWI16NcqNG8GLO2WwQphhx6InxFFQq1ICzZDw/2LjwdET2ztY1YsN0rQX7bNh5YbKV X8K8+O3wpvfXnDXy/lyIVrlg9C5mvFVpxxTVdl6B4QpYFIoxYo2ezBcu+tlQtcVwohSK GlmXfz20b58f1GCmT6kDL+hlHth8K02ncvuUmNfNBAzTkziRk8GhCYJyDRXL+5aDesB1 YlAix0vUHK5xgOOYepvnY4m5XnWZPQnaRzzb/JHajbdC43OXs7e/ySzJz75sjWDP8Hpw IoMIyNYfeQwbm9hdAoZ5UR6eWQWOJ0jOL4qvCHjIVlHisWWatAwF4KAAC2cmSBlJF+uY tvJQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=eUAu0Se2; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id t2-20020a1709028c8200b0014ffb3dbee5si2753110plo.582.2022.02.25.17.34.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Feb 2022 17:34:57 -0800 (PST) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=eUAu0Se2; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 96A691DB8B0; Fri, 25 Feb 2022 17:29:43 -0800 (PST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238734AbiBYWlQ (ORCPT + 99 others); Fri, 25 Feb 2022 17:41:16 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40564 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233266AbiBYWlP (ORCPT ); Fri, 25 Feb 2022 17:41:15 -0500 Received: from mail-pl1-x629.google.com (mail-pl1-x629.google.com [IPv6:2607:f8b0:4864:20::629]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E8946204281 for ; Fri, 25 Feb 2022 14:40:39 -0800 (PST) Received: by mail-pl1-x629.google.com with SMTP id h17so392909plc.5 for ; Fri, 25 Feb 2022 14:40:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=date:from:to:cc:subject:message-id:mime-version:content-disposition; bh=LN5HwDIZ+3LUm5kG7dgd32Ez9v++QZy+tfNeqMDGJv8=; b=eUAu0Se28SlrSFg8qZHvkx8k91SRUHyCzorXCuOcUwlJhshPRxT864BLWtJCwINnbK xsJjzGaaUPmcqAHW3XD2cMIfFrBQfhyr2vyLdl/7uq+JGLm3YklMnF2qhBcrqdPgmfUt asChdmTuOxil5utgpZl/n7V5q5v9hZO4srpXJccXi6hox8k6uz7agqihCu5AnFuZNBid hPsQpxNiz4gOP6TlG3UpQeEMUEV66rjoytIE0Hky4FeovnHdKII5Fph+5TMJuqy+6Hzo MjeA4pvLN41CR4hZjJZj6LJlMrepZgvkIkCtDfxiQNPYVMRsW2L5/UVYpE7MzATLSvbs dPSA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:mime-version :content-disposition; bh=LN5HwDIZ+3LUm5kG7dgd32Ez9v++QZy+tfNeqMDGJv8=; b=J0xqEhC7B4bLf5YyApigtmhPXO4vIQoCJLrv0s20P0WAgAmBpm/CZcVsfPELjYxAuD flAeA55A5FtGFT7lRdYjl5LjWaDwS03xDAFN0hKgzTbbUlfESdZbHwTIvIlLEnfQmLp1 3JgApFG7CARooymWNKL8ujE6fVstBLGQ4mQ+Bcn4sps4K3vWupPCMlWvyx7fqTXadwfo KIbSuLM44MuKi84eMBxJKQxCCaekqRopRBel0NeyurXZ5DDD3W3IXF1IzJEIzXw9VHm9 ya9vm3QveCF07JgX1xpOXmNvAMfSpZBUY622T3Yio5e08vc8StY61eDNO0VakCiBQJ5h R0Ow== X-Gm-Message-State: AOAM532nSiobwfFyxXRX+aRIJ5K/tOl40UtWzfxNtIsWVdEoTiNNg4wr lOOtjx9RHaq/DoH1c9SRTOM= X-Received: by 2002:a17:902:7002:b0:14d:76b9:2303 with SMTP id y2-20020a170902700200b0014d76b92303mr9727691plk.155.1645828839252; Fri, 25 Feb 2022 14:40:39 -0800 (PST) Received: from mail.google.com (122-58-164-114-fibre.sparkbb.co.nz. [122.58.164.114]) by smtp.gmail.com with ESMTPSA id t5-20020a654b85000000b00373cbfbf965sm3684551pgq.46.2022.02.25.14.40.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Feb 2022 14:40:38 -0800 (PST) Date: Sat, 26 Feb 2022 11:40:33 +1300 From: Paulo Miguel Almeida To: gregkh@linuxfoundation.org, paulo.miguel.almeida.rodenas@gmail.com, realwakka@gmail.com Cc: linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org Subject: [PATCH] staging: pi433: remove rf69_get_flag function resolving enum conflict Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RDNS_NONE, SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The reason why rf69_get_flag() existed was to provide a high-level way to obtain values out of 1 (of 2) flags registers using bit masking. The idea was to map the possible flag values found in the data sheet like shown in page 70 of the RFM69HCW datasheet. However, due to the fact that enums values in C must be unique, there was a naming conflict on 'fifo_not_empty' which is used by the tx_start_condition enum. So the author decided to create a 'fifo_empty' one which would negate the value that comes from the flag register as the solution to that conflict (which is very confusing). this patch removes rf69_get_flag function which subsequently solves the enum redeclaration problem so kernel developers can follow the data sheet more easily. Signed-off-by: Paulo Miguel Almeida --- drivers/staging/pi433/pi433_if.c | 8 +++--- drivers/staging/pi433/rf69.c | 44 ------------------------------- drivers/staging/pi433/rf69.h | 1 - drivers/staging/pi433/rf69_enum.h | 20 -------------- 4 files changed, 4 insertions(+), 69 deletions(-) diff --git a/drivers/staging/pi433/pi433_if.c b/drivers/staging/pi433/pi433_if.c index 069255f023c8..3f3e863e6cc8 100644 --- a/drivers/staging/pi433/pi433_if.c +++ b/drivers/staging/pi433/pi433_if.c @@ -434,7 +434,7 @@ static int pi433_receive(void *data) return retval; /* now check RSSI, if low wait for getting high (RSSI interrupt) */ - while (!rf69_get_flag(dev->spi, rssi_exceeded_threshold)) { + while (!(rf69_read_reg(spi, REG_IRQFLAGS1) & MASK_IRQFLAGS1_RSSI)) { /* allow tx to interrupt us while waiting for high RSSI */ dev->interrupt_rx_allowed = true; wake_up_interruptible(&dev->tx_wait_queue); @@ -442,8 +442,8 @@ static int pi433_receive(void *data) /* wait for RSSI level to become high */ dev_dbg(dev->dev, "rx: going to wait for high RSSI level\n"); retval = wait_event_interruptible(dev->rx_wait_queue, - rf69_get_flag(dev->spi, - rssi_exceeded_threshold)); + rf69_read_reg(spi, REG_IRQFLAGS1) + & MASK_IRQFLAGS1_RSSI); if (retval) /* wait was interrupted */ goto abort; dev->interrupt_rx_allowed = false; @@ -510,7 +510,7 @@ static int pi433_receive(void *data) /* get payload */ while (dev->rx_position < bytes_total) { - if (!rf69_get_flag(dev->spi, payload_ready)) { + if (!(rf69_read_reg(spi, REG_IRQFLAGS2) & MASK_IRQFLAGS2_PAYLOAD_READY)) { retval = wait_event_interruptible(dev->fifo_wait_queue, dev->free_in_fifo < FIFO_SIZE); if (retval) /* wait was interrupted */ diff --git a/drivers/staging/pi433/rf69.c b/drivers/staging/pi433/rf69.c index 1a0081ebf63c..e5b23ab39c69 100644 --- a/drivers/staging/pi433/rf69.c +++ b/drivers/staging/pi433/rf69.c @@ -578,50 +578,6 @@ int rf69_set_dio_mapping(struct spi_device *spi, u8 dio_number, u8 value) return rf69_write_reg(spi, dio_addr, dio_value); } -bool rf69_get_flag(struct spi_device *spi, enum flag flag) -{ - switch (flag) { - case mode_switch_completed: - return (rf69_read_reg(spi, REG_IRQFLAGS1) & MASK_IRQFLAGS1_MODE_READY); - case ready_to_receive: - return (rf69_read_reg(spi, REG_IRQFLAGS1) & MASK_IRQFLAGS1_RX_READY); - case ready_to_send: - return (rf69_read_reg(spi, REG_IRQFLAGS1) & MASK_IRQFLAGS1_TX_READY); - case pll_locked: - return (rf69_read_reg(spi, REG_IRQFLAGS1) & MASK_IRQFLAGS1_PLL_LOCK); - case rssi_exceeded_threshold: - return (rf69_read_reg(spi, REG_IRQFLAGS1) & MASK_IRQFLAGS1_RSSI); - case timeout: - return (rf69_read_reg(spi, REG_IRQFLAGS1) & MASK_IRQFLAGS1_TIMEOUT); - case automode: - return (rf69_read_reg(spi, REG_IRQFLAGS1) & MASK_IRQFLAGS1_AUTOMODE); - case sync_address_match: - return (rf69_read_reg(spi, REG_IRQFLAGS1) & MASK_IRQFLAGS1_SYNC_ADDRESS_MATCH); - case fifo_full: - return (rf69_read_reg(spi, REG_IRQFLAGS2) & MASK_IRQFLAGS2_FIFO_FULL); -/* - * case fifo_not_empty: - * return (rf69_read_reg(spi, REG_IRQFLAGS2) & MASK_IRQFLAGS2_FIFO_NOT_EMPTY); - */ - case fifo_empty: - return !(rf69_read_reg(spi, REG_IRQFLAGS2) & MASK_IRQFLAGS2_FIFO_NOT_EMPTY); - case fifo_level_below_threshold: - return (rf69_read_reg(spi, REG_IRQFLAGS2) & MASK_IRQFLAGS2_FIFO_LEVEL); - case fifo_overrun: - return (rf69_read_reg(spi, REG_IRQFLAGS2) & MASK_IRQFLAGS2_FIFO_OVERRUN); - case packet_sent: - return (rf69_read_reg(spi, REG_IRQFLAGS2) & MASK_IRQFLAGS2_PACKET_SENT); - case payload_ready: - return (rf69_read_reg(spi, REG_IRQFLAGS2) & MASK_IRQFLAGS2_PAYLOAD_READY); - case crc_ok: - return (rf69_read_reg(spi, REG_IRQFLAGS2) & MASK_IRQFLAGS2_CRC_OK); - case battery_low: - return (rf69_read_reg(spi, REG_IRQFLAGS2) & MASK_IRQFLAGS2_LOW_BAT); - default: - return false; - } -} - int rf69_set_rssi_threshold(struct spi_device *spi, u8 threshold) { /* no value check needed - u8 exactly matches register size */ diff --git a/drivers/staging/pi433/rf69.h b/drivers/staging/pi433/rf69.h index 3ff5609ecf2e..78fa0b8bab8b 100644 --- a/drivers/staging/pi433/rf69.h +++ b/drivers/staging/pi433/rf69.h @@ -42,7 +42,6 @@ int rf69_set_bandwidth_during_afc(struct spi_device *spi, int rf69_set_ook_threshold_dec(struct spi_device *spi, enum threshold_decrement threshold_decrement); int rf69_set_dio_mapping(struct spi_device *spi, u8 dio_number, u8 value); -bool rf69_get_flag(struct spi_device *spi, enum flag flag); int rf69_set_rssi_threshold(struct spi_device *spi, u8 threshold); int rf69_set_preamble_length(struct spi_device *spi, u16 preamble_length); int rf69_enable_sync(struct spi_device *spi); diff --git a/drivers/staging/pi433/rf69_enum.h b/drivers/staging/pi433/rf69_enum.h index b33a33a85d3b..9dc906124e98 100644 --- a/drivers/staging/pi433/rf69_enum.h +++ b/drivers/staging/pi433/rf69_enum.h @@ -84,26 +84,6 @@ enum threshold_decrement { dec_16times }; -enum flag { - mode_switch_completed, - ready_to_receive, - ready_to_send, - pll_locked, - rssi_exceeded_threshold, - timeout, - automode, - sync_address_match, - fifo_full, -// fifo_not_empty, collision with next enum; replaced by following enum... - fifo_empty, - fifo_level_below_threshold, - fifo_overrun, - packet_sent, - payload_ready, - crc_ok, - battery_low -}; - enum fifo_fill_condition { after_sync_interrupt, always -- 2.34.1