Message ID | 20191210072048.15603-1-thuth@redhat.com |
---|---|
State | New |
Headers | show |
Series | hw/usb: Introduce Kconfig switches for the CCID card devices | expand |
On 12/10/19 8: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> > --- > hw/usb/Kconfig | 10 ++++++++++ > hw/usb/Makefile.objs | 7 +++++-- > 2 files changed, 15 insertions(+), 2 deletions(-) > > diff --git a/hw/usb/Kconfig b/hw/usb/Kconfig > index 555e09377b..1358847eba 100644 > --- a/hw/usb/Kconfig > +++ b/hw/usb/Kconfig > @@ -96,3 +96,13 @@ 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..ebe103fb3d 100644 > --- a/hw/usb/Makefile.objs > +++ b/hw/usb/Makefile.objs > @@ -29,11 +29,14 @@ 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 > +ifeq ($(CONFIG_SMARTCARD),y) We don't need the 'ifeq ($(CONFIG_SMARTCARD),y)' ... endif anymore. > +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 > +endif > > ifeq ($(CONFIG_POSIX),y) > common-obj-$(CONFIG_USB_STORAGE_MTP) += dev-mtp.o >
On 10/12/2019 08.43, Philippe Mathieu-Daudé wrote: > On 12/10/19 8: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> >> --- >> hw/usb/Kconfig | 10 ++++++++++ >> hw/usb/Makefile.objs | 7 +++++-- >> 2 files changed, 15 insertions(+), 2 deletions(-) >> >> diff --git a/hw/usb/Kconfig b/hw/usb/Kconfig >> index 555e09377b..1358847eba 100644 >> --- a/hw/usb/Kconfig >> +++ b/hw/usb/Kconfig >> @@ -96,3 +96,13 @@ 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..ebe103fb3d 100644 >> --- a/hw/usb/Makefile.objs >> +++ b/hw/usb/Makefile.objs >> @@ -29,11 +29,14 @@ 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 >> +ifeq ($(CONFIG_SMARTCARD),y) > > We don't need the 'ifeq ($(CONFIG_SMARTCARD),y)' ... endif anymore. I think we do. Both files #include <libcacard.h> thus can only be compiled if CONFIG_SMARTCARD has been set. Don't mix CONFIG_SMARTCARD up with CONFIG_USB_SMARTCARD - these are two different switches! Thomas >> +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 >> +endif >> ifeq ($(CONFIG_POSIX),y) >> common-obj-$(CONFIG_USB_STORAGE_MTP) += dev-mtp.o >> >
On 12/10/19 9:11 AM, Thomas Huth wrote: > On 10/12/2019 08.43, Philippe Mathieu-Daudé wrote: >> On 12/10/19 8: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> >>> --- >>> hw/usb/Kconfig | 10 ++++++++++ >>> hw/usb/Makefile.objs | 7 +++++-- >>> 2 files changed, 15 insertions(+), 2 deletions(-) >>> >>> diff --git a/hw/usb/Kconfig b/hw/usb/Kconfig >>> index 555e09377b..1358847eba 100644 >>> --- a/hw/usb/Kconfig >>> +++ b/hw/usb/Kconfig >>> @@ -96,3 +96,13 @@ 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..ebe103fb3d 100644 >>> --- a/hw/usb/Makefile.objs >>> +++ b/hw/usb/Makefile.objs >>> @@ -29,11 +29,14 @@ 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 >>> +ifeq ($(CONFIG_SMARTCARD),y) >> >> We don't need the 'ifeq ($(CONFIG_SMARTCARD),y)' ... endif anymore. > > I think we do. Both files #include <libcacard.h> thus can only be > compiled if CONFIG_SMARTCARD has been set. > Don't mix CONFIG_SMARTCARD up with CONFIG_USB_SMARTCARD - these are two > different switches! OK I missed SMARTCARD is not in Kconfig.host. What about adding that to your patch and remove the ifeq(): -- >8 -- 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/hw/usb/Kconfig b/hw/usb/Kconfig index 555e09377b..b3292a5cc9 100644 --- a/hw/usb/Kconfig +++ b/hw/usb/Kconfig @@ -90,7 +90,7 @@ config USB_BLUETOOTH config USB_SMARTCARD bool default y - depends on USB + depends on SMARTCARD && USB config USB_STORAGE_MTP bool --- >>> +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 >>> +endif >>> ifeq ($(CONFIG_POSIX),y) >>> common-obj-$(CONFIG_USB_STORAGE_MTP) += dev-mtp.o >>> >> >
On 10/12/19 14:27, Philippe Mathieu-Daudé wrote: > On 12/10/19 9:11 AM, Thomas Huth wrote: >> On 10/12/2019 08.43, Philippe Mathieu-Daudé wrote: >>> On 12/10/19 8: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> >>>> --- >>>> hw/usb/Kconfig | 10 ++++++++++ >>>> hw/usb/Makefile.objs | 7 +++++-- >>>> 2 files changed, 15 insertions(+), 2 deletions(-) >>>> >>>> diff --git a/hw/usb/Kconfig b/hw/usb/Kconfig >>>> index 555e09377b..1358847eba 100644 >>>> --- a/hw/usb/Kconfig >>>> +++ b/hw/usb/Kconfig >>>> @@ -96,3 +96,13 @@ 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..ebe103fb3d 100644 >>>> --- a/hw/usb/Makefile.objs >>>> +++ b/hw/usb/Makefile.objs >>>> @@ -29,11 +29,14 @@ 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 >>>> +ifeq ($(CONFIG_SMARTCARD),y) >>> >>> We don't need the 'ifeq ($(CONFIG_SMARTCARD),y)' ... endif anymore. >> >> I think we do. Both files #include <libcacard.h> thus can only be >> compiled if CONFIG_SMARTCARD has been set. >> Don't mix CONFIG_SMARTCARD up with CONFIG_USB_SMARTCARD - these are two >> different switches! > > OK I missed SMARTCARD is not in Kconfig.host. > > What about adding that to your patch and remove the ifeq(): > > -- >8 -- > 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/hw/usb/Kconfig b/hw/usb/Kconfig > index 555e09377b..b3292a5cc9 100644 > --- a/hw/usb/Kconfig > +++ b/hw/usb/Kconfig > @@ -90,7 +90,7 @@ config USB_BLUETOOTH > config USB_SMARTCARD > bool > default y > - depends on USB > + depends on SMARTCARD && USB > > config USB_STORAGE_MTP > bool Yes, this is a good idea. Paolo > --- > >>>> +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 >>>> +endif >>>> ifeq ($(CONFIG_POSIX),y) >>>> common-obj-$(CONFIG_USB_STORAGE_MTP) += dev-mtp.o >>>> >>> >> >
diff --git a/hw/usb/Kconfig b/hw/usb/Kconfig index 555e09377b..1358847eba 100644 --- a/hw/usb/Kconfig +++ b/hw/usb/Kconfig @@ -96,3 +96,13 @@ 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..ebe103fb3d 100644 --- a/hw/usb/Makefile.objs +++ b/hw/usb/Makefile.objs @@ -29,11 +29,14 @@ 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 +ifeq ($(CONFIG_SMARTCARD),y) +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 +endif ifeq ($(CONFIG_POSIX),y) common-obj-$(CONFIG_USB_STORAGE_MTP) += dev-mtp.o
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> --- hw/usb/Kconfig | 10 ++++++++++ hw/usb/Makefile.objs | 7 +++++-- 2 files changed, 15 insertions(+), 2 deletions(-)