Wifi is ready to work, and most of the features required in Android wifisetting are also implemented. However, there are two other problems to record here:
1. softap unavailable
2. There is a probability that WPS will fail.
For softap, when WiFi tethering is selected in setting, softapcontroller sends a private command to the driver. However, before sending a private command, the siocgiwpriv command is sent to the driver through IOCTL. This command is used to obtain the private commands supported by the current driver. (Because softap is not standard cmd, it must be placed in a private command if it is to be supported)
Whether the driver supports private commands, or which private commands are supported depends on the Value assignment of the iw_handler_def struct in the driver:
Const struct iw_handler_def wl_iw_handler_def =
{
. Num_standard = arraysize (wl_iw_handler ),
. Standard = (iw_handler *) wl_iw_handler,
. Num_private = arraysize (wl_iw_priv_handler ),
. Num_private_args = array_size (wl_iw_priv_args ),
. Private = (iw_handler *) wl_iw_priv_handler,
. Private_args = (void *) wl_iw_priv_args,
};
I don't know which private CMD is supported by the module. Therefore, I cannot add this item myself. I only need to contact the supplier to provide support. Now, I will wait for the support to be OK.
But for Question 2, I got a big head. Sometimes it is good, sometimes it is not good. If it is not good, the hardware returns a fail, which makes it impossible for me to solve it. I don't know if WPS is inherently unstable, or what other situations are there. This may also be one of the sorrows of switching to the manufacturer instead of working in the equipment manufacturer company. Once the device has a problem, the manufacturer can only wait for the device manufacturer to solve the problem by itself, and can't do anything except to urge others! However, I am not able to access so many interesting terminal products when working in the equipment manufacturer company.