On 02/18/16 12:21, Shivamurthy Shastri wrote:
> Hi All,
> 
> Please let me know your opinion about this patch.

The subject of your patch doesn't identify the top-level package that
the patch touches: OptionRomPkg.

You also didn't CC the maintainer(s) of OptionRomPkg on your posting
(see "Maintainers.txt"):

OptionRomPkg
W: https://github.com/tianocore/tianocore.github.io/wiki/OptionRomPkg
M: Ruiyu Ni <[email protected]>

CC'ing Ray now.

Thanks
Laszlo

> 
> --
> 
> Thanks and Regards,
> 
> Shivamurthy Shastri,
> 
> M: +919742508553, IRC: shiva_murthy,
> *Linaro.org* |Open Source Software for ARM SOCs
> 
> 
> ---------- Forwarded message ----------
> From: Shivamurthy Shastri <[email protected]>
> Date: 10 February 2016 at 19:42
> Subject: [edk2] [PATCH] Ax88772b: Workaround access to RXQTC register with
> Apple Ethernet Adapter
> To: [email protected]
> Cc: [email protected], Shivamurthy Shastri <
> [email protected]>
> 
> 
> The USB command CMD_RXQTC ("RX Queue Cascade Threshold Control") tries
> to access the register and is always failing when using the Apple
> Ethernet adapter.
> 
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Shivamurthy Shastri <[email protected]>
> ---
>  .../Bus/Usb/UsbNetworking/Ax88772b/Ax88772.c       | 15 +++++----
>  .../Bus/Usb/UsbNetworking/Ax88772b/Ax88772.h       |  2 ++
>  .../Bus/Usb/UsbNetworking/Ax88772b/DriverBinding.c | 39
> ++++++++++++++++++++++
>  3 files changed, 50 insertions(+), 6 deletions(-)
> 
> diff --git a/OptionRomPkg/Bus/Usb/UsbNetworking/Ax88772b/Ax88772.c
> b/OptionRomPkg/Bus/Usb/UsbNetworking/Ax88772b/Ax88772.c
> index 45ba3e5..b3fefb1 100644
> --- a/OptionRomPkg/Bus/Usb/UsbNetworking/Ax88772b/Ax88772.c
> +++ b/OptionRomPkg/Bus/Usb/UsbNetworking/Ax88772b/Ax88772.c
> @@ -625,15 +625,18 @@ Ax88772Reset (
> 
>    if (EFI_ERROR(Status)) goto err;
> 
> -  SetupMsg.RequestType = USB_REQ_TYPE_VENDOR
> +  if (pNicDevice->Flags != FLAG_TYPE_AX88772) {
> +       SetupMsg.RequestType = USB_REQ_TYPE_VENDOR
>                          | USB_TARGET_DEVICE;
> -  SetupMsg.Request = CMD_RXQTC;
> -  SetupMsg.Value = 0x8000;
> -  SetupMsg.Index = 0x8001;
> -  SetupMsg.Length = 0;
> -  Status = Ax88772UsbCommand ( pNicDevice,
> +       SetupMsg.Request = CMD_RXQTC;
> +       SetupMsg.Value = 0x8000;
> +       SetupMsg.Index = 0x8001;
> +       SetupMsg.Length = 0;
> +       Status = Ax88772UsbCommand ( pNicDevice,
>                                    &SetupMsg,
>                                    NULL );
> +  }
> +
>  err:
>    return Status;
>  }
> diff --git a/OptionRomPkg/Bus/Usb/UsbNetworking/Ax88772b/Ax88772.h
> b/OptionRomPkg/Bus/Usb/UsbNetworking/Ax88772b/Ax88772.h
> index 816f2b2..a85c998 100644
> --- a/OptionRomPkg/Bus/Usb/UsbNetworking/Ax88772b/Ax88772.h
> +++ b/OptionRomPkg/Bus/Usb/UsbNetworking/Ax88772b/Ax88772.h
> @@ -407,6 +407,8 @@ typedef struct {
>    RX_PKT * pFirstFill;
>    UINTN   PktCntInQueue;
>    UINT8 * pBulkInBuff;
> +
> +  INT32 Flags;
> 
>  } NIC_DEVICE;
> 
> diff --git a/OptionRomPkg/Bus/Usb/UsbNetworking/Ax88772b/DriverBinding.c
> b/OptionRomPkg/Bus/Usb/UsbNetworking/Ax88772b/DriverBinding.c
> index 6a10cbf..46a2ef9 100644
> --- a/OptionRomPkg/Bus/Usb/UsbNetworking/Ax88772b/DriverBinding.c
> +++ b/OptionRomPkg/Bus/Usb/UsbNetworking/Ax88772b/DriverBinding.c
> @@ -124,6 +124,8 @@ DriverStart (
>         UINTN
>  LengthInBytes;
>         EFI_DEVICE_PATH_PROTOCOL        *ParentDevicePath = NULL;
>         MAC_ADDR_DEVICE_PATH            MacDeviceNode;
> +       EFI_USB_DEVICE_DESCRIPTOR       Device;
> +       UINT32 i;
> 
>    //
>         //  Allocate the device structure
> @@ -178,6 +180,43 @@ DriverStart (
>                   goto EXIT;
>    }
> 
> +    Status = pNicDevice->pUsbIo->UsbGetDeviceDescriptor (
> pNicDevice->pUsbIo, &Device );
> +    if (EFI_ERROR ( Status )) {
> +                    gBS->CloseProtocol (
> +                                        Controller,
> +                                        &gEfiUsbIoProtocolGuid,
> +                                        pThis->DriverBindingHandle,
> +                                        Controller
> +                                        );
> +                  gBS->FreePool ( pNicDevice );
> +                 goto EXIT;
> +    }
> +    else {
> +      //
> +      //  Validate the adapter
> +      //
> +      for (i = 0; ASIX_DONGLES[i].VendorId != 0; i++) {
> +           if (ASIX_DONGLES[i].VendorId == Device.IdVendor &&
> +               ASIX_DONGLES[i].ProductId == Device.IdProduct) {
> +                     break;
> +           }
> +       }
> +
> +       if (ASIX_DONGLES[i].VendorId == 0) {
> +                    gBS->CloseProtocol (
> +                                        Controller,
> +                                        &gEfiUsbIoProtocolGuid,
> +                                        pThis->DriverBindingHandle,
> +                                        Controller
> +                                        );
> +                  gBS->FreePool ( pNicDevice );
> +                 goto EXIT;
> +       }
> +
> +       pNicDevice->Flags = ASIX_DONGLES[i].Flags;
> +    }
> +
> +
>         //
>    // Set Device Path
>    //
> --
> 1.9.1
> _______________________________________________
> edk2-devel mailing list
> [email protected]
> https://lists.01.org/mailman/listinfo/edk2-devel
> 

_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to