public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: David Brownell <david-b@pacbell.net>
To: Adrian Bunk <bunk@fs.tum.de>
Cc: Marcelo Tosatti <marcelo.tosatti@cyclades.com>,
	linux-kernel@vger.kernel.org, greg@kroah.com,
	linux-usb-devel@lists.sourceforge.net
Subject: Re: [2.4 patch] fix USB Gadget Config.in
Date: Tue, 25 Nov 2003 12:28:10 -0800	[thread overview]
Message-ID: <3FC3BB5A.9080000@pacbell.net> (raw)
In-Reply-To: <20031118172807.GN326@fs.tum.de>

[-- Attachment #1: Type: text/plain, Size: 1388 bytes --]

Adrian Bunk wrote:

> .config contained the following:
> 
> ... (illegal but not disallowed) ...

> The main change is to remove the problematic
> 
>   define_tristate CONFIG_USB_GADGET_CONTROLLER n

That came from Al Borchers when he provided the "serial" gadget
driver. It helped clean up the preceding Config.in.  I don't know
precisely how he landed with that solution, likely something to
do with "undefined" dependencies interpreted (wrongly) as "true".

In what way was that problematic for you?

Agreed that some of the controller drivers might fit better as
"dep_tristate": net2280 and goku_udc depending on PCI; pxa2xx and
superh UDCs depending on those arch symbols.

On the other hand, see the updated Config.in below (more drivers
than 2.4.23-rc5):  it works with "menuconfig" and "config", on
x86 and ARM, and correctly prevents configuring both PCI-based
controllers; but I'd not say "better" because it breaks rudely
on "xconfig" (all those settings disabled).


> and solving it different, and allowing a statically CONFIG_USB_ETH only 
> when CONFIG_USB_ZERO isn't statically.

Seems incorrect; if ZERO is statically linked, ETH must not be linked
either statically or dynamically.  (And so on for the other drivers.)

There may be a nice solution to these problems within the Config.in
constraints, but I don't think we've found one yet.

- Dave



> cu
> Adrian
> 
> 

[-- Attachment #2: Config.in --]
[-- Type: text/plain, Size: 6025 bytes --]

#
# USB device-side configuration
# for 2.4 kbuild, drivers/usb/gadget/Config.in
#
# Long term, this likely doesn't all belong in one directory
# Plan to split it up eventually.
#
# CAREFUL!  Some versions of "xconfig" don't execute this correctly.
#
mainmenu_option next_comment
comment 'Support for USB gadgets'

bool 'Support for USB Gadgets' CONFIG_USB_GADGET
if [ "$CONFIG_USB_GADGET" = "y" ]; then
  
  #
  # really want _exactly one_ device controller driver at a time,
  # since they control compile options for gadget drivers.
  #
  comment 'USB Peripheral Controller Drivers'
  
  # assume all the dependencies may be undefined ("== true", yeech)
  define_tristate CONFIG_USB_GADGET_CONTROLLER n
  if [ "$CONFIG_PCI" = "" ] ; then
     define_bool CONFIG_PCI n
  fi
  if [ "$CONFIG_ARCH_PXA" = "" ] ; then
     define_bool CONFIG_ARCH_PXA n
  fi
  if [ "$CONFIG_ARCH_SUPERH" = "" ] ; then
     define_bool CONFIG_ARCH_SUPERH n
  fi
  
  if [ "$CONFIG_USB_GADGET_CONTROLLER" = "n" ] ; then
    dep_tristate '  NetChip 2280 support' CONFIG_USB_NET2280 $CONFIG_PCI
    define_tristate CONFIG_USB_GADGET_CONTROLLER $CONFIG_USB_NET2280
  fi
  if [ "$CONFIG_USB_GADGET_CONTROLLER" = "n" ] ; then
    dep_tristate '  PXA 2xx UDC support' CONFIG_USB_PXA2XX $CONFIG_ARCH_PXA
    define_tristate CONFIG_USB_GADGET_CONTROLLER $CONFIG_USB_PXA2XX
  fi
  if [ "$CONFIG_USB_GADGET_CONTROLLER" = "n" ] ; then
    dep_tristate '  Toshiba TC86C001 (Goku-S) support' CONFIG_USB_GOKU $CONFIG_PCI
    define_tristate CONFIG_USB_GADGET_CONTROLLER $CONFIG_USB_GOKU
  fi
  if [ "$CONFIG_USB_GADGET_CONTROLLER" = "n" ] ; then
    dep_tristate '  Renesas SH7705/7727 UDC support' CONFIG_USB_SUPERH $CONFIG_SUPERH
    define_tristate CONFIG_USB_GADGET_CONTROLLER $CONFIG_USB_SUPERH
  fi

  if [ "$CONFIG_USB_GADGET_CONTROLLER" = "y" -o "$CONFIG_USB_GADGET_CONTROLLER" = "m" ] ; then

  #
  # no reason not to enable more than one gadget driver module, but
  # for static linking that would make no sense since the usb model
  # has exactly one of these upstream connections and only one
  # lowest-level driver can control it.
  #
  # gadget drivers are compiled to work on specific hardware, since
  #
  # (a) gadget driver need hardware-specific configuration, like what
  #     endpoint names and numbers to use, maxpacket sizes, etc
  #
  # (b) specific hardware features like iso endpoints may be required
  #
  comment 'USB Gadget Drivers'

  dep_tristate '  Gadget Zero (DEVELOPMENT)' CONFIG_USB_ZERO $CONFIG_USB_GADGET_CONTROLLER
  if [ "$CONFIG_USB_ZERO" = "y" -o "$CONFIG_USB_ZERO" = "m" ]; then
      if [ "$CONFIG_USB_NET2280" = "y" -o "$CONFIG_USB_NET2280" = "m" ]; then
  	define_bool CONFIG_USB_ZERO_NET2280 y
      else if [ "$CONFIG_USB_PXA2XX" = "y" -o "$CONFIG_USB_PXA2XX" = "m" ]; then
  	define_bool CONFIG_USB_ZERO_PXA2XX y
      else if [ "$CONFIG_USB_GOKU" = "y" -o "$CONFIG_USB_GOKU" = "m" ]; then
  	define_bool CONFIG_USB_ZERO_GOKU y
      else if [ "$CONFIG_USB_SUPERH" = "y" -o "$CONFIG_USB_SUPERH" = "m" ]; then
  	define_bool CONFIG_USB_ZERO_SUPERH y
      fi fi fi fi
      # ...
  fi
  
  dep_tristate '  Ethernet Gadget (EXPERIMENTAL)' CONFIG_USB_ETH $CONFIG_USB_GADGET_CONTROLLER $CONFIG_NET
  if [ "$CONFIG_USB_ETH" = "y" -o "$CONFIG_USB_ETH" = "m" ]; then
      if [ "$CONFIG_USB_NET2280" = "y" -o "$CONFIG_USB_NET2280" = "m" ]; then
  	define_bool CONFIG_USB_ETH_NET2280 y
      else if [ "$CONFIG_USB_PXA2XX" = "y" -o "$CONFIG_USB_PXA2XX" = "m" ]; then
  	define_bool CONFIG_USB_ETH_PXA2XX y
      else if [ "$CONFIG_USB_GOKU" = "y" -o "$CONFIG_USB_GOKU" = "m" ]; then
  	define_bool CONFIG_USB_ETH_GOKU y
      else if [ "$CONFIG_USB_SUPERH" = "y" -o "$CONFIG_USB_SUPERH" = "m" ]; then
  	define_bool CONFIG_USB_ETH_SUPERH y
      fi fi fi fi
      # ...
  fi
  
  dep_tristate '  Gadget Filesystem API (EXPERIMENTAL)' CONFIG_USB_GADGETFS $CONFIG_USB_GADGET_CONTROLLER
  if [ "$CONFIG_USB_GADGETFS" = "y" -o "$CONFIG_USB_GADGETFS" = "m" ]; then
      if [ "$CONFIG_USB_NET2280" = "y" -o "$CONFIG_USB_NET2280" = "m" ]; then
  	define_bool CONFIG_USB_GADGETFS_NET2280 y
      else if [ "$CONFIG_USB_PXA2XX" = "y" -o "$CONFIG_USB_PXA2XX" = "m" ]; then
  	define_bool CONFIG_USB_GADGETFS_PXA2XX y
      else if [ "$CONFIG_USB_GOKU" = "y" -o "$CONFIG_USB_GOKU" = "m" ]; then
  	define_bool CONFIG_USB_GADGETFS_GOKU y
      else if [ "$CONFIG_USB_SUPERH" = "y" -o "$CONFIG_USB_SUPERH" = "m" ]; then
  	define_bool CONFIG_USB_GADGETFS_SUPERH y
      fi fi fi fi
      # ...
  fi
  
  dep_tristate '  File-backed Storage Gadget (DEVELOPMENT)' CONFIG_USB_FILE_STORAGE $CONFIG_USB_GADGET_CONTROLLER
  if [ "$CONFIG_USB_FILE_STORAGE" = "y" -o "$CONFIG_USB_FILE_STORAGE" = "m" ]; then
      if [ "$CONFIG_USB_NET2280" = "y" -o "$CONFIG_USB_NET2280" = "m" ]; then
  	define_bool CONFIG_USB_FILE_STORAGE_NET2280 y
      else if [ "$CONFIG_USB_PXA2XX" = "y" -o "$CONFIG_USB_PXA2XX" = "m" ]; then
  	define_bool CONFIG_USB_FILE_STORAGE_PXA2XX y
      else if [ "$CONFIG_USB_GOKU" = "y" -o "$CONFIG_USB_GOKU" = "m" ]; then
  	define_bool CONFIG_USB_FILE_STORAGE_GOKU y
      else if [ "$CONFIG_USB_SUPERH" = "y" -o "$CONFIG_USB_SUPERH" = "m" ]; then
  	define_bool CONFIG_USB_FILE_STORAGE_SUPERH y
      fi fi fi fi
      # ...
  fi
  
  dep_tristate '  Serial Gadget (EXPERIMENTAL)' CONFIG_USB_G_SERIAL $CONFIG_USB_GADGET_CONTROLLER
  if [ "$CONFIG_USB_G_SERIAL" = "y" -o "$CONFIG_USB_G_SERIAL" = "m" ]; then
      if [ "$CONFIG_USB_NET2280" = "y" -o "$CONFIG_USB_NET2280" = "m" ]; then
  	define_bool CONFIG_USB_G_SERIAL_NET2280 y
      else if [ "$CONFIG_USB_PXA2XX" = "y" -o "$CONFIG_USB_PXA2XX" = "m" ]; then
  	define_bool CONFIG_USB_G_SERIAL_PXA2XX y
      else if [ "$CONFIG_USB_GOKU" = "y" -o "$CONFIG_USB_GOKU" = "m" ]; then
  	define_bool CONFIG_USB_G_SERIAL_GOKU y
      else if [ "$CONFIG_USB_SUPERH" = "y" -o "$CONFIG_USB_SUPERH" = "m" ]; then
  	define_bool CONFIG_USB_G_SERIAL_SUPERH y
      fi fi fi fi
      # ...
  fi
  
  # ... or other gadget drivers:  printer class, hid, etc ...

  fi
fi
endmenu

      reply	other threads:[~2003-11-25 20:31 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-11-18 17:28 [2.4 patch] fix USB Gadget Config.in Adrian Bunk
2003-11-25 20:28 ` David Brownell [this message]

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=3FC3BB5A.9080000@pacbell.net \
    --to=david-b@pacbell.net \
    --cc=bunk@fs.tum.de \
    --cc=greg@kroah.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb-devel@lists.sourceforge.net \
    --cc=marcelo.tosatti@cyclades.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox