Skip to content

Commit f51cc64

Browse files
balajicyp0xc0170
authored andcommitted
Cypress Target update to support Manufacturing Test. (#11868)
Cypress Target update to support WiFi Manufacturing Test Adding IOCTLS in WhdSTAInterface for MFG Test. Fix WHD EMAC interface to release buffer when emac is not powered up or callback is not registered.
1 parent e638486 commit f51cc64

File tree

3 files changed

+34
-1
lines changed

3 files changed

+34
-1
lines changed

features/netsocket/emac-drivers/TARGET_Cypress/COMPONENT_WHD/interface/WhdSTAInterface.cpp

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -571,6 +571,30 @@ int WhdSTAInterface::wifi_set_ioctl_value(uint32_t ioctl, uint32_t value)
571571
return res;
572572
}
573573

574+
int WhdSTAInterface::wifi_get_ioctl_value(uint32_t ioctl, uint32_t *value )
575+
{
576+
int res = WHD_SUCCESS;
577+
_whd_emac.ifp->role = WHD_STA_ROLE;
578+
res = whd_wifi_get_ioctl_value(_whd_emac.ifp, ioctl, value);
579+
return res;
580+
}
581+
582+
int WhdSTAInterface::wifi_get_ioctl_buffer(uint32_t ioctl, uint8_t *buffer, uint16_t len)
583+
{
584+
int res = WHD_SUCCESS;
585+
_whd_emac.ifp->role = WHD_STA_ROLE;
586+
res = whd_wifi_get_ioctl_buffer(_whd_emac.ifp, ioctl, buffer, len);
587+
return res;
588+
}
589+
590+
int WhdSTAInterface::wifi_set_ioctl_buffer(uint32_t ioctl, uint8_t *buffer, uint16_t len)
591+
{
592+
int res = WHD_SUCCESS;
593+
_whd_emac.ifp->role = WHD_STA_ROLE;
594+
res = whd_wifi_set_ioctl_buffer(_whd_emac.ifp, ioctl, buffer, len);
595+
return res;
596+
}
597+
574598
int WhdSTAInterface::wifi_get_ifp(whd_interface_t *ifp)
575599
{
576600
int res = WHD_SUCCESS;

features/netsocket/emac-drivers/TARGET_Cypress/COMPONENT_WHD/interface/WhdSTAInterface.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,15 @@ class WhdSTAInterface : public WiFiInterface, public EMACInterface {
191191
/* set ioctl value */
192192
int wifi_set_ioctl_value(uint32_t ioctl, uint32_t value) ;
193193

194+
/* get ioctl value */
195+
int wifi_get_ioctl_value(uint32_t ioctl, uint32_t *value);
196+
197+
/* get ioctl buffer */
198+
int wifi_get_ioctl_buffer(uint32_t ioctl, uint8_t *buffer, uint16_t len);
199+
200+
/* set ioctl buffer */
201+
int wifi_set_ioctl_buffer(uint32_t ioctl, uint8_t *buffer, uint16_t len);
202+
194203
/* get WHD ifp value */
195204
int wifi_get_ifp(whd_interface_t *ifp);
196205

features/netsocket/emac-drivers/TARGET_Cypress/COMPONENT_WHD/interface/whd_emac.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,7 @@ extern "C"
253253

254254
WHD_EMAC &emac = WHD_EMAC::get_instance(ifp->role);
255255

256-
if (!emac.powered_up && !emac.emac_link_input_cb) {
256+
if (!emac.powered_up || !emac.emac_link_input_cb) {
257257
// ignore any trailing packets
258258
whd_buffer_release(emac.drvp, buffer, WHD_NETWORK_RX);
259259
return;

0 commit comments

Comments
 (0)