Received: by 2002:a05:6a10:413:0:0:0:0 with SMTP id 19csp1614619pxp; Thu, 17 Mar 2022 12:46:04 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx89LY256YxYdqPCTJI/ZOLVAvtpgodt6mfYBBPC5d3uulsT3X2Z4//TQ8Rf9xCRY6X6Rdl X-Received: by 2002:a17:903:41c8:b0:151:d046:ad8b with SMTP id u8-20020a17090341c800b00151d046ad8bmr6817680ple.83.1647546364457; Thu, 17 Mar 2022 12:46:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647546364; cv=none; d=google.com; s=arc-20160816; b=tJAogz+WRVYfRzZccMrbQKT6X6Yuu2LgCCM94heOefCTswIM0F7OXflV/z+glq6gnU wsWH3y6XyDLFNT3sulFMglby+u1NQJEwENPELRGrepj+J9Hh1dy2bT4+rJbPzdaXTwC4 lY8jF8ORe72CmOoZ6K31Cd4a/wCk3wdodBvR2KGn2WK92I5aZgWpOp9r8xzCZRjNjxyH 9mnO2Swo9HGQhKyspBQXFbSYF76dvMTE65uirkg5yiW1v/yD8zgi8ngC+BD8acG1n4OE pU6ynjtpQukd32q6fXbnCzIXRCs/88lRF3rj8P9vLJL2b5PWzTycT64qLH+CLR3f1DOU 8B8g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id:dkim-signature; bh=wd7lewYliHAcK9B1oQpbmqF6OsH5xuRNHBK6tQJLbVU=; b=B55ipR4EBKiVWWpDTtMCcCC8TSLn77wsZfMwXUW/gOmkivnZpSTmy50425cS46l0Is CFAlfj0b9HcH/pQPADK7cLOWtcjIUCi9XRDZM8GiG9/P7IF5IjQpuNRl8zeNbaEjKUBG y0+UjU4/O1JYlUaJUrdIQvAXMqF60qchE1SzFiR7PkhoVwv7blTW15p41Z3NODEuvUQW WWx8eiOe1wQFJoY7l3eVBTNpzxO6u4QyYdW2xx9PcOrtj0P8mSyW+gAXUHf4HHCMepT9 zlNHX5ICZDv8ZRCtTGEzz23dHeJi81kNAo/jx4Ney5AAtDDhyROnSGDDAEP7avY1psTS tMzg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=jEXp0qhv; spf=softfail (google.com: domain of transitioning linux-wireless-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id e19-20020a63ee13000000b003816043f10bsi2998556pgi.768.2022.03.17.12.46.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 17 Mar 2022 12:46:04 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-wireless-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=@intel.com header.s=Intel header.b=jEXp0qhv; spf=softfail (google.com: domain of transitioning linux-wireless-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 17A895F5A; Thu, 17 Mar 2022 12:43:09 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237138AbiCQSBM (ORCPT + 70 others); Thu, 17 Mar 2022 14:01:12 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41720 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230443AbiCQSBL (ORCPT ); Thu, 17 Mar 2022 14:01:11 -0400 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E6471208C20; Thu, 17 Mar 2022 10:59:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1647539995; x=1679075995; h=message-id:date:mime-version:subject:to:cc:references: from:in-reply-to:content-transfer-encoding; bh=mrEoFatINvPQoB5zn9lLrgr2v+iqz1+qM+CwhwiS228=; b=jEXp0qhvOql3l3QwEGzmrXKvXEwVHeR/Pv2AImmVnYtCSLjkKTfRXNdg qlBsTnPs0xcWo0yuzFy9yyksJVXRYOAOycWDCvpfI/qFrau/KHtf58AOU r6ceOpz7v9iCe5QjgJwWyWzZSXpmqOD3itnVe1nqjQ5bvRcxDTxENhWbG nJt1jwGA9p5nsqCYXm2k39mARfd93ipR9KuVe/yYl3X3HtJkKBppH7dsg LoYzUtoVFw3zO8TTFyKgKs/sHp1l4rt3qLHgNKViBilrbD0cM+1LPVyx3 v1TlcHLq3/pDc0kPdRDzDbconPhW//XCx63vzdcMNqmABfQ7EmRuhp4SW w==; X-IronPort-AV: E=McAfee;i="6200,9189,10289"; a="236883755" X-IronPort-AV: E=Sophos;i="5.90,188,1643702400"; d="scan'208";a="236883755" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Mar 2022 10:59:54 -0700 X-IronPort-AV: E=Sophos;i="5.90,188,1643702400"; d="scan'208";a="581386489" Received: from rmarti10-mobl2.amr.corp.intel.com (HELO [10.212.192.243]) ([10.212.192.243]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Mar 2022 10:59:53 -0700 Message-ID: <4131e7b3-94f1-40f1-3d4f-df44cda0e5da@linux.intel.com> Date: Thu, 17 Mar 2022 10:59:53 -0700 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.7.0 Subject: Re: [PATCH net-next v5 05/13] net: wwan: t7xx: Add control port Content-Language: en-US To: Sergey Ryazanov Cc: netdev@vger.kernel.org, linux-wireless@vger.kernel.org, Jakub Kicinski , David Miller , Johannes Berg , Loic Poulain , M Chetan Kumar , chandrashekar.devegowda@intel.com, Intel Corporation , chiranjeevi.rapolu@linux.intel.com, =?UTF-8?B?SGFpanVuIExpdSAo5YiY5rW35YabKQ==?= , amir.hanania@intel.com, Andy Shevchenko , dinesh.sharma@intel.com, eliot.lee@intel.com, ilpo.johannes.jarvinen@intel.com, moises.veleta@intel.com, pierre-louis.bossart@intel.com, muralidharan.sethuraman@intel.com, Soumya.Prakash.Mishra@intel.com, sreehari.kancharla@intel.com, madhusmita.sahu@intel.com References: <20220223223326.28021-1-ricardo.martinez@linux.intel.com> <20220223223326.28021-6-ricardo.martinez@linux.intel.com> From: "Martinez, Ricardo" In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-3.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,NICE_REPLY_A,RDNS_NONE,SPF_HELO_NONE, T_SCC_BODY_TEXT_LINE autolearn=unavailable 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-wireless@vger.kernel.org Hi Sergey, On 3/6/2022 6:55 PM, Sergey Ryazanov wrote: > On Thu, Feb 24, 2022 at 1:35 AM Ricardo Martinez > wrote: >> From: Haijun Liu >> >> Control Port implements driver control messages such as modem-host >> handshaking, controls port enumeration, and handles exception messages. >> >> The handshaking process between the driver and the modem happens during >> the init sequence. The process involves the exchange of a list of >> supported runtime features to make sure that modem and host are ready >> to provide proper feature lists including port enumeration. Further >> features can be enabled and controlled in this handshaking process. >> ... >> +static void t7xx_core_hk_handler(struct t7xx_modem *md, struct t7xx_fsm_ctl *ctl, >> + enum t7xx_fsm_event_state event_id, >> + enum t7xx_fsm_event_state err_detect) >> +{ >> + struct t7xx_sys_info *core_info = &md->core_md; >> + struct device *dev = &md->t7xx_dev->pdev->dev; >> + struct t7xx_fsm_event *event, *event_next; >> + unsigned long flags; >> + void *event_data; >> + int ret; >> + >> + t7xx_prepare_host_rt_data_query(core_info); >> + >> + while (!kthread_should_stop()) { >> + bool event_received = false; >> + >> + spin_lock_irqsave(&ctl->event_lock, flags); >> + list_for_each_entry_safe(event, event_next, &ctl->event_queue, entry) { >> + if (event->event_id == err_detect) { >> + list_del(&event->entry); >> + spin_unlock_irqrestore(&ctl->event_lock, flags); >> + dev_err(dev, "Core handshake error event received\n"); >> + goto err_free_event; >> + } else if (event->event_id == event_id) { >> + list_del(&event->entry); >> + event_received = true; >> + break; >> + } >> + } >> + spin_unlock_irqrestore(&ctl->event_lock, flags); >> + >> + if (event_received) >> + break; >> + >> + wait_event_interruptible(ctl->event_wq, !list_empty(&ctl->event_queue) || >> + kthread_should_stop()); >> + if (kthread_should_stop()) >> + goto err_free_event; >> + } >> + >> + if (ctl->exp_flg) >> + goto err_free_event; >> + >> + event_data = (void *)event + sizeof(*event); > In the V2, the event structure has a data field. But then it was > dropped and now the attached data offset is manually calculated. Why > did you do this, why event->data is not suitable here? It was removed along with other zero length arrays, although it was declared as an empty array. The next iteration will use C99 flexible arrays where required, instead of calculating the data offset manually. ...