[PATCH v2] hw/usb: Introduce Kconfig switches for the CCID card devices

Thomas Huth posted 1 patch 6 years, 1 month ago
Test asan failed
Test checkpatch failed
Test FreeBSD failed
Test docker-mingw@fedora failed
Test docker-clang@ubuntu failed
Test docker-quick@centos7 failed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20191211102029.1772-1-thuth@redhat.com
Maintainers: Gerd Hoffmann <kraxel@redhat.com>
Kconfig.host         |  3 +++
Makefile             |  3 ++-
hw/usb/Kconfig       | 12 +++++++++++-
hw/usb/Makefile.objs |  9 ++++-----
4 files changed, 20 insertions(+), 7 deletions(-)
[PATCH v2] hw/usb: Introduce Kconfig switches for the CCID card devices
Posted by Thomas Huth 6 years, 1 month ago
In our downstream distribution of QEMU, we need more fine-grained
control on the set of CCID card devices that we want to include.
So let's introduce some proper Kconfig switches that it is easier
to disable them without modifying the corresponding Makefile.objs.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 v2: Use CONFIG_SMARTCARD in Kconfig.host as suggested by Philippe

 Kconfig.host         |  3 +++
 Makefile             |  3 ++-
 hw/usb/Kconfig       | 12 +++++++++++-
 hw/usb/Makefile.objs |  9 ++++-----
 4 files changed, 20 insertions(+), 7 deletions(-)

diff --git a/Kconfig.host b/Kconfig.host
index bb6e116e2a..b532358854 100644
--- a/Kconfig.host
+++ b/Kconfig.host
@@ -35,3 +35,6 @@ config VIRTFS
 
 config PVRDMA
     bool
+
+config SMARTCARD
+    bool
diff --git a/Makefile b/Makefile
index b437a346d7..287cda35cb 100644
--- a/Makefile
+++ b/Makefile
@@ -388,7 +388,8 @@ MINIKCONF_ARGS = \
     CONFIG_VHOST_USER=$(CONFIG_VHOST_USER) \
     CONFIG_VIRTFS=$(CONFIG_VIRTFS) \
     CONFIG_LINUX=$(CONFIG_LINUX) \
