안녕하세요. 안드로이드(리눅스)의 커널쪽을 공부하고있는 초보입니다.
인터럽트를 사용함에 있어 장치를 올렸다가 내렸다를 반복해야하는 상황이라
할당 해제를 하였는데 계속 애러가나서 들여다보니 해제에서 실수를 한듯합니다.
irq 할당은 다음과 같이 하였습니다.
ret = gpio_request_one(pdata->irq_gpio, GPIOF_DIR_IN, "test,irq_pin");
client->irq = gpio_to_irq(pdata->irq_gpio);
그리고 해제는
if (gpio_is_valid(pdata->irq_gpio))
gpio_free(pdata->irq_gpio);
와 같이 하였습니다.
처음에는 다된줄 알았는데 지금 보니 gpio_to_irq로 등록된 내용을 해제후에
gpio_free를 해야하는게 맞는것 같다는 생각이듭니다.
하지만 어떻게 이것을 해제하여야하는지를 전혀 모르겠습니다.