~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/sound/ac97/controller.h

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /include/sound/ac97/controller.h (Version linux-6.11.5) and /include/sound/ac97/controller.h (Version linux-4.20.17)


  1 /* SPDX-License-Identifier: GPL-2.0                 1 /* SPDX-License-Identifier: GPL-2.0
  2  *                                                  2  *
  3  * Copyright (C) 2016 Robert Jarzmik <robert.j      3  * Copyright (C) 2016 Robert Jarzmik <robert.jarzmik@free.fr>
  4  */                                                 4  */
  5                                                     5 
  6 #ifndef AC97_CONTROLLER_H                           6 #ifndef AC97_CONTROLLER_H
  7 #define AC97_CONTROLLER_H                           7 #define AC97_CONTROLLER_H
  8                                                     8 
  9 #include <linux/device.h>                           9 #include <linux/device.h>
 10 #include <linux/list.h>                            10 #include <linux/list.h>
 11                                                    11 
 12 #define AC97_BUS_MAX_CODECS 4                      12 #define AC97_BUS_MAX_CODECS 4
 13 #define AC97_SLOTS_AVAILABLE_ALL 0xf               13 #define AC97_SLOTS_AVAILABLE_ALL 0xf
 14                                                    14 
 15 struct ac97_controller_ops;                        15 struct ac97_controller_ops;
 16                                                    16 
 17 /**                                                17 /**
 18  * struct ac97_controller - The AC97 controlle     18  * struct ac97_controller - The AC97 controller of the AC-Link
 19  * @ops:                the AC97 operations.       19  * @ops:                the AC97 operations.
 20  * @controllers:        linked list of all exi     20  * @controllers:        linked list of all existing controllers.
 21  * @adap:               the shell device ac97-     21  * @adap:               the shell device ac97-%d, ie. ac97 adapter
 22  * @nr:                 the number of the shel     22  * @nr:                 the number of the shell device
 23  * @slots_available:    the mask of accessible     23  * @slots_available:    the mask of accessible/scanable codecs.
 24  * @parent:             the device providing t     24  * @parent:             the device providing the AC97 controller.
 25  * @codecs:             the 4 possible AC97 co     25  * @codecs:             the 4 possible AC97 codecs (NULL if none found).
 26  * @codecs_pdata:       platform_data for each     26  * @codecs_pdata:       platform_data for each codec (NULL if no pdata).
 27  *                                                 27  *
 28  * This structure is internal to AC97 bus, and     28  * This structure is internal to AC97 bus, and should not be used by the
 29  * controllers themselves, excepting for using     29  * controllers themselves, excepting for using @dev.
 30  */                                                30  */
 31 struct ac97_controller {                           31 struct ac97_controller {
 32         const struct ac97_controller_ops *ops;     32         const struct ac97_controller_ops *ops;
 33         struct list_head controllers;              33         struct list_head controllers;
 34         struct device adap;                        34         struct device adap;
 35         int nr;                                    35         int nr;
 36         unsigned short slots_available;            36         unsigned short slots_available;
 37         struct device *parent;                     37         struct device *parent;
 38         struct ac97_codec_device *codecs[AC97_     38         struct ac97_codec_device *codecs[AC97_BUS_MAX_CODECS];
 39         void *codecs_pdata[AC97_BUS_MAX_CODECS     39         void *codecs_pdata[AC97_BUS_MAX_CODECS];
 40 };                                                 40 };
 41                                                    41 
 42 /**                                                42 /**
 43  * struct ac97_controller_ops - The AC97 opera     43  * struct ac97_controller_ops - The AC97 operations
 44  * @reset:      Cold reset of the AC97 AC-Link     44  * @reset:      Cold reset of the AC97 AC-Link.
 45  * @warm_reset: Warm reset of the AC97 AC-Link     45  * @warm_reset: Warm reset of the AC97 AC-Link.
 46  * @read:       Read of a single AC97 register     46  * @read:       Read of a single AC97 register.
 47  *              Returns the register value or      47  *              Returns the register value or a negative error code.
 48  * @write:      Write of a single AC97 registe     48  * @write:      Write of a single AC97 register.
 49  *                                                 49  *
 50  * These are the basic operation an AC97 contr     50  * These are the basic operation an AC97 controller must provide for an AC97
 51  * access functions. Amongst these, all but th     51  * access functions. Amongst these, all but the last 2 are mandatory.
 52  * The slot number is also known as the AC97 c     52  * The slot number is also known as the AC97 codec number, between 0 and 3.
 53  */                                                53  */
 54 struct ac97_controller_ops {                       54 struct ac97_controller_ops {
 55         void (*reset)(struct ac97_controller *     55         void (*reset)(struct ac97_controller *adrv);
 56         void (*warm_reset)(struct ac97_control     56         void (*warm_reset)(struct ac97_controller *adrv);
 57         int (*write)(struct ac97_controller *a     57         int (*write)(struct ac97_controller *adrv, int slot,
 58                      unsigned short reg, unsig     58                      unsigned short reg, unsigned short val);
 59         int (*read)(struct ac97_controller *ad     59         int (*read)(struct ac97_controller *adrv, int slot, unsigned short reg);
 60 };                                                 60 };
 61                                                    61 
 62 #if IS_ENABLED(CONFIG_AC97_BUS_NEW)                62 #if IS_ENABLED(CONFIG_AC97_BUS_NEW)
 63 struct ac97_controller *snd_ac97_controller_re     63 struct ac97_controller *snd_ac97_controller_register(
 64         const struct ac97_controller_ops *ops,     64         const struct ac97_controller_ops *ops, struct device *dev,
 65         unsigned short slots_available, void *     65         unsigned short slots_available, void **codecs_pdata);
 66 void snd_ac97_controller_unregister(struct ac9     66 void snd_ac97_controller_unregister(struct ac97_controller *ac97_ctrl);
 67 #else                                              67 #else
 68 static inline struct ac97_controller *             68 static inline struct ac97_controller *
 69 snd_ac97_controller_register(const struct ac97     69 snd_ac97_controller_register(const struct ac97_controller_ops *ops,
 70                              struct device *de     70                              struct device *dev,
 71                              unsigned short sl     71                              unsigned short slots_available,
 72                              void **codecs_pda     72                              void **codecs_pdata)
 73 {                                                  73 {
 74         return ERR_PTR(-ENODEV);                   74         return ERR_PTR(-ENODEV);
 75 }                                                  75 }
 76                                                    76 
 77 static inline void                                 77 static inline void
 78 snd_ac97_controller_unregister(struct ac97_con     78 snd_ac97_controller_unregister(struct ac97_controller *ac97_ctrl)
 79 {                                                  79 {
 80 }                                                  80 }
 81 #endif                                             81 #endif
 82                                                    82 
 83 #endif                                             83 #endif
 84                                                    84 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php