O chip periférico do desligamento do Linux não é redefinido (plataforma Qualcomm)

Cena do problema

Versão do kernel do Linux: versão 4.14.117 do Linux (veja o comando cat / proc / version das informações da versão do kernel)
O ic de carregamento que usamos deve ser redefinido durante o processo de desligamento. A função de redefinir o IC de carregamento foi chamada em .remove, por que o chip não foi redefinido?

Solucionar problemas e resolver problemas

  • Inicialmente, imaginei que o processo de desligamento não tivesse o processo de remoção.Verifique a conjectura, adicione impressão à função de remover, faça o processo de desligamento, verifique as informações do LOG e não encontrou o LOG de impressão adicionado.
  • Fique on-line para encontrar informações relevantes e descobrir que o desligamento requer um processo de desligamento, adicione módulos, aumente as informações de impressão, imprima com sucesso, adicione operação de chip de redefinição e redefinição de desligamento bem-sucedida.

Resolução de problemas

Método: aumentar o processo de desligamento

Atenção

O valor de retorno do encerramento é nulo e o processo de remoção não foi modificado, resultando em erros de compilação. . . Os detalhes ainda precisam de atenção! ! !

Análise simples

  • Há duas oportunidades para a execução do probe, uma é quando o dispositivo é criado e a outra é quando o driver é registrado; remove também tem duas oportunidades de execução, uma é quando o dispositivo é desconectado e a outra é quando o driver é desconectado.
  • Quando o sistema é desligado ou reiniciado, a função de desligamento do driver do dispositivo é chamada para concluir a operação de desligamento do dispositivo.Se necessário, a função pode ser definida no driver.
static struct i2c_driver bq25890_driver = {
 .driver = {
  .name = "bq25890-charger",
  .of_match_table = of_match_ptr(bq25890_of_match),
  .acpi_match_table = ACPI_PTR(bq25890_acpi_match),
  .pm = &bq25890_pm,
 },
 .probe = bq25890_probe,
 .remove = bq25890_remove,
 .shutdown = bq25890_shutdown,
 .id_table = bq25890_i2c_ids,
};
Publicado 162 artigos originais · elogiado 183 · 120.000 visualizações

Acho que você gosta

Origin blog.csdn.net/qq_31339221/article/details/105287770
Recomendado
Clasificación