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 2FBE431ED93 for ; Tue, 26 May 2026 10:53:50 +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=1779792833; cv=none; b=ntSZqSjr0HOGUgg3PAADaAtw9ROPgOW/PL0C8A+KjE/g0WxDwY8HVzAA/d/8LniolpnNpp+BhUNGMSAbMmSs6g8qN+ai6j/vilBmXEdUcKyyuH6NXuHsrJombWWY0FRt6F56qInXBJhQLfWSZlUnJCcqbIyNwJDZCLFlJA9Yzi8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779792833; c=relaxed/simple; bh=eRFI++GY0h29Oj/z1eOEYeAN0omCshxCgUg60gOKDYc=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=DdvsenulqQDjs6oXwayAtFJQmXjQD97hZfkvIaUU1l3IP1qHMWlcno/Ip/9s0K5AqNRfqeoHyxLfUVy92gLEOREeQFu8yOXBtusQpTy0Katr8kNHyNSKk5szjRVpPY/MbJAu/qeWnb/igzNEgbix3pHt6XMB2R3l3Wl4ehhujxo= 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=RmwL3f5m; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Uqb0emVQ; 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="RmwL3f5m"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Uqb0emVQ" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64Q9G7cW2823039 for ; Tue, 26 May 2026 10:53:50 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= qJTrqXlFYEY9B3t+nASH9FO5EeUSK4buZxILBrl96ow=; b=RmwL3f5mJSVj/kMR yfgSsGb1x2Rcqoy94GpyJnxCTrAYJDJSK8t7jNrw1x1dlphWO09XUsuG6LwvE1ID JQ/VAo+XPlXNiE6De+rl8s5Mcakpfmb9u1VwQb107CWEABzIveHNWh8qvXcNMrFX LNEZT5sxZatOuvUW2iJyA4O4Zi3kMc8xhLvL6AfRnLOvkdoSkNeHYl2qIhmObHg8 6RMSTJK+0Q6ZKcDIiOCRZzl9DTsbhXy8AhzYTMjC7xphQMMchvUH60npcHnCL1s7 TEy0dd9NWWrcAVQstkS21I4y9wjoWflblaSZjhE5vuO6dAeAf5JyoaEL5/akHmTL x6raEA== Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ecqvwud9d-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 26 May 2026 10:53:49 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2b458add85aso114585365ad.2 for ; Tue, 26 May 2026 03:53:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1779792829; x=1780397629; darn=vger.kernel.org; h=content-transfer-encoding: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; bh=qJTrqXlFYEY9B3t+nASH9FO5EeUSK4buZxILBrl96ow=; b=Uqb0emVQ/3kExVuMJOCG8pmLJ9zXhMgDJ+iltvfaj5rcJa38MC3YRUZyMg786AxKBx /oW7VIL/pmdKObdAKC37LqBP4p1BZI1X86WGIT3i3cKEsvV2tUQPpU8ar01J3+YkyniX ALkLVgkc4VJqWtBoqbXSKjx00J/beVhjjs78QHBNjjCzKQI+n+giutv9ObnNpA164+ob wM7n0SiCax/o6bO4g1A6WNSAesaSnpyPkMxI6swEsGWCCq+ekVo7PGNJ9ZoMyWdF1QLN O3Y1Tc03RsDkDFOKSrDvI609pPc29IvUTE8ubhTmzs9EppH+oASLV+ySoXFJfiU+CgfN R2NA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779792829; x=1780397629; h=content-transfer-encoding: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; bh=qJTrqXlFYEY9B3t+nASH9FO5EeUSK4buZxILBrl96ow=; b=BG0baw1QFfwdHdMkLvwD2BRf39C86FJ/s1w4e5tExLsyedIwjv072wxIOtAaaFg9xN cjbf/kV/kfLekuqDVWr8Y/UeAGMwlrZ2CaLd1Eazy7CMl4NaRpQyVpHkv5+RyyfZC9xa /UIc9vG0+AWQ9ToI4aPBb1bp0FqR4sA5tlgf9i9vvHtL+zXYbQRKBTI0AYBQTmH3gGWT NB6RhqM6NObSeOUoxpmack4OCDkUQrjhcRBsY4gZaiBgY78n6tkYN+YP4T+3IzHhZBe+ HM7tWJYLrrTFs5PBF7pfe/SXIqo+6CKxngR3GsPwSm7zrceKsA/+23XAnE+9WOPgvY33 GYFw== X-Forwarded-Encrypted: i=1; AFNElJ+RR9JSqBJVokAUp4g6j/KDifL90xM3RXWcTfZN6m5w/c1sr5hXfDiVHlyfak/HBGWmCE8FNXHwXA==@vger.kernel.org X-Gm-Message-State: AOJu0YyMfpWFunLCY+5V9PE9FLP4Jv2XmvwgpwEgo0zaL2JryCzK35Y/ Hp4dVHUZ/qAROdal/FPr/shyWIEOasiUyAk/9dzIhUPz3dBSKNhwbAhhHJaC320N0N+1dpS8v/7 Q0+dfJt2BNI9uPJe9cpQcHfzhRvtRDsRkf7NyHO5o/p3bHsRRcCSo24SHCZRNBg== X-Gm-Gg: Acq92OFX9LCETgnAq0KcXrZE2mw3MmLhkiQKIlta7dFhnKGOrCEryCps+7cRlE2+/g3 Cex/i2wfHUQNcRVC+Xtrhfc/zXBWAgLJR9GyXc1aSJOwUD83BkZd1qmRDtDnqylzyJVGOFWZ2an dZBaQuT3uTFRJGGwMEu5OMzI7p42GpTQUJgmOnEoK4SJ4A5LNGl8Ta16A9fjKWElDqjDPhiXlD6 X+LhEJcM0jyE1NFYb2Dq7MwNu0+aF1Frdj1/Cev4Y9jp0ETDW0aiiyqSP/HSWhdzXuAEbdDeRJO IqJJieg3iple0PoHfGzOL2rsA5p42PDJgjlmHajePRO913QZKw0Gjo0TnHzrC79+xP9FcDU01ua JPGCRjDm8kMskaZcWW0Kci6vEvvIzSrdNmeGpZDT+CGBPiIkNvXo= X-Received: by 2002:a17:903:1a0d:b0:2b0:6e60:9582 with SMTP id d9443c01a7336-2beb06354bcmr199316855ad.18.1779792829065; Tue, 26 May 2026 03:53:49 -0700 (PDT) X-Received: by 2002:a17:903:1a0d:b0:2b0:6e60:9582 with SMTP id d9443c01a7336-2beb06354bcmr199316535ad.18.1779792828529; Tue, 26 May 2026 03:53:48 -0700 (PDT) Received: from [10.218.7.34] ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2beb58b3cb3sm123368905ad.40.2026.05.26.03.53.42 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 26 May 2026 03:53:48 -0700 (PDT) Message-ID: Date: Tue, 26 May 2026 16:23:41 +0530 Precedence: bulk X-Mailing-List: linux-pm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 1/2] iio: adc: qcom-spmi-adc5-gen3: Share SDAM0 IRQ with ADC_TM auxiliary driver To: Jonathan Cameron Cc: David Lechner , =?UTF-8?Q?Nuno_S=C3=A1?= , Andy Shevchenko , Amit Kucheria , Thara Gopinath , "Rafael J. Wysocki" , Daniel Lezcano , Zhang Rui , Lukasz Luba , linux-arm-msm@vger.kernel.org, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, Kamal Wadhwa , David Collins , Anjelique Melendez , Neil Armstrong , Stephan Gerhold References: <20260515-gen3_adc_tm-v1-0-39ba29f9b4ab@oss.qualcomm.com> <20260515-gen3_adc_tm-v1-1-39ba29f9b4ab@oss.qualcomm.com> <20260515145450.3b1e9c3d@jic23-huawei> <6c876a92-e572-4cb9-8c31-bbf681a4770b@oss.qualcomm.com> <20260522114722.49b6055e@jic23-huawei> Content-Language: en-US From: Jishnu Prakash In-Reply-To: <20260522114722.49b6055e@jic23-huawei> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Proofpoint-ORIG-GUID: t_1quIYo5PNnuYVUhtxMYa7DRZGhNNIT X-Proofpoint-GUID: t_1quIYo5PNnuYVUhtxMYa7DRZGhNNIT X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTI2MDA5NSBTYWx0ZWRfX8jI/ieVaPoYp 4z9mjyD4EK2Al+ATAl/UpbfNSG2alAVjbHSeMywEeN4Hc4VxZ2vBrMu6FIdEXN/QNSGVJuyrv/Z MbgcAI5ylkkfNyR6HCrUxApQuEAhXyStQTxgFiJEKOgb1Zlo8Lroylv3kVjJR1/Vl0XGDHjo1J1 FhVUPOUblb5kCbLxv4C98ELxvel6QU4UH7qcKSVSXEtPomB4tluzaep1HljANmg4h8ziyJbsAIf jga3iRiHN0hZEgIYp7zSkiWcI/OJvwgd3GwG4Knte1YLCqBnGrZrOGL2ATU2d+aKd+zHXFmx5xI hrKAOoTp+SNMTfXSsAi3P3PRF+H0uq5/T5W6wQLwjFETAfOmwdVbXHPWm3/ofH2wM5yoPcin8h0 guR9Lma1jToiaxFgmCfyVGdtGBGNzyMPoVs9Z24kf25hu9xiuSqO8CVJPuRsOFt9izVpetgpQXO UZuKnq7GUfKyfrC6tIw== X-Authority-Analysis: v=2.4 cv=M4l97Sws c=1 sm=1 tr=0 ts=6a157bbd cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=EUspDBNiAAAA:8 a=XFE9V2JDpLeksAh3blAA:9 a=QEXdDO2ut3YA:10 a=O8hF6Hzn-FEA:10 a=1OuFwYUASf3TG4hYMiVC:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-05-26_02,2026-05-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 bulkscore=0 lowpriorityscore=0 suspectscore=0 clxscore=1015 malwarescore=0 impostorscore=0 spamscore=0 phishscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605260095 Hi Jonathan, On 5/22/2026 4:17 PM, Jonathan Cameron wrote: > On Thu, 21 May 2026 16:16:17 +0530 > Jishnu Prakash wrote: > >> Hi Jonathan, >> >> On 5/15/2026 7:24 PM, Jonathan Cameron wrote: >>> On Fri, 15 May 2026 14:23:44 +0530 >>> Jishnu Prakash wrote: >>> ... >>>> diff --git a/drivers/iio/adc/qcom-spmi-adc5-gen3.c b/drivers/iio/adc/qcom-spmi-adc5-gen3.c >>>> index f8168a14b907..a819c3e627a0 100644 >>>> --- a/drivers/iio/adc/qcom-spmi-adc5-gen3.c >>>> +++ b/drivers/iio/adc/qcom-spmi-adc5-gen3.c >>> >>>> static int adc5_gen3_probe(struct platform_device *pdev) >>>> { >>>> struct device *dev = &pdev->dev; >>>> @@ -818,7 +782,7 @@ static int adc5_gen3_probe(struct platform_device *pdev) >>>> } >>>> >>>> ret = devm_request_irq(dev, adc->dev_data.base[ADC5_GEN3_VADC_SDAM].irq, >>>> - adc5_gen3_isr, 0, >>>> + adc5_gen3_isr, IRQF_ONESHOT | IRQF_SHARED, >>> >>> Sashikio points out that IRQF_ONESHOT is never correct for a non threaded >>> interrupt. The point of that flag is to ensure we don't handle another interrupt >>> until the thread is done. If there isn't a thread then it doesn't do anything >>> (other than omit a warning!) >> >> I tried at first keeping only the IRQF_SHARED flag here, but it seems that >> shared interrupts need to agree on the ONESHOT flag configuration, else the >> second interrupt's IRQ request call fails. >> >> And the ADC_TM interrupt needs to be ONESHOT, since we don't want that interrupt to >> be rearmed before we have notified the thermal framework from the threaded >> part of the handler. So I had to add the IRQF_ONESHOT here too, though it is >> not useful here. > That's an interesting corner case. Maybe the warning needs to be more refined? > (I don't think it checks for shared?) Yes, at the point Sashiko indicated, it looks like there is no check for shared IRQ, although it is checked later in the same function (__setup_irq). > >> >> I think it's best to use a threaded IRQ handler in this driver too. I don't really >> see any meaningful way to split the actions in the interrupt handler here into a primary >> handler and a threaded handler, so is it fine if I just make the primary handler NULL >> and move all the ISR functionality into the threaded handler part ? > > That's fine by me. Just add some comments on why. Thanks for confirming, I'll push again with a comment explaining this change. Thanks, Jishnu > > J >> >> Thanks, >> Jishnu >> >> >>> >>>> adc->dev_data.base[ADC5_GEN3_VADC_SDAM].irq_name, >>>> adc); >>>> if (ret) >>>> diff --git a/include/linux/iio/adc/qcom-adc5-gen3-common.h b/include/linux/iio/adc/qcom-adc5-gen3-common.h >>>> index 6303eaa6640b..39cbfcbdb101 100644 >>>> --- a/include/linux/iio/adc/qcom-adc5-gen3-common.h >>>> +++ b/include/linux/iio/adc/qcom-adc5-gen3-common.h >>>> @@ -205,7 +205,5 @@ int adc5_gen3_get_scaled_reading(struct device *dev, >>>> int adc5_gen3_therm_code_to_temp(struct device *dev, >>>> struct adc5_channel_common_prop *common_props, >>>> u16 code, int *val); >>>> -void adc5_gen3_register_tm_event_notifier(struct device *dev, >>>> - void (*handler)(struct auxiliary_device *)); >>>> >>>> #endif /* QCOM_ADC5_GEN3_COMMON_H */ >>>> >>> >> >