1. 상태 변수는 atomic 함수를 사용하라.
atomic_set(&hdmi_status, HDMI_ON);
if (atomic_read(&hdmi_status)) {
...
}
2. work 가 중복 실행되기를 원하지 않는다면 schedule_work 를 호출하기 전에 pending 검사를 하라.
3. gpio_request 를 호출하였으면 gpio_free를 호출하라.
내부적으로 chip->state[chip_index].refcount 를 가지고 있어서 request 때 +1, free 때 -1 을 호출하며 관리합니다.
지금 내부 소스를 보면 크게 동작에 영향을 주진 않지만 해당 카운트를 관리하는 목적에서는 컨트롤 하는것이 좋습니다.
계속 업데이트...
atomic_set(&hdmi_status, HDMI_ON);
if (atomic_read(&hdmi_status)) {
...
}
2. work 가 중복 실행되기를 원하지 않는다면 schedule_work 를 호출하기 전에 pending 검사를 하라.
if (!work_pending(p_work)) {
schedule_work(p_work);
}
내부적으로 chip->state[chip_index].refcount 를 가지고 있어서 request 때 +1, free 때 -1 을 호출하며 관리합니다.
지금 내부 소스를 보면 크게 동작에 영향을 주진 않지만 해당 카운트를 관리하는 목적에서는 컨트롤 하는것이 좋습니다.
계속 업데이트...
'Programming > Linux_Kernel' 카테고리의 다른 글
checkpatch.pl 과 Lindent 사용법 (0) | 2011.09.16 |
---|---|
singlethread_workqueue 사용 (0) | 2011.07.13 |
platform_get_irq 로 irq number 받아서 사용하기. (0) | 2011.07.12 |
per-CPU 변수 (dual-core) (0) | 2011.03.15 |
linux kernel document - phonet (0) | 2011.03.09 |