Re: [PATCH 09/15] rpmsg: smd: Drop unnecessary condition for channel creation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Stephan,

On Mittwoch, 12. Jänner 2022 22:39:53 CET Stephan Gerhold wrote:
> Hi,
> 
> +Cc Srinivas
> 
> On Wed, Jan 12, 2022 at 08:40:58PM +0100, Luca Weiss wrote:
> > From: Vladimir Lypak <vladimir.lypak@xxxxxxxxx>
> > 
> > RPM Firmware on variety of newer SoCs such as MSM8917 (also likely
> > MSM8937, MSM8940, MSM8952), MSM8953 and on some MSM8916 devices) doesn't
> > initiate opening of the SMD channel if it was previously opened by
> > bootloader. This doesn't allow probing of smd-rpm driver on such devices
> > because there is a check that requires RPM this behaviour.
> > 
> > Signed-off-by: Vladimir Lypak <vladimir.lypak@xxxxxxxxx>
> > Signed-off-by: Luca Weiss <luca@xxxxxxxxx>
> > Reviewed-by: Konrad Dybcio <konrad.dybcio@xxxxxxxxxxxxxx>
> 
> This is effectively a "Revert "Revert "rpmsg: smd: Create device for all
> channels""":
> 
> https://lore.kernel.org/linux-arm-msm/20171212235857.10432-3-bjorn.andersson
> @linaro.org/
> https://lore.kernel.org/linux-arm-msm/20180315181244.8859-1-bjorn.andersson
> @linaro.org/
> 
> Won't this cause the same regression reported by Srinivas again?
> 

Do you have any suggestion on another way to solve this? Without this commit 
the regulators just won't probe at all, I haven't looked very deep into it 
though given this patch solves it.

I guess worst case it'll become a devicetree property to enable this quirk?

Regards
Luca

> Thanks,
> Stephan
> 
> > ---
> > 
> >  drivers/rpmsg/qcom_smd.c | 8 +-------
> >  1 file changed, 1 insertion(+), 7 deletions(-)
> > 
> > diff --git a/drivers/rpmsg/qcom_smd.c b/drivers/rpmsg/qcom_smd.c
> > index 8da1b5cb31b3..6a01ef932b01 100644
> > --- a/drivers/rpmsg/qcom_smd.c
> > +++ b/drivers/rpmsg/qcom_smd.c
> > @@ -1280,19 +1280,13 @@ static void qcom_channel_state_worker(struct
> > work_struct *work)> 
> >  	unsigned long flags;
> >  	
> >  	/*
> > 
> > -	 * Register a device for any closed channel where the remote 
processor
> > -	 * is showing interest in opening the channel.
> > +	 * Register a device for any closed channel.
> > 
> >  	 */
> >  	
> >  	spin_lock_irqsave(&edge->channels_lock, flags);
> >  	list_for_each_entry(channel, &edge->channels, list) {
> >  	
> >  		if (channel->state != SMD_CHANNEL_CLOSED)
> >  		
> >  			continue;
> > 
> > -		remote_state = GET_RX_CHANNEL_INFO(channel, state);
> > -		if (remote_state != SMD_CHANNEL_OPENING &&
> > -		    remote_state != SMD_CHANNEL_OPENED)
> > -			continue;
> > -
> > 
> >  		if (channel->registered)
> >  		
> >  			continue;








[Index of Archives]     [Linux Sound]     [ALSA Users]     [ALSA Devel]     [Linux Audio Users]     [Linux Media]     [Kernel]     [Photo Sharing]     [Gimp]     [Yosemite News]     [Linux Media]

  Powered by Linux