The ucode triggers the gpio pins used for the buttons and causes diag to handle them and send them to userspace.
This only happened with a more recent firmware.
This patch was tested on an Asus wl-520GU and should also work on the other bcm5354 based asus devices. I do not know if it works on the dir320.
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30665 3c298f89-4303-0410-b956-a3cf2f4a3e73