-    CONFIG_PVRDMA=$(CONFIG_PVRDMA)
+    CONFIG_PVRDMA=$(CONFIG_PVRDMA) \
+    CONFIG_SMARTCARD=$(CONFIG_SMARTCARD)
 
 MINIKCONF_INPUTS = $(SRC_PATH)/Kconfig.host $(SRC_PATH)/hw/Kconfig \
                    $(wildcard $(SRC_PATH)/hw/*/Kconfig)
diff --git a/hw/usb/Kconfig b/hw/usb/Kconfig
index 555e09377b..da3026586f 100644
--- a/hw/usb/Kconfig
+++ b/hw/usb/Kconfig
@@ -90,9 +90,19 @@ config USB_BLUETOOTH
 config USB_SMARTCARD
     bool
     default y
-    depends on USB
+    depends on USB && SMARTCARD
 
 config USB_STORAGE_MTP
     bool
     default y
     depends on USB
+
+config CCID_PASSTHRU
+    bool
+    default y
+    depends on USB_SMARTCARD
+
+config CCID_EMULATED
+    bool
+    default y
+    depends on USB_SMARTCARD
diff --git a/hw/usb/Makefile.objs b/hw/usb/Makefile.objs
index 303ac084a0..478e6d5752 100644
--- a/hw/usb/Makefile.objs
+++ b/hw/usb/Makefile.objs
@@ -27,13 +27,12 @@ common-obj-$(CONFIG_USB_SERIAL)       += dev-serial.o
 common-obj-$(CONFIG_USB_NETWORK)      += dev-network.o
 common-obj-$(CONFIG_USB_BLUETOOTH)    += dev-bluetooth.o
 
-ifeq ($(CONFIG_USB_SMARTCARD),y)
-common-obj-y                          += dev-smartcard-reader.o
-common-obj-$(CONFIG_SMARTCARD)        += smartcard.mo
-smartcard.mo-objs := ccid-card-passthru.o ccid-card-emulated.o
+common-obj-$(CONFIG_USB_SMARTCARD)    += dev-smartcard-reader.o
+common-obj-$(call lor,$(CONFIG_CCID_PASSTHRU),$(CONFIG_CCID_EMULATED)) += smartcard.mo
+smartcard.mo-objs := $(call lif,$(CONFIG_CCID_PASSTHRU),ccid-card-passthru.o) \
+                     $(call lif,$(CONFIG_CCID_EMULATED),ccid-card-emulated.o)
 smartcard.mo-cflags := $(SMARTCARD_CFLAGS)
 smartcard.mo-libs := $(SMARTCARD_LIBS)
-endif
 
 ifeq ($(CONFIG_POSIX),y)
 common-obj-$(CONFIG_USB_STORAGE_MTP)  += dev-mtp.o
-- 
2.18.1


Re: [PATCH v2] hw/usb: Introduce Kconfig switches for the CCID card devices
Posted by Philippe Mathieu-Daudé 6 years, 1 month ago
On 12/11/19 11:20 AM, Thomas Huth wrote:
> In our downstream distribution of QEMU, we need more fine-grained
> control on the set of CCID card devices that we want to include.
> So let's introduce some proper Kconfig switches that it is easier
> to disable them without modifying the corresponding Makefile.objs.
> 
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>   v2: Use CONFIG_SMARTCARD in Kconfig.host as suggested by Philippe
> 
>   Kconfig.host         |  3 +++
>   Makefile             |  3 ++-
>   hw/usb/Kconfig       | 12 +++++++++++-
>   hw/usb/Makefile.objs |  9 ++++-----
>   4 files changed, 20 insertions(+), 7 deletions(-)
> 
> diff --git a/Kconfig.host b/Kconfig.host
> index bb6e116e2a..b532358854 100644
> --- a/Kconfig.host
> +++ b/Kconfig.host
> @@ -35,3 +35,6 @@ config VIRTFS
>   
>   config PVRDMA
>       bool
> +
> +config SMARTCARD
> +    bool
> diff --git a/Makefile b/Makefile
> index b437a346d7..287cda35cb 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -388,7 +388,8 @@ MINIKCONF_ARGS = \
>       CONFIG_VHOST_USER=$(CONFIG_VHOST_USER) \
>       CONFIG_VIRTFS=$(CONFIG_VIRTFS) \
>       CONFIG_LINUX=$(CONFIG_LINUX) \
> -    CONFIG_PVRDMA=$(CONFIG_PVRDMA)
> +    CONFIG_PVRDMA=$(CONFIG_PVRDMA) \
> +    CONFIG_SMARTCARD=$(CONFIG_SMARTCARD)

Oh I missed this detail :)

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>

>   
>   MINIKCONF_INPUTS = $(SRC_PATH)/Kconfig.host $(SRC_PATH)/hw/Kconfig \
>                      $(wildcard $(SRC_PATH)/hw/*/Kconfig)
> diff --git a/hw/usb/Kconfig b/hw/usb/Kconfig
> index 555e09377b..da3026586f 100644
> --- a/hw/usb/Kconfig
> +++ b/hw/usb/Kconfig
> @@ -90,9 +90,19 @@ config USB_BLUETOOTH
>   config USB_SMARTCARD
>       bool
>       default y
> -    depends on USB
> +    depends on USB && SMARTCARD
>   
>   config USB_STORAGE_MTP
>       bool
>       default y
>       depends on USB
> +
> +config CCID_PASSTHRU
> +    bool
> +    default y
> +    depends on USB_SMARTCARD
> +
> +config CCID_EMULATED
> +    bool
> +    default y
> +    depends on USB_SMARTCARD
> diff --git a/hw/usb/Makefile.objs b/hw/usb/Makefile.objs
> index 303ac084a0..478e6d5752 100644
> --- a/hw/usb/Makefile.objs
> +++ b/hw/usb/Makefile.objs
> @@ -27,13 +27,12 @@ common-obj-$(CONFIG_USB_SERIAL)       += dev-serial.o
>   common-obj-$(CONFIG_USB_NETWORK)      += dev-network.o
>   common-obj-$(CONFIG_USB_BLUETOOTH)    += dev-bluetooth.o
>   
> -ifeq ($(CONFIG_USB_SMARTCARD),y)
> -common-obj-y                          += dev-smartcard-reader.o
> -common-obj-$(CONFIG_SMARTCARD)        += smartcard.mo
> -smartcard.mo-objs := ccid-card-passthru.o ccid-card-emulated.o
> +common-obj-$(CONFIG_USB_SMARTCARD)    += dev-smartcard-reader.o
> +common-obj-$(call lor,$(CONFIG_CCID_PASSTHRU),$(CONFIG_CCID_EMULATED)) += smartcard.mo
> +smartcard.mo-objs := $(call lif,$(CONFIG_CCID_PASSTHRU),ccid-card-passthru.o) \
> +                     $(call lif,$(CONFIG_CCID_EMULATED),ccid-card-emulated.o)
>   smartcard.mo-cflags := $(SMARTCARD_CFLAGS)
>   smartcard.mo-libs := $(SMARTCARD_LIBS)
> -endif
>   
>   ifeq ($(CONFIG_POSIX),y)
>   common-obj-$(CONFIG_USB_STORAGE_MTP)  += dev-mtp.o
> 


