lkml.org 
[lkml]   [2008]   [Jul]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] x86: usb debug port early console v2
    On Wed, Jul 23, 2008 at 02:00:53PM -0700, Yinghai Lu wrote:
    > --- linux-2.6.orig/drivers/usb/host/ehci.h
    > +++ linux-2.6/drivers/usb/host/ehci.h
    > @@ -62,6 +62,7 @@ struct ehci_stats {
    >
    > #define EHCI_MAX_ROOT_PORTS 15 /* see HCS_N_PORTS */
    >
    > +#ifndef EARLY_PRINTK
    > struct ehci_hcd { /* one per controller */
    > /* glue to PCI and HCD framework */
    > struct ehci_caps __iomem *caps;
    > @@ -207,6 +208,7 @@ timer_action (struct ehci_hcd *ehci, enu
    > mod_timer(&ehci->watchdog, t + jiffies);
    > }
    > }
    > +#endif /* EARLY_PRINTK */
    >
    > /*-------------------------------------------------------------------------*/
    >
    > @@ -352,6 +354,8 @@ struct ehci_dbg_port {
    >
    > #define QTD_NEXT(ehci, dma) cpu_to_hc32(ehci, (u32)dma)
    >
    > +#ifndef EARLY_PRINTK
    > +
    > /*
    > * EHCI Specification 0.95 Section 3.5
    > * QTD: describe data transfer components (buffer, direction, ...)
    > @@ -392,7 +396,7 @@ struct ehci_qtd {
    > struct urb *urb; /* qtd's urb */
    > size_t length; /* length of buffer */
    > } __attribute__ ((aligned (32)));
    > -
    > +#endif
    > /* mask NakCnt+T in qh->hw_alt_next */
    > #define QTD_MASK(ehci) cpu_to_hc32 (ehci, ~0x1f)
    >
    > @@ -449,6 +453,7 @@ union ehci_shadow {
    > * These appear in both the async and (for interrupt) periodic schedules.
    > */
    >
    > +#ifndef EARLY_PRINTK
    > struct ehci_qh {
    > /* first part defined by EHCI spec */
    > __hc32 hw_next; /* see EHCI 3.6.1 */
    > @@ -504,6 +509,7 @@ struct ehci_qh {
    > #define NO_FRAME ((unsigned short)~0) /* pick new start */
    > struct usb_device *dev; /* access to TT */
    > } __attribute__ ((aligned (32)));
    > +#endif /* EARLY_PRITNK */
    >
    > /*-------------------------------------------------------------------------*/
    >
    > @@ -517,6 +523,7 @@ struct ehci_iso_packet {
    > u32 buf1;
    > };
    >
    > +#ifndef EARLY_PRINTK
    > /* temporary schedule data for packets from iso urbs (both speeds)
    > * each packet is one logical usb transaction to the device (not TT),
    > * beginning at stream->next_uframe
    > @@ -651,6 +658,7 @@ struct ehci_sitd {
    > unsigned frame;
    > unsigned index;
    > } __attribute__ ((aligned (32)));
    > +#endif
    >
    > /*-------------------------------------------------------------------------*/
    >
    > @@ -672,6 +680,8 @@ struct ehci_fstn {
    > union ehci_shadow fstn_next; /* ptr to periodic q entry */
    > } __attribute__ ((aligned (32)));
    >
    > +#ifndef EARLY_PRINTK
    > +
    > /*-------------------------------------------------------------------------*/
    >
    > #ifdef CONFIG_USB_EHCI_ROOT_HUB_TT
    > @@ -843,4 +853,6 @@ static inline u32 hc32_to_cpup (const st
    >
    > /*-------------------------------------------------------------------------*/
    >
    > +#endif /* EARLY_PRINTK */
    > +
    > #endif /* __LINUX_EHCI_HCD_H */

    I don't understand the issue of any of these #ifdefs here. Why are they
    needed?

    And shouldn't there be a separate config option for early printk through
    the ehci debug port?

    thanks,

    greg k-h


    \
     
     \ /
      Last update: 2008-07-24 00:51    [W:0.028 / U:0.052 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site