Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d2266570 authored by Takashi Iwai's avatar Takashi Iwai
Browse files

Merge branch 'topic/misc' into for-linus

parents 5cdf745e dde7ad8d
Loading
Loading
Loading
Loading
+21 −15
Original line number Original line Diff line number Diff line
@@ -4288,7 +4288,7 @@ struct _snd_pcm_runtime {
<![CDATA[
<![CDATA[
  struct snd_rawmidi *rmidi;
  struct snd_rawmidi *rmidi;
  snd_mpu401_uart_new(card, 0, MPU401_HW_MPU401, port, info_flags,
  snd_mpu401_uart_new(card, 0, MPU401_HW_MPU401, port, info_flags,
                      irq, irq_flags, &rmidi);
                      irq, &rmidi);
]]>
]]>
          </programlisting>
          </programlisting>
        </informalexample>
        </informalexample>
@@ -4343,6 +4343,13 @@ struct _snd_pcm_runtime {
	by itself to start processing the output stream in the irq handler.
	by itself to start processing the output stream in the irq handler.
	</para>
	</para>


	<para>
	If the MPU-401 interface shares its interrupt with the other logical
	devices on the card, set <constant>MPU401_INFO_IRQ_HOOK</constant>
	(see <link linkend="midi-interface-interrupt-handler"><citetitle>
	below</citetitle></link>).
	</para>

      <para>
      <para>
        Usually, the port address corresponds to the command port and
        Usually, the port address corresponds to the command port and
        port + 1 corresponds to the data port. If not, you may change
        port + 1 corresponds to the data port. If not, you may change
@@ -4375,14 +4382,12 @@ struct _snd_pcm_runtime {
      </para>
      </para>


      <para>
      <para>
        The 6th argument specifies the irq number for UART. If the irq
	The 6th argument specifies the ISA irq number that will be
      is already allocated, pass 0 to the 7th argument
	allocated.  If no interrupt is to be allocated (because your
      (<parameter>irq_flags</parameter>). Otherwise, pass the flags
	code is already allocating a shared interrupt, or because the
      for irq allocation 
	device does not use interrupts), pass -1 instead.
      (<constant>SA_XXX</constant> bits) to it, and the irq will be
	For a MPU-401 device without an interrupt, a polling timer
      reserved by the mpu401-uart layer. If the card doesn't generate
	will be used instead.
      UART interrupts, pass -1 as the irq number. Then a timer
      interrupt will be invoked for polling. 
      </para>
      </para>
    </section>
    </section>


@@ -4390,12 +4395,13 @@ struct _snd_pcm_runtime {
      <title>Interrupt Handler</title>
      <title>Interrupt Handler</title>
      <para>
      <para>
        When the interrupt is allocated in
        When the interrupt is allocated in
      <function>snd_mpu401_uart_new()</function>, the private
      <function>snd_mpu401_uart_new()</function>, an exclusive ISA
      interrupt handler is used, hence you don't have anything else to do
      interrupt handler is automatically used, hence you don't have
      than creating the mpu401 stuff. Otherwise, you have to call
      anything else to do than creating the mpu401 stuff.  Otherwise, you
      <function>snd_mpu401_uart_interrupt()</function> explicitly when
      have to set <constant>MPU401_INFO_IRQ_HOOK</constant>, and call
      a UART interrupt is invoked and checked in your own interrupt
      <function>snd_mpu401_uart_interrupt()</function> explicitly from your
      handler.  
      own interrupt handler when it has determined that a UART interrupt
      has occurred.
      </para>
      </para>


      <para>
      <para>
+1 −1
Original line number Original line Diff line number Diff line
@@ -5990,7 +5990,7 @@ M: Jaroslav Kysela <perex@perex.cz>
M:	Takashi Iwai <tiwai@suse.de>
M:	Takashi Iwai <tiwai@suse.de>
L:	alsa-devel@alsa-project.org (moderated for non-subscribers)
L:	alsa-devel@alsa-project.org (moderated for non-subscribers)
W:	http://www.alsa-project.org/
W:	http://www.alsa-project.org/
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6.git
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
T:	git git://git.alsa-project.org/alsa-kernel.git
T:	git git://git.alsa-project.org/alsa-kernel.git
S:	Maintained
S:	Maintained
F:	Documentation/sound/
F:	Documentation/sound/
+11 −6
Original line number Original line Diff line number Diff line
@@ -377,12 +377,6 @@ struct usb_endpoint_descriptor {
#define USB_ENDPOINT_NUMBER_MASK	0x0f	/* in bEndpointAddress */
#define USB_ENDPOINT_NUMBER_MASK	0x0f	/* in bEndpointAddress */
#define USB_ENDPOINT_DIR_MASK		0x80
#define USB_ENDPOINT_DIR_MASK		0x80


#define USB_ENDPOINT_SYNCTYPE		0x0c
#define USB_ENDPOINT_SYNC_NONE		(0 << 2)
#define USB_ENDPOINT_SYNC_ASYNC		(1 << 2)
#define USB_ENDPOINT_SYNC_ADAPTIVE	(2 << 2)
#define USB_ENDPOINT_SYNC_SYNC		(3 << 2)

#define USB_ENDPOINT_XFERTYPE_MASK	0x03	/* in bmAttributes */
#define USB_ENDPOINT_XFERTYPE_MASK	0x03	/* in bmAttributes */
#define USB_ENDPOINT_XFER_CONTROL	0
#define USB_ENDPOINT_XFER_CONTROL	0
#define USB_ENDPOINT_XFER_ISOC		1
#define USB_ENDPOINT_XFER_ISOC		1
@@ -390,6 +384,17 @@ struct usb_endpoint_descriptor {
#define USB_ENDPOINT_XFER_INT		3
#define USB_ENDPOINT_XFER_INT		3
#define USB_ENDPOINT_MAX_ADJUSTABLE	0x80
#define USB_ENDPOINT_MAX_ADJUSTABLE	0x80


#define USB_ENDPOINT_SYNCTYPE		0x0c
#define USB_ENDPOINT_SYNC_NONE		(0 << 2)
#define USB_ENDPOINT_SYNC_ASYNC		(1 << 2)
#define USB_ENDPOINT_SYNC_ADAPTIVE	(2 << 2)
#define USB_ENDPOINT_SYNC_SYNC		(3 << 2)

#define USB_ENDPOINT_USAGE_MASK		0x30
#define USB_ENDPOINT_USAGE_DATA		0x00
#define USB_ENDPOINT_USAGE_FEEDBACK	0x10
#define USB_ENDPOINT_USAGE_IMPLICIT_FB	0x20	/* Implicit feedback Data endpoint */

/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/


/**
/**
+3 −1
Original line number Original line Diff line number Diff line
@@ -706,7 +706,7 @@ struct snd_timer_tread {
 *                                                                          *
 *                                                                          *
 ****************************************************************************/
 ****************************************************************************/


#define SNDRV_CTL_VERSION		SNDRV_PROTOCOL_VERSION(2, 0, 6)
#define SNDRV_CTL_VERSION		SNDRV_PROTOCOL_VERSION(2, 0, 7)


struct snd_ctl_card_info {
struct snd_ctl_card_info {
	int card;			/* card number */
	int card;			/* card number */
@@ -803,6 +803,8 @@ struct snd_ctl_elem_info {
			unsigned int items;	/* R: number of items */
			unsigned int items;	/* R: number of items */
			unsigned int item;	/* W: item number */
			unsigned int item;	/* W: item number */
			char name[64];		/* R: value name */
			char name[64];		/* R: value name */
			__u64 names_ptr;	/* W: names list (ELEM_ADD only) */
			unsigned int names_length;
		} enumerated;
		} enumerated;
		unsigned char reserved[128];
		unsigned char reserved[128];
	} value;
	} value;
+4 −3
Original line number Original line Diff line number Diff line
@@ -50,7 +50,10 @@
#define MPU401_INFO_INTEGRATED	(1 << 2)	/* integrated h/w port */
#define MPU401_INFO_INTEGRATED	(1 << 2)	/* integrated h/w port */
#define MPU401_INFO_MMIO	(1 << 3)	/* MMIO access */
#define MPU401_INFO_MMIO	(1 << 3)	/* MMIO access */
#define MPU401_INFO_TX_IRQ	(1 << 4)	/* independent TX irq */
#define MPU401_INFO_TX_IRQ	(1 << 4)	/* independent TX irq */
#define MPU401_INFO_IRQ_HOOK	(1 << 5)	/* mpu401 irq handler is called
						   from driver irq handler */
#define MPU401_INFO_NO_ACK	(1 << 6)	/* No ACK cmd needed */
#define MPU401_INFO_NO_ACK	(1 << 6)	/* No ACK cmd needed */
#define MPU401_INFO_USE_TIMER	(1 << 15)	/* internal */


#define MPU401_MODE_BIT_INPUT		0
#define MPU401_MODE_BIT_INPUT		0
#define MPU401_MODE_BIT_OUTPUT		1
#define MPU401_MODE_BIT_OUTPUT		1
@@ -73,8 +76,7 @@ struct snd_mpu401 {
	unsigned long port;		/* base port of MPU-401 chip */
	unsigned long port;		/* base port of MPU-401 chip */
	unsigned long cport;		/* port + 1 (usually) */
	unsigned long cport;		/* port + 1 (usually) */
	struct resource *res;		/* port resource */
	struct resource *res;		/* port resource */
	int irq;			/* IRQ number of MPU-401 chip (-1 = poll) */
	int irq;			/* IRQ number of MPU-401 chip */
	int irq_flags;


	unsigned long mode;		/* MPU401_MODE_XXXX */
	unsigned long mode;		/* MPU401_MODE_XXXX */
	int timer_invoked;
	int timer_invoked;
@@ -131,7 +133,6 @@ int snd_mpu401_uart_new(struct snd_card *card,
			unsigned long port,
			unsigned long port,
			unsigned int info_flags,
			unsigned int info_flags,
			int irq,
			int irq,
			int irq_flags,
			struct snd_rawmidi ** rrawmidi);
			struct snd_rawmidi ** rrawmidi);


#endif /* __SOUND_MPU401_H */
#endif /* __SOUND_MPU401_H */
Loading