diff mbox

[02/03,v2] usb hid quirks for Masterkit MA901 usb radio

Message ID 20121228102928.4103390e@redhat.com (mailing list archive)
State New, archived
Headers show

Commit Message

Mauro Carvalho Chehab Dec. 28, 2012, 12:29 p.m. UTC
Hi Jiri,

There's another radio device that it is incorrectly detected as an HID driver.
As I'll be applying the driver's patch via the media tree, do you mind if I also
apply this hid patch there?

Thanks!
Mauro

Forwarded message:

Date: Mon, 12 Nov 2012 07:57:03 +0100
From: Alexey Klimov <klimov.linux@gmail.com>
To: linux-media@vger.kernel.org
Subject: [patch 02/03 v2] usb hid quirks for Masterkit MA901 usb radio


Don't let Masterkit MA901 USB radio be handled by usb hid drivers.

This device will be handled by radio-ma901.c driver.

Signed-off-by: Alexey Klimov <klimov.linux@gmail.com>



--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Jiri Kosina Dec. 28, 2012, 1:27 p.m. UTC | #1
On Fri, 28 Dec 2012, Mauro Carvalho Chehab wrote:

> Hi Jiri,
> 
> There's another radio device that it is incorrectly detected as an HID driver.
> As I'll be applying the driver's patch via the media tree, do you mind if I also
> apply this hid patch there?

Hi Mauro,

please feel free to add

	Acked-by: Jiri Kosina <jkosina@suse.cz>

and take the patch through your tree.

Thanks,
Mauro Carvalho Chehab Dec. 28, 2012, 2:21 p.m. UTC | #2
Em Fri, 28 Dec 2012 14:27:56 +0100 (CET)
Jiri Kosina <jkosina@suse.cz> escreveu:

> On Fri, 28 Dec 2012, Mauro Carvalho Chehab wrote:
> 
> > Hi Jiri,
> > 
> > There's another radio device that it is incorrectly detected as an HID driver.
> > As I'll be applying the driver's patch via the media tree, do you mind if I also
> > apply this hid patch there?
> 
> Hi Mauro,
> 
> please feel free to add
> 
> 	Acked-by: Jiri Kosina <jkosina@suse.cz>
> 
> and take the patch through your tree.

Thank you, Jiri!

Regards,
Mauro
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Alexey Klimov March 11, 2013, 11:25 p.m. UTC | #3
Hi Jiri and Mauro, all,

