From: oliver.henshaw@gmail.com
To: grub-devel@gnu.org
Subject: [PATCH 3/4] Check usb programming interface
Date: Mon, 08 Jun 2009 18:45:18 +0100 [thread overview]
Message-ID: <20090608174543.573892962@gmail.com> (raw)
In-Reply-To: 20090608174515.881183682@gmail.com
[-- Attachment #1: usb-check-interface --]
[-- Type: text/plain, Size: 2551 bytes --]
Changelog:
* bus/usb/ohci.c: Check programming interface is ohci. Add grub_dprintf for symmetry
with bus/usb/uhci.c.
* bus/usb/uhci.c: Check programming interface is uhci. Add interf variable for
Programming Interface. Print interface with class/subclass.
---
bus/usb/ohci.c | 5 ++++-
bus/usb/uhci.c | 8 +++++---
2 files changed, 9 insertions(+), 4 deletions(-)
Index: grub2/bus/usb/ohci.c
===================================================================
--- grub2.orig/bus/usb/ohci.c
+++ grub2/bus/usb/ohci.c
@@ -133,7 +133,7 @@ grub_ohci_pci_iter (int bus, int device,
class >>= 24;
/* If this is not an OHCI controller, just return. */
- if (class != 0x0c || subclass != 0x03)
+ if (class != 0x0c || subclass != 0x03 || interf != 0x10)
return 0;
/* Determine IO base address. */
@@ -159,6 +159,9 @@ grub_ohci_pci_iter (int bus, int device,
/* Reserve memory for the HCCA. */
o->hcca = (struct grub_ohci_hcca *) grub_memalign (256, 256);
+ grub_dprintf ("ohci", "class=0x%02x 0x%02x interface 0x%02x base=0x%x\n",
+ class, subclass, interf, o->iobase);
+
/* Check if the OHCI revision is actually 1.0 as supported. */
revision = grub_ohci_readreg32 (o, GRUB_OHCI_REG_REVISION);
grub_dprintf ("ohci", "OHCI revision=0x%02x\n", revision & 0xFF);
Index: grub2/bus/usb/uhci.c
===================================================================
--- grub2.orig/bus/usb/uhci.c
+++ grub2/bus/usb/uhci.c
@@ -143,6 +143,7 @@ grub_uhci_pci_iter (int bus, int device,
{
grub_uint32_t class;
grub_uint32_t subclass;
+ grub_uint32_t interf;
grub_uint32_t base;
grub_uint32_t fp;
grub_pci_address_t addr;
@@ -152,11 +153,12 @@ grub_uhci_pci_iter (int bus, int device,
addr = grub_pci_make_address (bus, device, func, 2);
class = grub_pci_read (addr);
+ interf = (class >> 8) & 0xFF;
subclass = (class >> 16) & 0xFF;
class >>= 24;
/* If this is not an UHCI controller, just return. */
- if (class != 0x0c || subclass != 0x03)
+ if (class != 0x0c || subclass != 0x03 || interf != 0x00)
return 0;
/* Determine IO base address. */
@@ -177,8 +179,8 @@ grub_uhci_pci_iter (int bus, int device,
u->framelist = 0;
u->qh = 0;
u->td = 0;
- grub_dprintf ("uhci", "class=0x%02x 0x%02x base=0x%x\n",
- class, subclass, u->iobase);
+ grub_dprintf ("uhci", "class=0x%02x 0x%02x interface 0x%02x base=0x%x\n",
+ class, subclass, interf, u->iobase);
/* Reserve a page for the frame list. */
u->framelist = grub_memalign (4096, 4096);
next prev parent reply other threads:[~2009-06-08 17:45 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-06-07 18:27 Grub needs to check the programming interface for usb controllers Oliver Henshaw
2009-06-08 17:45 ` [PATCH 0/4] " oliver.henshaw
2009-06-08 17:45 ` [PATCH 1/4] Minor Cleanup oliver.henshaw
2009-06-08 17:45 ` [PATCH 2/4] Fix inteface definition for ohci oliver.henshaw
2009-06-08 17:45 ` oliver.henshaw [this message]
2009-06-08 17:45 ` [PATCH 4/4] Define fields in terms of the Class Code register oliver.henshaw
2009-06-08 20:30 ` [PATCH 0/4] Re: Grub needs to check the programming interface for usb controllers Pavel Roskin
-- strict thread matches above, loose matches on Subject: below --
2009-06-07 18:34 [PATCH 3/4] Check usb programming interface Oliver Henshaw
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090608174543.573892962@gmail.com \
--to=oliver.henshaw@gmail.com \
--cc=grub-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.