Meu driver do kernel precisa acessar as propriedades da bateria (get_property, set_property).
Problema: Como encontrar a estrutura power_supply da bateria?
Eu só encontro power_supply_get_by_name
, mas pode haver nomes diferentes para a bateria. Eu preciso verificar o tipo do power_supply, mas é aqui que estou preso.
Um direct get_by_type
ou um get_all_power_supplies
para verificar o tipo por conta própria ou também um get_power_supply_names
para passar para power_supply_get_by_name seria bom para mim.
Eu quero evitar acessos a arquivos no kernel, então qual é a melhor maneira de encontrar o type="battery" power_supply?
Suspeito que devo pegar o suprimento todas as vezes porque ele pode mudar ou desaparecer / reaparecer? Este driver pode acessar a fonte a cada dois segundos em algumas situações, então seria bom não gastar muito tempo procurando a bateria.
Exatamente um ano atrasado para a festa. :) Aqui está a idéia básica que faz um loop sobre todos os objetos da classe power-supply.
Esta função irá iterar sobre todos os
power_suppy_class
drivers. Observe que, desde que a função de retorno de chamada retorne 0, ela verificará o próximo dispositivo disponível nessa classe.