On Fri, Dec 28, 2012 at 4:29 PM, Mauro Carvalho Chehab
<mchehab@redhat.com> wrote:
> Hi Jiri,
>
> There's another radio device that it is incorrectly detected as an HID driver.
> As I'll be applying the driver's patch via the media tree, do you mind if I also
> apply this hid patch there?
>
> Thanks!
> Mauro
>
> Forwarded message:
>
> Date: Mon, 12 Nov 2012 07:57:03 +0100
> From: Alexey Klimov <klimov.linux@gmail.com>
> To: linux-media@vger.kernel.org
> Subject: [patch 02/03 v2] usb hid quirks for Masterkit MA901 usb radio
>
>
> Don't let Masterkit MA901 USB radio be handled by usb hid drivers.
>
> This device will be handled by radio-ma901.c driver.
>
> Signed-off-by: Alexey Klimov <klimov.linux@gmail.com>
>
>
> diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
> index 5de3bb3..8e06569 100644
> --- a/drivers/hid/hid-core.c
> +++ b/drivers/hid/hid-core.c
> @@ -2025,6 +2025,7 @@ static const struct hid_device_id hid_ignore_list[] = {
>         { HID_USB_DEVICE(USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_HYBRID) },
>         { HID_USB_DEVICE(USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_HEATCONTROL) },
>         { HID_USB_DEVICE(USB_VENDOR_ID_MADCATZ, USB_DEVICE_ID_MADCATZ_BEATPAD) },
> +       { HID_USB_DEVICE(USB_VENDOR_ID_MASTERKIT, USB_DEVICE_ID_MASTERKIT_MA901RADIO) },
>         { HID_USB_DEVICE(USB_VENDOR_ID_MCC, USB_DEVICE_ID_MCC_PMD1024LS) },
>         { HID_USB_DEVICE(USB_VENDOR_ID_MCC, USB_DEVICE_ID_MCC_PMD1208LS) },
>         { HID_USB_DEVICE(USB_VENDOR_ID_MICROCHIP, USB_DEVICE_ID_PICKIT1) },
> diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
> index 1dcb76f..17aa4f6 100644
> --- a/drivers/hid/hid-ids.h
> +++ b/drivers/hid/hid-ids.h
> @@ -533,6 +533,9 @@
>  #define USB_VENDOR_ID_MADCATZ          0x0738
>  #define USB_DEVICE_ID_MADCATZ_BEATPAD  0x4540
>
> +#define USB_VENDOR_ID_MASTERKIT                        0x16c0
> +#define USB_DEVICE_ID_MASTERKIT_MA901RADIO     0x05df
> +
>  #define USB_VENDOR_ID_MCC              0x09db
>  #define USB_DEVICE_ID_MCC_PMD1024LS    0x0076
>  #define USB_DEVICE_ID_MCC_PMD1208LS    0x007a

Well, since patch also was pushed to stable trees like 3.5, 3.8, 3.2
and this fact made me look a little closer to usb ids. Actually, i
googled these usb ids: 16c0 05df, link:
http://www.google.com/search?q=16c0+05df
and here comes some doubts.

For my eyes it looks like this usb radio consists of two chips: atmel
tiny85 + actually fm tuner KT0830EG. It looks like tiny85 is used in
many devices with the same usb ids like in our patch and people works
with tiny85 using some software under linux. I don't know if linux
software using hiddev/hidraw devices but this patch doesn't allow
appearing of /dev/hiddev or /dev/hidraw files for any usb device with
ids 0x16c0 0x05df, right? Is there any chance that using such patch we
can break some linux software that uses /dev/hid* files and related
functionality to communicate with tiny85?

Please note that i'm not expert in tiny85 chip and i don't have any
deep knowledges on how usb ids are allocated for every device in the
world.
Masterkit company changed (or was able to change?) only Manufacturer,
Product, Serial fields in ma901 usb radio. I attached lsusb output in
the end of letter. Bad thing here is that Masterkit has other usb not
radio devices with the same usb ids based on tiny85 on the market.


Sorry if i'm over-alarmed, i just really dont want to break any
userspace programs by this patch.

If everything above is correct then i can use some dev->product,
dev->manufacturer, dev->serial checks in probe() function in
radio-ma901.c driver in the way like it's done in radio-keene.c driver
in probe function. If for example probe will discover that product
doesn't match then i can return -ENODEV. It's just an idea. But i
don't know if it is possible to do something with hid quirks: revert
and put comments somewhere or workaround and additional checks?
Well, any comments are welcome.
Alexey Klimov March 14, 2013, 8:55 p.m. UTC | #4
On Thu, Mar 14, 2013 at 2:20 PM, Dirk E. Wagner
<linux@wagner-budenheim.de> wrote:
> Hi Alexey,

Hi Dirk, Mauro, Jiri

> indeed your patch breaks Atmega applications which using V-USB
> (http://www.obdev.at/products/vusb/index.html), because 0x16c0, 0x05df are
> the default Ids of V-USB.
>
> Have a look at this FAQ
>
> https://github.com/obdev/v-usb/blob/master/usbdrv/USB-ID-FAQ.txt
>
> It seems that the Masterkit M901 also uses V-USB.
>
> I'm using an IR remote control receiver based on Atmega8 with V-USB. Since
> Kernel 3.8.2 there is no more hidraw device for my receiver, so I had to
> change the Device-ID to 0x27d9. I think there are a lot of other V-USB
> applications with similar problems.
>
> Dirk

Exactly. That's why i tried to point it out. Thanks for explaining
this in simplier words.

It's difficult to answer on top posting emails.

I don't understand one thing about your letter. Did you put
linux-media kernel list in bcc (hide copy)? Is there any reason for
this? http://www.mail-archive.com/linux-media@vger.kernel.org/msg59714.html

Mauro, Jiri,
can we revert this patch? If you need any ack or sign from me i'm
ready to send it.

I can contact people who cares about stable trees and ask them to
revert this patch from stable trees.

During 3.9-rcX cycle i can try to figure out some fix or additional
checks for radio-ma901.c driver.
Jiri Kosina March 18, 2013, 1:51 p.m. UTC | #5
On Fri, 15 Mar 2013, Alexey Klimov wrote:

> > indeed your patch breaks Atmega applications which using V-USB
> > (http://www.obdev.at/products/vusb/index.html), because 0x16c0, 0x05df are
> > the default Ids of V-USB.
> >
> > Have a look at this FAQ
> >
> > https://github.com/obdev/v-usb/blob/master/usbdrv/USB-ID-FAQ.txt
> >
> > It seems that the Masterkit M901 also uses V-USB.
> >
> > I'm using an IR remote control receiver based on Atmega8 with V-USB. Since
> > Kernel 3.8.2 there is no more hidraw device for my receiver, so I had to
> > change the Device-ID to 0x27d9. I think there are a lot of other V-USB
> > applications with similar problems.
> >
> > Dirk
> 
> Exactly. That's why i tried to point it out. Thanks for explaining
> this in simplier words.
> 
> It's difficult to answer on top posting emails.
> 
> I don't understand one thing about your letter. Did you put
> linux-media kernel list in bcc (hide copy)? Is there any reason for
> this? http://www.mail-archive.com/linux-media@vger.kernel.org/msg59714.html
> 
> Mauro, Jiri,
> can we revert this patch? If you need any ack or sign from me i'm
> ready to send it.
> 
> I can contact people who cares about stable trees and ask them to
> revert this patch from stable trees.
> 
> During 3.9-rcX cycle i can try to figure out some fix or additional
> checks for radio-ma901.c driver.

I can revert 0322bd3980 and push it out to Linus for 3.9 still, Ccing 
stable.

Or Mauro, as the original patch went in through your tree, are you 
handling that?

Also additional work will be needed later to properly detect the 
underlying device ... the best thing to do here is to put an entry into 
hid_ignore(), similar to what we do for example for Keene FM vs. Logitech 
AudioHub.
Alexey Klimov March 18, 2013, 11:49 p.m. UTC | #6
On Mon, Mar 18, 2013 at 5:51 PM, Jiri Kosina <jkosina@suse.cz> wrote:
> On Fri, 15 Mar 2013, Alexey Klimov wrote:
>
>> > indeed your patch breaks Atmega applications which using V-USB
>> > (http://www.obdev.at/products/vusb/index.html), because 0x16c0, 0x05df are
>> > the default Ids of V-USB.
>> >
>> > Have a look at this FAQ
>> >
>> > https://github.com/obdev/v-usb/blob/master/usbdrv/USB-ID-FAQ.txt
>> >
>> > It seems that the Masterkit M901 also uses V-USB.
>> >
>> > I'm using an IR remote control receiver based on Atmega8 with V-USB. Since
>> > Kernel 3.8.2 there is no more hidraw device for my receiver, so I had to
>> > change the Device-ID to 0x27d9. I think there are a lot of other V-USB
>> > applications with similar problems.
>> >
>> > Dirk
>>
>> Exactly. That's why i tried to point it out. Thanks for explaining
>> this in simplier words.
>>
>> It's difficult to answer on top posting emails.
>>
>> I don't understand one thing about your letter. Did you put
>> linux-media kernel list in bcc (hide copy)? Is there any reason for
>> this? http://www.mail-archive.com/linux-media@vger.kernel.org/msg59714.html
>>
>> Mauro, Jiri,
>> can we revert this patch? If you need any ack or sign from me i'm
>> ready to send it.
>>
>> I can contact people who cares about stable trees and ask them to
>> revert this patch from stable trees.
>>
>> During 3.9-rcX cycle i can try to figure out some fix or additional
>> checks for radio-ma901.c driver.
>
> I can revert 0322bd3980 and push it out to Linus for 3.9 still, Ccing
> stable.
>
> Or Mauro, as the original patch went in through your tree, are you
> handling that?

I think we really need to revert it before final release. It's already -rc3.

> Also additional work will be needed later to properly detect the
> underlying device ... the best thing to do here is to put an entry into
> hid_ignore(), similar to what we do for example for Keene FM vs. Logitech
> AudioHub.

Yes, i just checked how hid_ignore() works and prepared dirty fix to
test in almost the same way like it's done for Keene usb driver. I
will send correct fix in next few days.

Thanks.
Best regards, Klimov Alexey
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Jiri Kosina March 19, 2013, 8:38 a.m. UTC | #7
On Tue, 19 Mar 2013, Alexey Klimov wrote:

> > Or Mauro, as the original patch went in through your tree, are you
> > handling that?
> 
> I think we really need to revert it before final release. It's already -rc3.

If Mauro is currently too busy to handle this, I will take it. Please send 
it to me together with the appropriate hid_ignore() patch.

Thanks,
Jiri Kosina March 27, 2013, 10:18 a.m. UTC | #8
On Tue, 19 Mar 2013, Alexey Klimov wrote:

> Yes, i just checked how hid_ignore() works and prepared dirty fix to
> test in almost the same way like it's done for Keene usb driver. I
> will send correct fix in next few days.

Any news on this, please?
Alexey Klimov March 27, 2013, 8:33 p.m. UTC | #9
On Wed, Mar 27, 2013 at 2:18 PM, Jiri Kosina <jkosina@suse.cz> wrote:
> On Tue, 19 Mar 2013, Alexey Klimov wrote:
>
>> Yes, i just checked how hid_ignore() works and prepared dirty fix to
>> test in almost the same way like it's done for Keene usb driver. I
>> will send correct fix in next few days.
>
> Any news on this, please?

Hi Jiri,

I'm very very sorry (was busy because of life). I just sent two
patches to you, Mauro and two mail lists:
[patch 1/2] hid: fix Masterkit MA901 hid quirks
[patch 2/2] media: radio-ma901: return ENODEV in probe if usb_device
doesn't match

Please check. First one for hid layer, so maybe you can take it
directly through your tree. I hope it's not too late.
I think Mauro will take second patch.

I spend some time testing them trying to figure out right scenarios
and i hope i did correct checks.
It will be nice if someone can test patches because i don't have any
devices with same USB IDs as radio-ma901.

Thanks and best regards,
Alexey.
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Mauro Carvalho Chehab March 29, 2013, 1:05 p.m. UTC | #10
Em Thu, 28 Mar 2013 00:33:29 +0400
Alexey Klimov <klimov.linux@gmail.com> escreveu:

> On Wed, Mar 27, 2013 at 2:18 PM, Jiri Kosina <jkosina@suse.cz> wrote:
> > On Tue, 19 Mar 2013, Alexey Klimov wrote:
> >
> >> Yes, i just checked how hid_ignore() works and prepared dirty fix to
> >> test in almost the same way like it's done for Keene usb driver. I
> >> will send correct fix in next few days.
> >
> > Any news on this, please?
> 
> Hi Jiri,
> 
> I'm very very sorry (was busy because of life). I just sent two
> patches to you, Mauro and two mail lists:
> [patch 1/2] hid: fix Masterkit MA901 hid quirks
> [patch 2/2] media: radio-ma901: return ENODEV in probe if usb_device
> doesn't match
> 
> Please check. First one for hid layer, so maybe you can take it
> directly through your tree. I hope it's not too late.
> I think Mauro will take second patch.

It is better to add both patches via the same tree. As it is badly 
affecting HID, it seems better if Jiri can apply both patches. 

Also, there's no other patch for radio-ma901 on my tree. So, 
I don't expect any conflicts if those patches got merged via hid tree.

Jiri, could you please apply both patches on your tree?

For both:
> [patch 1/2] hid: fix Masterkit MA901 hid quirks
> [patch 2/2] media: radio-ma901: return ENODEV in probe if usb_device

Acked-by: Mauro Carvalho Chehab <mchehab@redhat.com>

Regards,
Mauro
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Jiri Kosina March 29, 2013, 2:14 p.m. UTC | #11
On Fri, 29 Mar 2013, Mauro Carvalho Chehab wrote:

> > >> Yes, i just checked how hid_ignore() works and prepared dirty fix to
> > >> test in almost the same way like it's done for Keene usb driver. I
> > >> will send correct fix in next few days.
> > >
> > > Any news on this, please?
> > 
> > Hi Jiri,
> > 
> > I'm very very sorry (was busy because of life). I just sent two
> > patches to you, Mauro and two mail lists:
> > [patch 1/2] hid: fix Masterkit MA901 hid quirks
> > [patch 2/2] media: radio-ma901: return ENODEV in probe if usb_device
> > doesn't match
> > 
> > Please check. First one for hid layer, so maybe you can take it
> > directly through your tree. I hope it's not too late.
> > I think Mauro will take second patch.
> 
> It is better to add both patches via the same tree. As it is badly 
> affecting HID, it seems better if Jiri can apply both patches. 
> 
> Also, there's no other patch for radio-ma901 on my tree. So, 
> I don't expect any conflicts if those patches got merged via hid tree.
> 
> Jiri, could you please apply both patches on your tree?
> 
> For both:
> > [patch 1/2] hid: fix Masterkit MA901 hid quirks
> > [patch 2/2] media: radio-ma901: return ENODEV in probe if usb_device
> 
> Acked-by: Mauro Carvalho Chehab <mchehab@redhat.com>

Absolutely. Will add your Ack and push it to Linus for 3.9 still.

Thanks,
Lars Buerding March 29, 2013, 7:17 p.m. UTC | #12
On 27.03.2013 21:33, Alexey Klimov wrote:


> [patch 1/2] hid: fix Masterkit MA901 hid quirks
> [patch 2/2] media: radio-ma901: return ENODEV in probe if usb_device
> doesn't match

> I spend some time testing them trying to figure out right scenarios
> and i hope i did correct checks.
> It will be nice if someone can test patches because i don't have any
> devices with same USB IDs as radio-ma901.

Thanks Alexey, I am using an infrared receiver running the same software
Dirk uses, applied your [patch 1/2] against a vanilla kernel v3.4.38 on my
vdr machine. The hidraw device is generated again as expected.

This is my USB device:

   idVendor           0x16c0 VOTI
   idProduct          0x05df
   bcdDevice            1.08
   iManufacturer           1 www.mikrocontroller.net/articles/USB_IR_Remote_Receiver
   iProduct                2 USB IR Remote Receiver


>
> Thanks and best regards,
> Alexey.
>

Thanks,
Lars

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index 5de3bb3..8e06569 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -2025,6 +2025,7 @@  static const struct hid_device_id hid_ignore_list[] = {
 	{ HID_USB_DEVICE(USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_HYBRID) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_HEATCONTROL) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_MADCATZ, USB_DEVICE_ID_MADCATZ_BEATPAD) },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_MASTERKIT, USB_DEVICE_ID_MASTERKIT_MA901RADIO) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_MCC, USB_DEVICE_ID_MCC_PMD1024LS) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_MCC, USB_DEVICE_ID_MCC_PMD1208LS) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_MICROCHIP, USB_DEVICE_ID_PICKIT1) },
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
index 1dcb76f..17aa4f6 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -533,6 +533,9 @@ 
 #define USB_VENDOR_ID_MADCATZ		0x0738
 #define USB_DEVICE_ID_MADCATZ_BEATPAD	0x4540
 
+#define USB_VENDOR_ID_MASTERKIT			0x16c0
+#define USB_DEVICE_ID_MASTERKIT_MA901RADIO	0x05df
+
 #define USB_VENDOR_ID_MCC		0x09db
 #define USB_DEVICE_ID_MCC_PMD1024LS	0x0076
 #define USB_DEVICE_ID_MCC_PMD1208LS	0x007a