Building the AR6K driver

1) Unpack this directory in src/third_party directory and rename it as atheros-ath6k.
2) Extract the firmware (AR6K_FW.build_sw.xxx) and driver (AR6kSDK.build_sw.xxx) tar balls located in the current directory.
3) Modify the ATH_LINUXPATH in the files/host/localmake.linux.inc file to point to the linux kernel source directory.
4) Add the atheros-ath6k package name to src/package_repo/package-list-prod.txt and src/scripts/build_platform_packages.sh
5) To build the package
	src/scripts/enter_chroot.sh
	cd src/third_party/atheros-ath6k
	./make_pkg.sh
	cd ../../scripts/
	./build_image.sh --replace
