Re: serial device name for smart card reader that is integrated to Anysee DVB USB device

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Am Mittwoch, 5. Oktober 2011, 08:19:10 schrieb Antti Palosaari:
> On 10/05/2011 09:15 AM, Oliver Neukum wrote:

> > But, Greg, Antti makes a very valid point here. The generic code assumes that
> > it owns intfdata, that is you cannot use it as is for access to anything that lacks
> > its own interface. But this is not a fatal flaw. We can alter the generic code to use
> > an accessor function the driver can provide and make it default to get/set_intfdata
> >
> > What do you think?
> 
> Oliver, I looked your old thread reply but I didn't catch how you meant 
> it to happen. Could you give some small example?

Look at this structure:

struct dvb_usb_device {
        struct dvb_usb_device_properties props;
        struct dvb_usb_device_description *desc;

        struct usb_device *udev;

#define DVB_USB_STATE_INIT        0x000
#define DVB_USB_STATE_I2C         0x001
#define DVB_USB_STATE_DVB         0x002
#define DVB_USB_STATE_REMOTE      0x004
        int state;

        int powered;

        /* locking */
        struct mutex usb_mutex;

        /* i2c */
        struct mutex i2c_mutex;
        struct i2c_adapter i2c_adap;

        int                    num_adapters_initialized;
        struct dvb_usb_adapter adapter[MAX_NO_OF_ADAPTER_PER_DEVICE];

        /* remote control */
        struct rc_dev *rc_dev;
        struct input_dev *input_dev;
        char rc_phys[64];
        struct delayed_work rc_query_work;
        u32 last_event;
        int last_state;

        struct module *owner;

        void *priv;
};

It contains a pointer to an input device. You could add a pointer to a usb
serial device here. This leaves you with two problems.

1. The USB serial layer will try to set intfdata

We will need to change it to use a function the driver provides to store
a pointer to its private data.

2. The usb serial layer will not learn about events it needs to learn about.

We need to extended the usb dvb code to call into a sufficiently abstracted
method in the usb serial code.


Conceptually the usb serial code is ready to share an interface among
multiple serial ports, but not to share an interface with something else.
I described the steps necesary to allow that. This is new, so there are
no examples.

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


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux