Busca não percorre a lista toda

Tenho um exercício pra fazer em C em que tenho uma lista sequencial não ordenada e que pode ter chaves repetidas e preciso retornar quantas vezes um numero x aparece nessa lista.
acontece que acredito que meu código está lendo somente a primeira posição e retornando o resultado. O metodo ocorrrencias precisa funcionar

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <string.h>
#include<stdbool.h>

#define MAX 50
typedef struct{
int chave;
} REGISTRO;

typedef struct {
 REGISTRO A[MAX];
 int nroElem;
}LISTA;

void inicializarListaSequencial(LISTA * lista) {
lista->nroElem = 0;
}

bool inserirElemListaSeq(int ch, int i, LISTA* l)
{
    int j;
    if((l->nroElem>=MAX)||(i<0)||(i>(l->nroElem)))
        return false;
    if((l->nroElem>0)&&(i<l->nroElem))
        for(j=l->nroElem;j>=(i+1);++j){
            l->A[j]=l->A[j-1];
        }
    l->A[i].chave=ch;
    l->nroElem++;
    return true;
}
void exibirLista(LISTA l) {
int i;
for (i=0; i < l.nroElem; i++)
 printf("%d ", l.A[i].chave);
}

int ocorrencias (LISTA* l, int x){
int i;
int count=0;

for (i=0;i< l->nroElem; i++){
    if(l->A[i].chave = x){
        count++;
        }
    else count--;

    }
    if (count > 0){
        return count;
        }
    else return -1;
}

int tamanho(LISTA*l) {
return(l->nroElem);
}


int main()
{
    LISTA lista;
    inicializarListaSequencial(&lista);
    inserirElemListaSeq(5,0,&lista);
    inserirElemListaSeq(5,1,&lista);
    inserirElemListaSeq(6,2,&lista);
    inserirElemListaSeq(5,3,&lista);
    inserirElemListaSeq(4,4,&lista);
    inserirElemListaSeq(5,5,&lista);
    inserirElemListaSeq(3,6,&lista);
    printf("Tamanho da Lista: %i\n",tamanho(&lista));
    exibirLista(lista);
    printf("Ocorrencias do número no vetor: %i\tEsperado: 4\n\n",ocorrencias(&lista, 5));}

Você está fazendo uma atribuição e não uma comparação.

Comparação é ==? Eu tentei e não foi

Eu acho que o problema é inserir os valores em cada posição da lista
Ele só está lendo a primeira e resto não, mas não consigo entender porque

Sim, comparação é ==.