On 18 February 2016 at 17:01, Laszlo Ersek <[email protected]> wrote:

> 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
> >
>
> ​Hi Ruiyu Ni,

Please look into the patch.

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

Reply via email to