Re: [PATCH v2] hw/usb: Introduce Kconfig switches for the CCID card devices
Posted by Gerd Hoffmann 6 years, 1 month ago
On Wed, Dec 11, 2019 at 11:20:29AM +0100, Thomas Huth wrote:
> In our downstream distribution of QEMU, we need more fine-grained
> control on the set of CCID card devices that we want to include.
> So let's introduce some proper Kconfig switches that it is easier
> to disable them without modifying the corresponding Makefile.objs.
> 
> Signed-off-by: Thomas Huth <thuth@redhat.com>

Added to usb queue.

thanks,
  Gerd


Re: [PATCH v2] hw/usb: Introduce Kconfig switches for the CCID card devices
Posted by Gerd Hoffmann 6 years ago
On Tue, Jan 07, 2020 at 08:36:07AM +0100, Gerd Hoffmann wrote:
> On Wed, Dec 11, 2019 at 11:20:29AM +0100, Thomas Huth wrote:
> > In our downstream distribution of QEMU, we need more fine-grained
> > control on the set of CCID card devices that we want to include.
> > So let's introduce some proper Kconfig switches that it is easier
> > to disable them without modifying the corresponding Makefile.objs.
> > 
> > Signed-off-by: Thomas Huth <thuth@redhat.com>
> 
> Added to usb queue.

Oops, this patch breaks "make check" on openbsd (make
TARGET_LIST=x86_64-softmmu vm-build-openbsd).  Unqueued.

cheers,
  Gerd


Re: [PATCH v2] hw/usb: Introduce Kconfig switches for the CCID card devices
Posted by Thomas Huth 6 years ago
On 13/01/2020 10.44, Gerd Hoffmann wrote:
> On Tue, Jan 07, 2020 at 08:36:07AM +0100, Gerd Hoffmann wrote:
>> On Wed, Dec 11, 2019 at 11:20:29AM +0100, Thomas Huth wrote:
>>> In our downstream distribution of QEMU, we need more fine-grained
>>> control on the set of CCID card devices that we want to include.
>>> So let's introduce some proper Kconfig switches that it is easier
>>> to disable them without modifying the corresponding Makefile.objs.
>>>
>>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>>
>> Added to usb queue.
> 
> Oops, this patch breaks "make check" on openbsd (make
> TARGET_LIST=x86_64-softmmu vm-build-openbsd).  Unqueued.

Sorry, I missed that tests/qtest/usb-hcd-xhci-test.c uses the "usb-ccid"
device ... I'll fix my patch and send a v3.

 Thomas