Citation: 6B_363/2022 E. 4

Le recours doit être partiellement admis, l'arrêt attaqué annulé et la cause renvoyée à la cour cantonale afin qu'elle rende une nouvelle décision dans le sens des considérants. Pour le surplus, le recours est rejeté. Dans la mesure où le recourant obtient gain de cause, il ne supporte pas de frais et peut prétendre à des dépens réduits pour ce qui concerne l'admission partielle de son recours (art. 68 al. 1 LTF). La demande d'assistance judiciaire est pour cette partie de la procédure sans objet. Elle est admise pour le surplus, les conclusions du recourant, qui ne dispose pas de ressources suffisantes, n'étant pas d'emblée vouées à l'échec (art. 64 al. 1 LTF). Il y a dès lors lieu de lui désigner son conseil en qualité d'avocat d'office et de lui allouer une indemnité à titre d'honoraires, qui sera supportée par la caisse du Tribunal fédéral (art. 64 al. 2 LTF). Par ces motifs, le Tribunal fédéral prononce :