From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7346E3E7173 for ; Wed, 19 Aug 2026 09:48:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787132891; cv=none; b=hnZUAeTl9nrsFuuqEdn1R5h3wLx6w6sHkMhxMUmnfL3a9KNK4nYkGOkYRLAH7k99L300xCMJlyMFbbFlt7H+RXCqz9xMKIYjjTmDZeeX4sHrsBWNSTYEIKJ4+LTAoEFr3vHJFaWjQTnoEB0/ooJJx9pCp9MYK9YGMrAX8zdtJrU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787132891; c=relaxed/simple; bh=hzjsG/UFK3xGq69qyQJ+CCQJo/ZUjvghHqH0/kNQHmA=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=Z/rT8Z+JdgiLjIMdkglTXXEcJU6vRYAZLMxUR/S/Gu+tGode5u6GQAiO1rSb3KgEFWtsCw1mcHqQjdyjw+oJI49WTGolrkmA7z/3SIJpnNlKTpIaVCwfA4N+rN09V2LcijSliPeRgFZ+tzZEnhpNoZgxfO6hqXE+w2JgOxhjrxY= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=OajG3Jtt; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=PCPXh6A0; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="OajG3Jtt"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="PCPXh6A0" Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67J6YuI4532884 for ; Wed, 19 Aug 2026 09:48:09 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= z/1be8aM5TXGlubA/GJqZ/wk5hI8mCiMFIwpW4onUJ8=; b=OajG3JttXLjOZF+r Uqq3yyeACNN9GqZvOBefwGv3FfvcmObgobj/cdR2IDsa5YEU1V9RYPIQIfRvLK7n VJub765fttSMXfnjVqPedL4k+ugSFnULiggghUp8SNJFEnUys3zhm6b2Mv1RFeeI bgPZK8A9u+G7yVf9uM4VaoRMbIv2E2Nl+lRd38dJQkiL16c6Um5R4lZAyFpMuWca MrsJgYQRbGf6FeQ1m4sP/Ga+UQ4c41J4ClXAFd3PIN55IlIPT7MaOAfFHRAEQ0Qm iEdfRM0/tZQIDMuiAaMi3QC06npsG4blwXZeHz/H2qbcHRutQOHLYVJEhcDIPW34 NvY4jg== Received: from mail-pj1-f70.google.com (mail-pj1-f70.google.com [209.85.216.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4g4yfm2fyw-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 19 Aug 2026 09:48:09 +0000 (GMT) Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-381250979d5so1067237a91.0 for ; Wed, 19 Aug 2026 02:48:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1787132889; x=1787737689; darn=vger.kernel.org; h=content-transfer-encoding:content-type:in-reply-to:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:from:to:cc:subject:date:message-id:reply-to :content-type; bh=z/1be8aM5TXGlubA/GJqZ/wk5hI8mCiMFIwpW4onUJ8=; b=PCPXh6A04c52HB9RrvJxNoUHRDRA+TPY9A052i3SrYVh5iQnu/VdwQhtzLYLIVJq4k xqTJsS+BgqmIiTaSLUJGcbQktl3sfu2K4hy+gs4ObygP34U2qeHUrb7i71K12QraAhJG Now0HTghQOCCVbh17BPjhNUKp0tc0AVORA5tghJ3zdcD4ql0bFslAJ9vmYfDEqxZblM/ eppM6gpRyDAab8nbYLHTF7S8XpSDTNmt4GGpGYbglZ/sSpoaWEmZe+h9AUcW3bDO0lQH vPJvYqQ+gIAsz/lCTj7v/9V14eFMSZKDNBWdNogjtleyRJPrEPdmSOxOWIO1EnnXLsei ULBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787132889; x=1787737689; h=content-transfer-encoding:content-type:in-reply-to:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=z/1be8aM5TXGlubA/GJqZ/wk5hI8mCiMFIwpW4onUJ8=; b=CBNrzYWdqOrsnjKxUbRc8pcKv2pT2VvzvqzfPY3pM9SC/NiLPkI4OhKMwpasH4dVf4 JG9EW2UsNHSMu1INc6qU6uLV2PUn7q/Ek6OqiFpueg2TZ7bGKi85IFwgJlFNa3kn+bxU i6bl8pa0Fc8mHYX5xIW20Bhu1lvvjyIO08EJbVovfKbn/w3EQAIUwtArtyLxgJ96qeNe uTyQECKQj6ggQ2cRA3Cc0eUTvWCCsfYzQ0t/jter1wH3GoEBUc0jv184VYoLDafE9RWR 4vhw40Ovn1C/qEXDZAc7cqCtTf+EA/iIPx3V+QTrfITohl+WxB0XWDPm7xjP4rM/Z/uh m4Mw== X-Forwarded-Encrypted: i=1; AHgh+Rry270udtuTdHU0qgw6UQl0/7DDN1OvCAubd+9wyraCIGIbcodukowJr/faXhDvjObzW741AZS0wT0ApI0=@vger.kernel.org X-Gm-Message-State: AFuF++lgbhcwTbG2YF6AWUPETbKfVuPcUWpLXibomh8KxYLxcx1aQFor K+Ar+L5TMAxJZ+mEJldYzC/RsYjAHMQJBxWq1b3P8SvBGNccObYw8h3Yxsvu/PwTYQoUre7OQb6 gXLIyqAXV+65r0yftpeghwumx678Qr/V+R5FHp++FOzhiqOIkthxVQgMf5ygNPPAFq7A= X-Gm-Gg: AR+sD13V8MLwg+dBgJW8yILgHQv6er1riaI8zz3i/t1FoSBkMj7cI4rIZ2MUCsVLz5Y xrujpk43CUmR+nww9HMyDxMAWvf8LmOOi4b/ttFBjKbVmfcRDFt/L7sOhWPDRW7mqf4G1j8BIth OTA6aWqvYthb5S7mk9ARiE5ZK1r8z/q/2KBhHWSiWK9jYBbMiDTABqjp+jVeE9P8kbS9Q+2EdXe wpphJkA9px1tQ9gQMvyCkNYaLL+Cy4BQA5xUB4XdaD66PXtvdYovfGbltdGJ0PYKJiL/TQAdi3L OPaWtG2XdGeTtq/S9+nBPw2PSqkOXvmayHVoCoWlElhR+u9gqRysZ1+vvqfuurM1jATYLw0GfNk VUJ9pN5feUm6QOcry1zedrLtpdMp+2g== X-Received: by 2002:a17:90a:d60d:b0:392:6638:2e6a with SMTP id 98e67ed59e1d1-3958146f387mr6302033a91.13.1787132888790; Wed, 19 Aug 2026 02:48:08 -0700 (PDT) X-Received: by 2002:a17:90a:d60d:b0:392:6638:2e6a with SMTP id 98e67ed59e1d1-3958146f387mr6301962a91.13.1787132888341; Wed, 19 Aug 2026 02:48:08 -0700 (PDT) Received: from [10.217.216.255] ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3957fb304easm2033003a91.14.2026.08.19.02.48.05 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 19 Aug 2026 02:48:07 -0700 (PDT) Message-ID: <3dad5ae0-d5ff-4de5-9d02-2ccfd2a10127@oss.qualcomm.com> Date: Wed, 19 Aug 2026 15:18:04 +0530 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v5 1/3] bus: mhi: host: clients: Add loopback driver with sysfs interface To: =?UTF-8?Q?Uwe_Kleine-K=C3=B6nig?= Cc: Manivannan Sadhasivam , Jeff Hugo , mhi@lists.linux.dev, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Krishna Chaitanya Chundru References: <20260817-loopback_mhi-v5-0-50efc7360b7f@oss.qualcomm.com> <20260817-loopback_mhi-v5-1-50efc7360b7f@oss.qualcomm.com> Content-Language: en-US From: Sumit Kumar In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Proofpoint-Spam-Info: AW1haW4tMjYwODE5MDA3NCBTYWx0ZWRfX3X7aMcV1QC5v 8Y87yGVoe28zQeGbntZnOENUKnweAX4i01XO5T/33e9jsfSHZKWl1JpzqppuX/MReW9g+f7s0pl YDCvpkKBKU4MU8BpsowKV9FylOmoaBA= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODE5MDA3NCBTYWx0ZWRfX1ZY6Y7pmNqgl vcyDgc9X+Da8QfsA/f3LX5M9C9QLwJ8MmCPMrXh+hfB6WJFB6y5UkFy8xys+QJW+FNL6TvQSO/F uR2lv3QWTuxfaDqbKLJkgdykXNxvBcKWIgvxM6YyL1PG9LBB5knWOpUxrzOnbdXnjmjbSdPmAKJ qTh5qEvKmpi/5JUxlsOEc/aae/wKcSC1bUyw7iJmCgyyRkoTtBzmDhM5YtoxTESqoOpKnPbqtO0 n1VEENsCi+HpKVYc/4JIJMBqkBycjq31lr/cUQQHRdnZERS/Bmsfmqhxw2ePZ+p2GbhqVq7aJ+z 8NmfN306TkVHIk8KMVgazTCt/JI3MiC7Sz90XtRtlopzTbdp+bYKemj6jJ6s/v5z91dNco+Caz9 IbR2DPsXqpJrM7Nx/9/+p6EvnYKyn1hi7cn9YO9CsWSb/g9v0EdqotvWgm2LN8FChgV/j8qD/EO qjQ6GEu8t6JQje8voaA== X-Proofpoint-ORIG-GUID: 5ExrBHu_wZe9H2NOUg6p72AuTlAUKha1 X-Authority-Analysis: v=2.4 cv=bN0m5v+Z c=1 sm=1 tr=0 ts=6a857bd9 cx=c_pps a=0uOsjrqzRL749jD1oC5vDA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=UIBoQwfrnP7GMt42N9QA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=mQ_c8vxmzFEMiUWkPHU9:22 X-Proofpoint-GUID: 5ExrBHu_wZe9H2NOUg6p72AuTlAUKha1 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-19_02,2026-08-18_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 phishscore=0 priorityscore=1501 clxscore=1015 adultscore=0 impostorscore=0 lowpriorityscore=0 suspectscore=0 malwarescore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608190074 On 8/18/2026 2:20 PM, Uwe Kleine-König wrote: > Hello, > > On Mon, Aug 17, 2026 at 03:44:34PM +0530, Sumit Kumar wrote: >> +#include >> +#include > Please rely on to provide mhi_device_id and drop the > inclusion for . The latter header is ugly and > should go away soon. thanks, Will rebase and fix it > >> [...] >> +static struct attribute *mhi_loopback_attrs[] = { >> + &dev_attr_tre_size.attr, >> + &dev_attr_max_tre_size.attr, >> + &dev_attr_num_tre.attr, >> + &dev_attr_start.attr, >> + NULL, > Please no , after sentinel entries. Acknowledged, will remove it. > >> +}; >> + >> +static const struct attribute_group mhi_loopback_group = { >> + .attrs = mhi_loopback_attrs, >> +}; >> + >> +static int mhi_loopback_probe(struct mhi_device *mhi_dev, >> + const struct mhi_device_id *id) >> +{ >> + struct mhi_loopback *loopback; >> + int ret; >> + >> + loopback = devm_kzalloc(&mhi_dev->dev, sizeof(*loopback), GFP_KERNEL); >> + if (!loopback) >> + return -ENOMEM; >> + >> + loopback->mdev = mhi_dev; >> + loopback->tre_size = MHI_LOOPBACK_DEFAULT_TRE_SIZE; >> + loopback->num_tre = MHI_LOOPBACK_DEFAULT_NUM_TRE; >> + >> + mutex_init(&loopback->lb_mutex); >> + init_completion(&loopback->comp); >> + >> + dev_set_drvdata(&mhi_dev->dev, loopback); >> + >> + ret = mhi_prepare_for_transfer(mhi_dev); >> + if (ret) { >> + dev_err(&mhi_dev->dev, "Failed to prepare for transfers: %d\n", ret); > dev_err_probe() please. Sure. > >> + return ret; >> + } >> + >> + ret = sysfs_create_group(&mhi_dev->dev.kobj, &mhi_loopback_group); >> + if (ret) { >> + dev_err(&mhi_dev->dev, "Failed to create sysfs attributes: %d\n", ret); >> + mhi_unprepare_from_transfer(mhi_dev); >> + return ret; >> + } >> + >> + return 0; >> +} >> + >> +static void mhi_loopback_remove(struct mhi_device *mhi_dev) >> +{ >> + /* Blocks until any in-progress store() has returned */ >> + sysfs_remove_group(&mhi_dev->dev.kobj, &mhi_loopback_group); >> + mhi_unprepare_from_transfer(mhi_dev); >> +} >> + >> +static const struct mhi_device_id mhi_loopback_id_table[] = { >> + { .chan = "LOOPBACK"}, >> + {} > { } (i.e. a space between the curly braces) is the more common way to > write that. Please also add a space before the closing } in the line > above. Will fix this too. > >> +}; >> +MODULE_DEVICE_TABLE(mhi, mhi_loopback_id_table); > Best regards > Uwe