CN108352161A - 动态音频编解码器枚举 - Google Patents
动态音频编解码器枚举 Download PDFInfo
- Publication number
- CN108352161A CN108352161A CN201680067900.5A CN201680067900A CN108352161A CN 108352161 A CN108352161 A CN 108352161A CN 201680067900 A CN201680067900 A CN 201680067900A CN 108352161 A CN108352161 A CN 108352161A
- Authority
- CN
- China
- Prior art keywords
- driving
- audio codec
- values
- audio
- codec hardware
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/16—Sound input; Sound output
- G06F3/165—Management of the audio stream, e.g. setting of volume, audio stream path
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/16—Sound input; Sound output
- G06F3/162—Interface to dedicated audio devices, e.g. audio drivers, interface to CODECs
Abstract
讨论了有关动态音频编解码器枚举和动态提供驱动之间通信的技术。这些技术可以包括经由音频编解码器硬件中的邮箱寄存器在驱动之间提供后门通信。
Description
优先权要求
本申请要求于2015年12月21日提交的标题为“DYNAMIC AUDIO CODEC ENUMERATION”的美国专利申请序列号14 / 976,453的优先权,并且其全部内容通过引用方式并入本文。
背景技术
音频控制器、音频编解码器、图形软件驱动、音频软件驱动和操作系统之间可能会出现电源管理困难。例如,当音频/视频接收器连接到平台时,发送到数字端口(例如,HDMI/ DP)的音频处理可以通过集成音频编解码器发生。音频驱动可以基于在操作系统中启动的音频应用来控制编解码器编程和功能,使得当HDMI / DP音频端点被插入(诸如此类)时,图形驱动可以在集成编解码器中设置存在检测事件,这可能会唤醒音频驱动。
此外,基于接收器能力,图形驱动和音频驱动程序对集成编解码器寄存器进行编程。一些寄存器(例如,verb)可以由音频驱动编程。这样的编程可以被表征为编解码器枚举过程。例如,音频应用可以加载具有音频数据的存储器,并且音频驱动可以通过音频控制器发起到集成编解码器的音频数据传输。
在一些上下文中,显示器硬件逻辑可以分布在多个电源井(power well)中,并且在显示低功率状态期间,可以关闭一些逻辑。例如,音频编解码器硬件逻辑可能处于电源井中,当HDMI / DP外部端口未用于显示或者存在音频编解码器未用于回放的另一较低功率状态时该电源井关闭。在这种情况下,音频编解码器寄存器值将丢失,并且音频驱动不会重新编程枚举寄存器。在这样的示例中,当显示器从低功率状态恢复时,用户从GUI丢失音频编解码器并且将不能回放音频。例如,枚举可能仅在硬重置时再次发生。
解决这些问题的当前技术可能包括保持音频控制器和音频编解码器两者都上电。这种技术避免了丢失音频编解码器中的寄存器内容,因为音频编解码器不允许被断电。然而,这种技术在节电方面可能不是最优的,这是不希望的。
在没有音频编解码器的损失的情况下提供低功率模式可能是有利的。就这些和其他考虑而言,需要目前的改进。
附图说明
本文描述的材料在附图中通过示例的方式而并非通过限制的方式来说明。为了说明的简单和清楚起见,图中所示的元件不一定按比例绘制。例如,为了清楚起见,一些元件的尺寸可能相对于其他元件被夸大。此外,在认为适当的情况下,附图标记已在图中重复以指示对应或类似的元件。在附图中:
图1图示了用于在驱动之间动态提供通信的示例设备;
图2是用于在驱动之间动态提供通信的示例过程的并行流程图;
图3是用于在驱动之间动态提供通信的另一示例过程的并行流程图;
图4图示了示例音频和图形邮箱寄存器和示例数据对象;
图5A和5B图示了用于提供动态音频编解码器枚举的示例过程;
图6是图示了用于在驱动之间动态提供通信的示例过程的流程图;
图7是用于在驱动之间动态提供通信的示例系统的说明示图;
图8是示例系统的说明示图;以及
图9图示了全部根据本公开的至少一些实现而布置的示例小型形状因数设备。
具体实施方式
现在参照附图描述一个或多个实施例或实现。尽管讨论了具体的配置和布置,但应当理解,这仅仅是为了说明的目的而完成的。相关领域的技术人员将认识到,在不脱离本说明书的精神和范围的情况下,可以采用其他配置和布置。对于相关领域的技术人员来说将显而易见的是,本文描述的技术和/或布置也可以用于除了本文描述的系统和应用以外的各种其他系统和应用。
尽管以下描述阐述了可以在例如诸如片上系统(SoC)架构之类的架构中显示的各种实现,但是本文描述的技术和/或布置的实现不局限于特定的架构和/或计算系统,并且可以通过用于类似的目的任意架构和/或计算系统来实现。例如,采用例如多个集成电路(IC)芯片和/或封装和/或诸如多功能设备、平板计算机、智能电话等的各种计算设备和/或消费电子(CE)设备的各种架构可以实现本文描述的技术和/或布置。此外,尽管以下描述可以阐述诸如系统组件的逻辑实现、类型和相互关系、逻辑划分/集成选择之类的许多具体细节,但是可以在没有这些具体细节的情况下实践所要求保护的主题。在其他情况下,可能未详细示出诸如例如控制结构和完整软件指令序列之类的一些材料,以免使本文公开的材料模糊。
本文公开的材料可以用硬件、固件、软件或其任意组合来实现。本文公开的材料还可以实现为存储在机器可读介质上的指令,其可以由一个或多个处理器读取和执行。机器可读介质可以包括用于以可被机器(例如,计算设备)读取的形式存储或传输信息的任意介质和/或机构。例如,机器可读介质可以包括只读存储器(ROM);随机访问存储器(RAM);磁盘存储介质;光存储介质;闪存设备;电学、光学、声学或其他形式的传播信号(例如载波、红外信号、数字信号等)等。
在说明书中对“一个实现”、“实现”、“示例实现”等的引用指示所描述的实现可以包括特定特征、结构或特性,但是每个实施例可能不一定包括该特定特征、结构或特征。而且,这样的短语不一定是指相同的实现。此外,当结合实施例描述特定的特征、结构或特性时,所主张的是结合无论在本文中是否明确描述的其他实现来实现这样的特征、结构或特性是在本领域技术人员的知识范围内。
本文描述的方法、设备、装置、计算平台和物品涉及音频编解码器硬件的动态枚举以及经由音频编解码器硬件在驱动之间动态地提供通信。
如上所述,解决在音频编解码器的初始枚举期间提供的音频编解码器verb的丢失的当前技术可能不提供节电,因为这样的技术包括不允许音频编解码器进入较低功率状态(例如,断电)。本文讨论的所讨论的技术可以经由后门机制来提供音频编解码器硬件的动态枚举。例如,音频编解码器硬件后门可以用于通过图形驱动重新编程丢失的寄存器。在一些实施例中,在音频编解码器硬件中,可以为图形驱动提供路径以访问verb寄存器作为存储器映射IO寄存器。图形驱动可以通过该后门读取verb寄存器,并在低功率模式下关闭显示器电源井(音频编解码器硬件存在于该电源井中)之前保存它们。当显示器电源井再次打开时,图形驱动可以在将音频热插拔事件(或诸如此类的事件)设置给音频驱动之前通过后门来恢复verb寄存器。使用此类技术,音频驱动不必重新枚举这些寄存器,并且通过图形驱动利用此动态枚举改善了用户体验。
在一个实施例中,在如所讨论的音频编解码器寄存器的保存和恢复的上下文中,可以使用销售商小部件中的邮箱寄存器而不违反诸如高清晰度(HD)音频规范等的任意现有音频规范。可以通过verb编程由音频驱动来填充这种邮箱寄存器(例如,在初始化时),并且寄存器可以由图形驱动通过MMIO寄存器访问技术来访问。例如,这些技术可能不会违反现有的规范,并且可能不需要一个驱动来跟踪另一驱动的寄存器访问机构。
例如,本文讨论的技术可以动态枚举音频编解码器,而无需用户在显示器进入/退出低功率状态时注意到差异。这些技术可能涉及音频编解码器硬件、音频驱动和图形驱动。在一个实施例中,可以在音频编解码器硬件中提供以下寄存器和中断:三个32位寄存器以支持音频编解码器中的立即命令模式、供应商定义的小部件寄存器中的音频和图形邮箱寄存器(这种邮箱寄存器可以提供用于通过如本文所述的音频编解码器硬件在音频驱动和图形驱动之间进行通信)、供应商定义的小部件中的未经请求的标签和未经请求的启用、以及到图形驱动的中断寄存器。
此外,所描述的技术可以用于经由音频编解码器硬件在驱动之间期望的通信的任意上下文。这些技术可以提供驱动之间的动态通信,并且可以包括由驱动向音频编解码器硬件的邮箱寄存器填充值,使得邮箱寄存器至少可由该驱动写访问,并且另一驱动仅能读访问,基于邮箱寄存器的填充从音频编解码器硬件向另一驱动提供中断,从另一驱动并响应于中断提供读取邮箱寄存器的命令,以及通过音频编解码器硬件响应于命令向其他编解码器发送来自邮箱寄存器的值。这些技术可以不违反驱动之间和驱动之中的现有规范,并可允许每个驱动使用自己的内存访问技术。
图1图示了根据本公开的至少一些实现布置的用于动态地提供驱动之间的通信的示例设备100。如图1所示,设备100可以包括音频驱动101、音频控制器硬件(HW)103、音频编解码器硬件104以及图形驱动102。例如,音频驱动101和图形驱动102可以经由诸如中央处理器的处理器来控制软件接口并向音频编解码器硬件104和/或音频控制器硬件103提供软件接口来实现。例如,图形驱动102可以是图形显示驱动等,并且图形驱动102可以耦合到音频编解码器硬件104。设备100可以是任意合适的形状因数设备。例如,设备100可以是计算机、膝上型计算机、超极本、平板计算机、智能手机、平板手机、数码相机、显示设备、游戏设备、诸如智能手表、智能眼镜、或类似物的可穿戴设备。在一个示例中,设备100可以经由包括音频编解码器硬件104的音频邮箱(MB)寄存器106和图形邮箱寄存器107的邮箱寄存器在音频驱动101和图形驱动102之间提供通信。
如所示,在一些实施例中,音频驱动101可以经由音频控制器硬件103访问音频编解码器硬件104。音频驱动101可以是向硬件组件提供软件接口的任意合适的驱动。例如,音频驱动101可以使用直接存储器访问引擎(包括例如命令输出环形缓冲器(CORB)直接存储器访问引擎131和响应输入环形缓冲器(RIRB)直接存储器访问引擎132)通过直接存储器访问(DMA)111向音频控制器硬件103写入。如所示,直接存储器访问引擎131可由音频驱动101用于写访问,且直接存储器访问引擎132可用于读访问。来自音频驱动101的任意命令等和/或来自音频编解码器硬件104的数据传输等可以经由音频总线113从音频控制器硬件103向音频编解码器硬件104/从音频编解码器硬件104向音频控制器硬件103传递。音频控制器硬件103可以是任意合适的音频控制器,例如HD音频控制器等。类似地,音频总线113可以是任意合适的音频总线,诸如HD音频总线等。尽管用利用直接存储器访问的音频控制器进行说明,但是音频驱动101可以使用任意合适的技术或架构来访问音频编解码器硬件104。
此外,如音频编解码器硬件104中的阴影线所示,音频驱动101可以访问(例如,经由音频控制器硬件103和音频总线113)、转换器verb108、引脚verb109、功能verb110和包括音频邮箱寄存器106和图形邮箱寄存器107的销售商verb105。如本文所使用的,术语verb表示任意存储器结构,诸如存储器寄存器等。图形驱动102可以通过存储器映射输入/输出(MMIO)访问112来访问音频编解码器硬件104。而且,如音频编解码器硬件104中的实线所示,图形驱动102可访问转换器verb108、引脚verb109、功能verb110以及包括音频邮箱寄存器106和图形邮箱寄存器107的销售商verb105。
如所讨论的,可以提供音频邮箱寄存器106和图形邮箱寄存器107以促进音频驱动101和图形驱动102之间的通信(例如,后门通信)。在一个实施例中,可以将音频邮箱寄存器106和图形邮箱寄存器107实现为销售商verb105。例如,这种销售商verb105可以提供在现有规范或基准规范等之外的verb或寄存器。这样的销售商verb105因此可以独立于这些规范而使用,并且不需要音频驱动101和图形驱动102修改那里存在的行为。这样的销售商verb105可以被表征为verb、寄存器、邮箱寄存器等。音频邮箱寄存器106和图形邮箱寄存器107可以包括任意合适大小的任意合适的存储器寄存器,例如32位寄存器等。音频编解码器硬件104可以是任意合适的音频编解码器,诸如HD音频编解码器、音频显示编解码器等。
图2是根据本公开的至少一些实现布置的用于动态地提供驱动之间的通信的示例过程200的并行流程图。例如,过程200可以提供允许图形驱动102经由音频编解码器硬件104和音频控制器硬件103与音频驱动101通信的通信路径。
如所示出的,过程200可以在操作201处开始,其中图形驱动102可以将值填充到图形邮箱,诸如音频编解码器硬件104的图形邮箱寄存器107。图形驱动102可以使用任意合适的一种或多种技术(诸如MMIO访问112等之类)来填充值。在一个实施例中,图形驱动102通过音频编解码器硬件104的立即命令模式来向音频编解码器硬件104中的图形邮箱寄存器107写入。例如,音频编解码器硬件104的这种立即命令模式可以由音频编解码器硬件104的三个32位寄存器提供,其支持立即命令(未示出)。例如,图形驱动102可以至少对图形邮箱寄存器107进行写访问。此外,这些值可以是要传送给音频驱动101的任意合适的值。在一些实施例中,这些值可以指示音频编解码器硬件104的掉电或低功率状态进入、音频编解码器硬件104的加电或加电输入或热插拔事件等、或字节索引值。这些实施例在下面进一步讨论。
如所示出的,处理可以在操作202处继续,其中音频编解码器硬件104可以基于音频编解码器硬件104的图形邮箱寄存器107的填充来生成并发送诸如音频驱动中断的中断。由音频编解码器硬件104生成的中断可以包括任意合适的中断或信号等。例如,中断可以被表征为当音频编解码器硬件104基于音频编解码器硬件104的图形邮箱寄存器107的填充来生成中断时的未经请求的响应或中断。
处理可以在操作203处继续,其中在操作202处生成和发送的中断可以由音频控制器硬件103传递到音频驱动101。可以使用任意合适的一种或多种技术通过音频控制器硬件103将中断传递到音频驱动101。例如,中断可以由音频控制器硬件103经由音频总线113来接收并且经由直接存储器访问引擎132被传输到音频驱动101。
处理可以在操作204处继续,其中音频驱动101可以基于接收到的中断来生成并发送用于读取音频编解码器硬件104的图形邮箱寄存器107的命令。该命令可以包括将命令音频编解码器硬件104响应于此而提供在图形邮箱寄存器107中存储的值的任意合适的命令。在一个实施例中,命令是请求图形邮箱寄存器107的内容的一个或多个verb。例如,该一个或多个verb可以是读取图形邮箱寄存器107的请求。在一个实施例中,音频驱动101可以具有对图形邮箱寄存器107的只读访问。
处理可以在操作205处继续,其中音频控制器硬件103可以将在操作204处生成并发送的命令传递到音频编解码器硬件104。可以使用任意合适的一种或多种技术将该命令由音频控制器硬件103传递到音频编解码器硬件104。例如,该命令可以经由直接存储器访问引擎131被传输到音频控制器硬件103并且经由音频总线113被传输到音频编解码器硬件104。
处理可以在操作206处继续,其中音频编解码器硬件104可以响应于接收到的命令来提供图形邮箱寄存器107的值。例如,可以在操作206处提供先前填充到图形邮箱寄存器107的值。例如,包括这些值的响应可以是对向音频驱动101提供图形邮箱寄存器107数据的verb(例如,命令)的请求响应。
处理可以在操作207处继续,其中在操作206处提供的值可以由音频控制器硬件103传递到音频驱动101。可以使用任意合适的一种或多种技术由音频控制器硬件103向音频驱动101传递值。例如,这些值可以由音频控制器硬件103经由音频总线113来接收并且经由直接存储器访问引擎132被传输到音频驱动101。
处理可以在操作208处继续,其中由音频驱动101接收的值可以由音频驱动101处理。这样的处理可以包括任意合适的处理。例如,在接收指示音频编解码器硬件104的低功率状态进入(例如,掉电)等的值的情况下,这样的处理可以包括标识低功率状态进入并且停止与音频编解码器硬件104的通信。在接收指示加电或加电进入(例如,进入加电状态)的值的情况下,这样的处理可以包括识别加电进入并恢复与音频编解码器硬件104的通信。此外,如关于图4进一步讨论的,在一些实施例中,可以重复从图形驱动102到音频驱动101的这种通信以传输大于分配给图形邮箱寄存器107的存储器大小的数据块或数据对象等。在这样的上下文中,这样的处理可以包括标识对该值的其他字节进行索引的值的字节索引并存储这些值。在接收到附加值时,这样的处理可以进一步标识对随后接收到的值的其他字节进行索引的随后接收到的值的字节索引,并组合当前值和先前值以形成数据块或数据对象等。
如所讨论的,过程200可以经由如在音频编解码器硬件104中实现的图形邮箱寄存器107提供从图形驱动102到音频驱动101的通信。
图3是根据本公开的至少一些实现布置的用于动态地提供驱动之间的通信的另一示例过程300的并行流程图。例如,过程300可以提供允许音频驱动101经由音频编解码器硬件104和音频控制器硬件103与图形驱动102通信的通信路径。
如所示出的,过程300可以在操作301处开始,其中音频驱动101可以将值填充到音频邮箱,诸如音频编解码器硬件104的音频邮箱寄存器106。此外,过程300可以包括操作302,其中这些值可以从音频控制器硬件103传递到音频编解码器硬件104。例如,音频驱动101可以使用任意合适的一种或多种技术来填充这些值,例如经由直接存储器访问引擎131向音频控制器硬件103提供值,音频控制器硬件103经由音频总线113等向音频编解码器硬件104提供值。例如,音频驱动101可以至少对音频邮箱寄存器106进行写访问。此外,这些值可以是要传送给图形驱动102的任意合适的值。
处理可以在操作303继续,其中音频编解码器硬件104可以基于音频编解码器硬件104的音频邮箱寄存器106的填充来生成并发送诸如图形驱动中断之类的中断。由音频编解码器硬件104生成的中断可以包括任意合适的中断或信号等。例如,当音频编解码器硬件104基于音频编解码器硬件104的音频邮箱寄存器106的填充来生成中断时,中断可以被表征为未经请求的响应或中断。
处理可以在操作304处继续,其中图形驱动102可以基于接收到的中断来生成并发送用于读取音频编解码器硬件104的音频邮箱寄存器106的命令。该命令可以包括将响应于该命令命令音频编解码器硬件104提供在音频邮箱寄存器106中存储的值的任意合适的命令。在一个实施例中,该命令是请求图形邮箱寄存器107的内容的一个或多个verb。在一个实施例中,图形驱动102可具有对音频邮箱寄存器106的只读访问。
处理可以在操作305处继续,其中音频编解码器硬件104可以响应于所接收的命令来提供音频邮箱寄存器106的值。例如,可以在操作305处提供先前填充到音频邮箱寄存器106的值。例如,包括这些值的响应可以是对将音频邮箱寄存器106数据提供给图形驱动102的命令的请求响应。
处理可以在操作306处继续,其中由图形驱动102接收的值可以由图形驱动102处理。这样的处理可以包括任意合适的处理。例如,如关于图4进一步讨论的,在一些实施例中,可以重复从音频驱动101到图形驱动102的这种通信以传输大于分配给音频邮箱寄存器106的存储器大小的数据块或数据对象等。在这样的上下文中,这样的处理可以包括识别对值的其他字节进行索引的值的字节索引并存储这些值。在接收到附加值时,这样的处理可以进一步标识随后接收到的值的索引,其对随后接收到的值的其他字节进行索引,并组合当前值和先前值以形成数据块或数据对象等。
图4图示了根据本公开的至少一些实现布置的示例音频和图形邮箱寄存器106、107和示例数据对象403、406。如所讨论的,音频邮箱寄存器106和图形邮箱寄存器107可以包括或实施任意合适的存储器分配等。如图4所示,在一个实施例中,图形邮箱寄存器107可以实现32位寄存器401。在这样的实施例中,从图形驱动102传送到音频驱动101的值可以具有允许其间通信的任意合适的格式。在另一实施例中,图形邮箱寄存器107可以实现具有四字节数据结构402的32位寄存器。虽然关于32位寄存器进行了讨论,但图形邮箱寄存器107可以具有任意合适的大小,例如64位等。例如,图形邮箱寄存器107可以具有任意大小,并且可以具有或不具有字节索引。包括由数据结构402提供的字节索引的数据结构可以允许数据块或诸如数据对象403的数据对象等的传输。
例如,如果数据对象403大于32位,则数据对象403可以被划分成数据的字节(被图示为字节0、字节1、...、字节9、...),其可以以分组的形式被传输(被图示为传输T1 、T2、T3、T4、...)。例如,在第一次传输中,数据对象403的字节0、字节1和字节2可以分别由图形驱动102作为Byte-X、Byte-Y和Byte-Z存储到图形邮箱寄存器107,并由音频驱动101接收,如本文所讨论的。此外,还可以提供(例如,从图形驱动102传输到音频驱动101)字节索引,Byte-I,其索引数据结构402的其他字节和/或指示附加字节被包括在数据对象403中、附加字节尚未传输、先前已传输附加字节等。例如,在第二次传输中,数据对象403的字节3、字节4和字节5可以分别由图形驱动102作为Byte-X、Byte-Y和Byte-Z存储到图形邮箱寄存器107,并由音频驱动101接收。此外,可以为字节3、字节4和字节5提供字节索引。可以重复这种处理直到数据对象403被传输和接收。而且,在接收驱动、音频驱动101处,可以重新组装和处理这样的多个字节的数据。
类似地,在一个实施例中,音频邮箱寄存器106可以实现32位寄存器404。在这样的实施例中,从音频驱动101传输到图形驱动102的值可以具有允许其间通信的任意合适的格式。在另一实施例中,音频邮箱寄存器106可以实现具有四字节数据结构405的32位寄存器。虽然关于32位寄存器进行了讨论,但是音频邮箱寄存器106可以具有任意合适的大小,诸如64位等。例如,音频邮箱寄存器106可以具有任意大小,并且可以具有或不具有字节索引。包括字节索引这样的数据结构405的数据结构可以允许将诸如数据对象406的数据或数据对象等的块从音频驱动101传输到图形驱动102。
如所示,如果数据对象406分别为Byte-X、Byte-Y和Byte-Z,并且包括字节索引Byte-I,则如所示,这种处理可以包括将字节存储到音频邮箱寄存器106,其索引数据结构405的其他字节和/或指示数据对象406中包括附加字节、附加字节尚未传输、先前已传输附加字节等。数据对象406从音频驱动101到图形驱动102的传输可以提供为类似于例如从图形驱动102到音频驱动101的数据对象403的传输。
如本文关于图2和图3所讨论的,可以经由硬件音频编解码器来提供驱动之间的通信。例如,过程200提供从图形驱动到音频驱动的通信,并且过程300提供从音频驱动到图形驱动的通信。在一些实施例中,可以提供这两种通信路径来建立音频和图形驱动之间的双向通信。在其他实施例中,可以仅提供两条通信路径中的一条。此外,可以利用这种通信来提供动态音频编解码器枚举。例如,过程200和300可以提供示例音频和图形邮箱寄存器访问序列,并且过程200和300可以图示示例音频硬件和驱动交互。
图5A和5B图示了根据本公开的至少一些实现布置的用于提供动态音频编解码器枚举的示例过程500。过程500可以包括如图5A和5B所图示的一个或多个操作501-515。过程500或其部分可以由设备(例如,设备100或本文讨论的任意其他设备或系统)执行以提供动态音频编解码器枚举。对于任意数量的音频驱动初始化、进入低功率状态、进入加电状态的、热插拔事件等,可以重复过程500或其部分。例如,操作501-508可以为音频编解码器硬件提供掉电序列,并且操作509-515可以为音频编解码器硬件提供加电序列。
如所示,过程500可以在操作501处开始,其中音频驱动可以用verb来枚举音频编解码器硬件。在一个实施例中,操作501可以在初始化或引导时执行。音频驱动可以使用任意合适的一种或多种技术来枚举音频编解码器硬件。例如,音频驱动可以通过音频控制器中的直接存储器访问引擎发送音频verb,音频控制器可以经由音频总线将verb传送到音频编解码器硬件。参考图1,音频驱动101可以经由音频控制器硬件103的直接存储器访问111和直接存储器访问引擎131用verb来枚举音频编解码器硬件104,音频控制器硬件103可以经由音频总线113将verb提供给音频编解码器硬件104。在在一些实施例中,音频编解码器硬件104可以处于至少部分由图形驱动102控制的显示器电源井内。例如,音频编解码器硬件104可以是当显示器掉电或进入低功率状态、外部端口(例如,HDMI / DP外部端口)未被使用等时断电的逻辑的一部分。
处理可以在操作502处继续,其中响应于低功率状态指示物(indicator)521,图形驱动可以在音频编解码器硬件的低功率进入之前存储优先级verb。低功率状态指示物521可以是进入低功率状态等的任意指示物或信号。例如,低功率状态指示物521可以指示音频编解码器硬件将进入低功率状态或被掉电。低功率状态指示物521可以从诸如功率管理器的另一组件或模块接收,或由图形驱动等生成。优先级verb可以包括在操作501处由音频驱动枚举的任意优先级verb。例如,这样的优先级verb可以是在与音频驱动建立通信之前需要重新加载的优先级verb。优先级verb可以存储到任意合适的存储器,诸如本地存储器等。在一个实施例中,图形驱动可以通过MMIO访问来读取编解码器verb,并将内容保存到存储器中。例如,参照图1,图形驱动102可以在音频编解码器硬件104的低功率进入或掉电之前响应于较低功率状态指示物,将转换器verb108、引脚verb109、功能verb110或音频编解码器硬件104的其他verb的优先级verb存储到本地存储器(未示出)。
处理可以在操作503处继续,其中图形邮箱寄存器可以由图形驱动利用包括音频编解码器硬件的较低功率状态进入的一个或多个指示物的值填充。例如,在低功率进入之前,图形驱动可以填充图形邮箱寄存器以指示低功率进入。参考图1,图形驱动102可以填充图形邮箱寄存器107以指示音频编解码器硬件104的低功率进入(例如,具有包括较低功率状态进入的一个或多个指示物的值)。
处理可以在操作504处继续,其中音频编解码器硬件可以提供诸如未经请求的音频驱动中断的中断以向音频驱动发信号通知图形邮箱寄存器被填充。如关于过程200所讨论的,在一些实施例中,中断可以由音频编解码器硬件发送并且被沿着音频控制器硬件传送。参考图1,音频编解码器硬件104可以产生中断,其可以经由音频总线113被提供给音频控制器硬件103。音频控制器硬件103可以通过直接存储器访问引擎132经由直接存储器访问111来将中断传递到音频驱动101。
处理可以在操作505处继续,其中音频驱动可以提供读取图形邮箱寄存器的内容或值的命令。音频驱动可以使用任意合适的一种或多种技术来生成命令,并且该命令可以包括请求图形邮箱寄存器的内容的任意合适的内容,诸如verb等。如关于过程200所讨论的,在一些实施例中,命令可以由音频驱动发送到音频控制器硬件,音频控制器硬件可以将命令传递到音频编解码器硬件。参考图1,音频驱动101可以生成命令并且通过直接存储器访问引擎131经由直接存储器访问111将其提供给音频控制器硬件103。音频控制器硬件103可以经由音频总线113将命令传递到音频编解码器硬件104 。
处理可以在操作506处继续,其中音频编解码器硬件可以响应于接收到的命令而发送图形邮箱寄存器中的值或内容。如关于过程200所讨论的,在一些实施例中,值或内容可以由音频编解码器硬件发送到音频控制器硬件,音频控制器硬件可以将值或内容传递给音频驱动。参考图1,音频编解码器硬件104可以从图形邮箱寄存器107获得值或内容,并且经由音频总线113将值或内容传输到音频控制器硬件103。音频控制器硬件103可以通过直接存储器访问引擎132经由直接存储器访问111将值或内容传递到音频驱动101。
处理可以在操作507处继续,其中音频驱动可以响应于包括音频编解码器硬件的较低功率状态进入的一个或多个指示物的值或内容来停止与音频编解码器硬件的通信。例如,音频驱动可以读取接收到的值或内容,并将值或内容转换成用于停止与音频编解码器硬件的通信(例如,当音频编解码器硬件即将掉电时)的命令。参考图1,响应于包括较低功率状态进入的一个或多个指示物的值或内容,音频驱动101可以停止与音频编解码器硬件104的通信。
处理可以在操作508处继续,其中图形驱动可以将音频编解码器硬件置于低功率状态。图形驱动可以使用任意合适的一种或多种技术将音频编解码器硬件置于低功率状态,诸如经由通过MMIO访问发布的命令。参考图1,图形驱动102可以将音频编解码器硬件104置于低功率或关闭状态。
操作502-508可以响应于低功率状态指示物而为音频编解码器硬件的verb(例如,优先级verb)提供上下文保存。这些操作可以以任意合适的顺序提供,只要这些verb可以在音频编解码器硬件掉电之前被存储。例如,如所讨论的,操作502-508可以为音频编解码器硬件提供掉电序列。操作509-515提供在加电期间(例如,响应于加电或热插拔事件等)并且在音频驱动与音频编解码器硬件通信之前恢复这样的verb。例如,操作509-515可以为音频编解码器硬件提供加电序列。
转到图5B,处理可以在操作509处继续,其中响应于加电指示物522,图形驱动可以对音频编解码器硬件加电。加电指示物522可以是进入加电或通电状态等的任意指示物或信号。举例来说,加电指示物522可指示音频编解码器硬件将进入通电状态等。在一些实施例中,加电指示物522可以是热插拔事件。加电指示物522可以从诸如电源管理器的另一组件或模块接收,或者由图形驱动等生成。参照图1,图形驱动102可以响应于加电指示物来对音频编解码器硬件104进行加电。
处理可以在操作510处继续,其中图形驱动可以将优先级verb重新加载或恢复到音频编解码器硬件。例如,优先级verb可以包括在操作502处存储的优先级verb。在一个实施例中,图形驱动可以通过MMIO访问来存储编解码器verb。例如,参照图1,图形驱动102可以重新加载或恢复转换器verb108、引脚verb109、功能verb110或音频编解码器硬件104的其他verb的优先级verb。
处理可以在操作511处继续,其中图形邮箱寄存器可以由图形驱动利用包括用于音频编解码器硬件的加电进入或事件的一个或多个指示物的值填充。例如,图形驱动可以填充图形邮箱寄存器以指示加电进入或事件。参照图1,图形驱动102可以填充图形邮箱寄存器107以指示音频编解码器硬件104的加电进入或事件(例如,利用包括加电进入或事件的一个或多个指示物的值)。
处理可以在操作512处继续,其中音频编解码器硬件可以提供诸如未经请求的音频驱动中断之类的中断以向音频驱动发信号通知图形邮箱寄存器已被填充。在一些实施例中,中断可以由音频编解码器硬件发送并且由音频控制器硬件传递给音频驱动。参考图1,音频编解码器硬件104可以生成中断,其可以经由音频总线113被提供给音频控制器硬件103。音频控制器硬件103可以通过直接存储器访问引擎132经由直接存储器访问111将中断传递到音频驱动101。
处理可以在操作513处继续,其中音频驱动可以提供读取图形邮箱寄存器的内容或值的命令。音频驱动可以使用任意合适的一种或多种技术来生成命令,并且该命令可以包括请求图形邮箱寄存器的内容的任意合适的内容,诸如verb等。在一些实施例中,该命令可以由音频驱动发送到音频控制器硬件,该音频控制器硬件可以将命令传递给音频编解码器硬件。参考图1,音频驱动101可以生成命令并且通过直接存储器访问引擎131经由直接存储器访问111将其提供给音频控制器硬件103。音频控制器硬件103可以经由音频总线113将命令传递到音频编解码器硬件104 。
处理可以在操作514处继续,其中音频编解码器硬件可以响应于接收到的命令来发送图形邮箱寄存器中的值或内容。如关于过程200所讨论的,在一些实施例中,值或内容可以由音频编解码器硬件发送到音频控制器硬件,音频控制器硬件可以将值或内容传递给音频驱动。参考图1,音频编解码器硬件104可以从图形邮箱寄存器107获得值或内容,并且经由音频总线113将值或内容传输到音频控制器硬件103。音频控制器硬件103可以通过直接存储器访问引擎132经由直接存储器访问111将值或内容传递到音频驱动101。
处理可以在操作515处继续,其中音频驱动可以响应于包括用于音频编解码器硬件的加电进入或事件的一个或多个指示物的值或内容来恢复与音频编解码器硬件的通信。例如,音频驱动可以读取接收到的值或内容,并将值或内容转换成命令以恢复与音频编解码器硬件的通信(例如,在音频编解码器硬件已被加电时)。参照图1,音频驱动101可以响应于包括用于音频编解码器硬件的加电进入或事件的一个或多个指示物的值或内容来恢复与音频编解码器硬件104的通信。
操作509-515可以响应于加电进入或事件指示物来为音频编解码器硬件的保存的verb(例如,优先级verb)提供上下文恢复。只要可以在音频驱动和音频编解码器硬件之间的通信恢复之前恢复这些verb,可以以任意合适的顺序提供这样的操作。在过程500的示例中,如关于操作511-514所讨论的,可以经由图形邮箱寄存器来提供音频编解码器硬件转变到加电状态的指示。在另一实施例中,音频编解码器硬件被转换到加电状态的指示可以由图形驱动设置音频编解码器硬件中的音频寄存器的存在检测来提供。音频编解码器硬件然后可以生成对音频驱动的未经请求的响应以指示加电、热插拔事件等。作为响应,音频驱动可以恢复与音频编解码器硬件的通信,如关于操作515所讨论的。
例如,可以如下执行音频编解码器的动态枚举。音频驱动可以通过音频控制器中的CORB / RIRB DMA引擎发送音频verb来枚举引导中的音频编解码器。在掉电进入之前,图形驱动可以填充图形邮箱寄存器以指示较低功率进入。过程200图示了音频和图形驱动之间的邮箱通信序列。图形驱动可以通过MMIO访问读取编解码器verb并保存内容(例如,保存到图形驱动可访问的本地存储器)。图形驱动可能会使编解码器硬件处于低功率状态。在热拔插事件等情况下,图形驱动可能会使编解码器硬件脱离低功率状态、恢复编解码器verb以重新枚举音频编解码器而无需音频驱动参与。此外,图形驱动可以设置音频寄存器的存在检测。例如,设置存在检测可以设置位以生成对音频驱动的未经请求的响应以指示热插拔事件,并且音频驱动可以恢复与音频编解码器硬件的通信。
这样的技术可以避免编解码器硬件的低功率进入/退出中的音频驱动对编解码器寄存器进行重新编程(例如,重新枚举)。此外,这样的技术可以提供不违反实现的音频规范的优点,不要求音频驱动遵循MMIO访问方法,并且不要求图形驱动遵循实现的音频规范。
图6是图示出根据本公开的至少一些实现布置的用于动态地提供驱动之间的通信的示例过程600的流程图。过程600可以包括如图6所图示的一个或多个操作601-604。过程600可以形成用于在驱动之间提供动态通信的技术的至少一部分。过程600还可以形成用于提供音频编解码器的动态枚举的技术的至少一部分。作为非限制性示例,过程600可以如本文所讨论的那样由设备100执行。此外,将参考图7的系统700来描述过程600。
图7是根据本公开的至少一些实现布置的用于在驱动之间动态地提供通信的示例系统700的说明示图。如图7所示,系统700可以包括处理器701,诸如中央处理器、图形处理器702、存储器703、音频控制器硬件103和音频编解码器硬件104。还如所示,处理器701可以包括或实现音频驱动101和图形驱动102。此外,存储器703可以包括或实现恢复verb704,恢复verb704可以包括用于如本文所述的音频编解码器硬件104的上下文保存和恢复的优先级verb。这样的组件或模块可以被实现为执行本文讨论的操作。在系统700的示例中,存储器703可以包括恢复verb704,如所讨论的。存储器703还可以存储本文讨论的任意数据。
图形处理器702可以包括任意数量和类型的图形或图像处理单元。处理器701可以包括任意数量和类型的处理单元或模块,其可以为系统700提供控制和其他高级功能和/或提供本文讨论的任意操作,诸如关于音频驱动101和图形驱动102讨论的操作。存储器703可以是任意类型的存储器,诸如易失性存储器(例如,静态随机访问存储器(SRAM)、动态随机访问存储器(DRAM)等)或非易失性存储器(例如,闪存等)等等。在非限制性示例中,存储器703可以由高速缓冲存储器来实现。
回到图6的讨论,过程600可以在操作601开始,其中由第一驱动,音频编解码器硬件的邮箱寄存器可以填充有一个或多个值。例如,邮箱寄存器可以至少可由第一驱动写访问,并且第二驱动仅能读访问。在一个实施例中,第一驱动是图形驱动,而第二驱动是音频驱动。在一个实施例中,填充音频编解码器硬件的邮箱寄存器包括由第一驱动以立即命令模式填充邮箱寄存器。例如,经由处理器701实现的图形驱动102可以填充音频编解码器硬件104的图形邮箱寄存器和/或经由处理器701实现的音频驱动101可以填充音频编解码器硬件104的音频邮箱寄存器。在一个实施例中,邮箱寄存器可能是32位寄存器(例如,没有字节索引)。在另一实施例中,邮箱寄存器可以是实现具有一个字节索引的4个字节的32位寄存器,使得一个或多个值包括索引一个或多个值的多个其他字节的字节索引。在这样的示例中,过程600可以被重复多次,使得接收到的值集合每个都可以代表数据对象的各个部分等。
处理可以在操作602处继续,其中从音频编解码器硬件,可以基于邮箱寄存器的填充向第二驱动提供中断。例如,中断可能是第二驱动的未经请求中断。例如,音频编解码器硬件104可以响应于图形邮箱寄存器被填充而生成音频驱动中断和/或响应于音频邮箱寄存器被填充而生成图形驱动中断。
处理可以在操作603处继续,其中,从第二驱动并且响应于中断,可以提供命令来读取邮箱寄存器。例如,响应于音频驱动中断,如经由处理器701实现的音频驱动101可以提供用于读取填充的图形邮箱寄存器的命令和/或响应于图形驱动中断,经由处理器701实现图形驱动102可以提供读取填充的音频邮箱寄存器的命令。在一个实施例中,提供读取邮箱寄存器的命令可以包括提供用于从第二驱动并通过控制器读取邮箱寄存器的命令。例如,该命令可以从如经由处理器701实现的音频驱动101通过音频控制器硬件103提供给音频编解码器硬件104。
处理可以在操作604处继续,其中,通过音频编解码器硬件,响应于该命令,可以将来自邮箱寄存器的一个或多个值发送到第二驱动。例如,响应于来自音频驱动101的命令,音频编解码器硬件104可以将来自音频编解码器硬件104的图形邮箱寄存器的值或内容提供给音频驱动101;和/或响应于来自图形驱动102的命令,音频编解码器硬件104可以将来自音频编解码器硬件104的音频邮箱寄存器的值或内容提供给图形驱动102。
在一些示例中,操作601-604可以支持音频编解码器的动态枚举。例如,音频编解码器硬件可以在至少部分地由图形驱动控制的显示器电源井内,使得音频编解码器硬件可以被置于低功率状态或者在某些情境下断电。在这样的示例中,第一驱动可以是图形驱动,并且第二驱动可以是音频驱动。在一个实施例中,在操作601之前,音频驱动可以用多个verb来枚举音频编解码器硬件。举例来说,经由处理器701实施的音频驱动101可枚举音频编解码器硬件104。此外,图形驱动可响应于低功率状态进入或掉电指示物等来将来自音频编解码器硬件的优先级verb存储到本地存储器。举例来说,经由处理器701实现的图形驱动102可将优先级verb(例如,恢复verb704)从音频编解码器硬件104存储到存储器703。
然后,图形驱动可以利用指示硬件编解码器的低功率状态进入的值(如关于操作601所讨论的)来填充音频编解码器硬件的邮箱寄存器。音频编解码器硬件可以向音频驱动提供中断(如关于操作602所讨论的),音频驱动可以提供读取图形邮箱寄存器的命令(如关于操作603所讨论的),并且音频编解码器硬件可以响应于该命令(如关于操作604所讨论的)将来自图形邮箱寄存器的值发送到音频驱动。
随后,音频驱动可基于接收到的值或内容停止与音频编解码器硬件的通信,并且图形驱动可将音频编解码器硬件置于低功率状态或对音频编解码器硬件断电。例如,经由处理器701实现的音频驱动101可以停止与经由处理器701实现的音频编解码器硬件104和图形驱动102的通信,从而可以将音频编解码器硬件104置于低功率状态。
此外,响应于加电或上电事件等,图形驱动可以将优先级verb重新加载到音频编解码器硬件。例如,经由处理器701实现的图形驱动102可以将优先级verb重新加载到音频编解码器硬件104。类似于操作601-604,图形驱动可以将包括加电进入的指示物的值传输到音频驱动。例如,图形驱动可以用包括加电进入的指示物的值填充音频编解码器硬件的图形邮箱寄存器,音频编解码器硬件可以基于填充图形邮箱寄存器向音频驱动提供中断,响应于该中断,音频驱动可以提供读取图形邮箱寄存器的命令,并且音频编解码器硬件可以将来自图形邮箱寄存器的值发送到音频驱动。响应于这些值,音频驱动可以恢复与硬件音频编解码器的通信。
本文描述的系统的各种组件可以用软件、固件和/或硬件和/或其任意组合来实现。例如,可以至少部分地由诸如可以在多功能设备或计算机中找到的计算片上系统(SoC)的硬件来提供本文讨论的设备或系统的各种组件,例如膝上型计算机、平板计算机或智能电话。本领域的技术人员可以认识到,本文描述的系统可以包括尚未在相应附图中描绘的附加组件。例如,本文讨论的系统可以包括附加组件,例如扫描仪(例如用以执行光学扫描以生成扫描的输入图像)、打印机(例如,将输出图像转换为纸张或类似的物理介质)、图像预处理电路或者为了清楚起见未被描绘的类似物。
虽然本文讨论的示例过程的实现可以包括以所图示顺序示出的所有操作的执行,但是本公开在这方面不受限制,并且在各种示例中,本文的示例过程的实现可以仅包括所示操作的子集、以不同于所图示的顺序执行的操作或附加操作。
另外,可以响应于由一个或多个计算机程序产品提供的指令来进行本文讨论的任意一个或多个操作。这样的程序产品可以包括提供指令的信号承载介质,所述指令在由例如处理器执行时可以提供本文描述的功能。计算机程序产品可以以一种或多种机器可读介质的任意形式提供。因此,例如,包括一个或多个图形处理单元或处理器核的处理器可以响应于通过一个或多个机器可读介质传送给处理器的程序代码和/或指令或指令集来进行本文的示例过程的一个或多个块。通常,机器可读介质可以以程序代码和/或指令或指令集的形式传送软件,该软件可以使得本文描述的任意设备和/或系统至少实现其中的一部分、或者任意其他模块、组件或本文讨论的技术。
如本文描述的任意实现中所使用的,术语“模块”是指被配置为提供本文描述的功能的软件逻辑、固件逻辑、硬件逻辑和/或电路的任意组合。该软件可以体现为软件包、代码和/或指令集或指令,并且本文描述的任意实现中使用的“硬件”可以包括例如(单独或以任意组合)硬连线电路、可编程电路、状态机电路、固定功能电路、执行单元电路和/或存储由可编程电路执行的指令的固件。这些模块可以共同或单独地体现为形成较大系统的一部分的电路,例如集成电路(IC)、片上系统(SoC)等等。
图8是根据本公开的至少一些实现布置的示例系统800的说明示图。在各种实现中,系统800可以是计算系统,尽管系统800不限于此上下文。例如,系统800可以集成到个人计算机(PC)、膝上型计算机、超便携式计算机、平板计算机、触摸板、便携式计算机、手持式计算机、掌上型计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝式电话/ PDA、电视、智能设备(例如智能手机、智能平板计算机或智能电视)、可穿戴设备(例如智能手表或智能眼镜)、移动互联网设备(MID)、消息传送设备、数据通信设备、外围设备、扫描仪、打印机、多功能设备等等。
在各种实现中,系统800包括耦合到显示器820的平台802。平台802可以从内容设备(诸如(一个或多个)内容服务设备830或(一个或多个)内容传送设备840或诸如图像传感器819的其他内容源)接收内容。例如,平台802可以从图像传感器819或任意其他内容源接收原始图像数据。包括一个或多个导航特征的导航控制器850可以用于与例如平台802和/或显示器820交互。下面更详细地描述这些组件中的每一个。
在各种实现中,平台802可以包括芯片组805、处理器810、存储器812、天线813、存储814、图形子系统815、应用816、图像信号处理器817和/或无线电818的任意组合。芯片组805可以提供处理器810、存储器812、存储814、图形子系统815、应用816、图像信号处理器817和/或无线电818之间的通信。例如,芯片组805可以包括能够提供与存储814的相互通信的存储适配器(未示出)。
处理器810可以实现为复杂指令集计算机(CISC)或精简指令集计算机(RISC)处理器、x86指令集兼容处理器、多核或任意其他微处理器或中央处理单元(CPU)。在各种实现中,处理器810可以是(一个或多个)双核处理器、(一个或多个)双核移动处理器等等。
存储器812可以被实现为诸如但不限于随机访问存储器(RAM)、动态随机访问存储器(DRAM)或静态RAM(SRAM)之类的易失性存储器设备。
存储814可以被实现为非易失性存储设备,诸如但不限于磁盘驱动、光盘驱动、磁带驱动、内部存储设备、附接的存储设备、闪存、电池备份的SDRAM (同步DRAM)和/或网络可访问存储设备。在各种实现中,例如,当包括多个硬盘驱动时,存储814可以包括增加对有价值的数字媒体的存储性能增强保护的技术。
图像信号处理器817可以实现为用于图像处理的专用数字信号处理器等。在一些示例中,图像信号处理器817可以基于单指令多数据或多指令多数据架构等来实现。在一些示例中,图像信号处理器817可以被表征为媒体处理器。如本文所讨论的,图像信号处理器817可以基于片上系统架构和/或基于多核架构来实现。
图形子系统815可以执行诸如静止或视频的图像处理以用于显示。图形子系统815例如可以是图形处理单元(GPU)、视觉处理单元(VPU)或图像处理单元。在一些示例中,图形子系统815可以执行如本文所讨论的扫描图像渲染。模拟或数字接口可以用于将图形子系统815和显示器820通信地耦合。例如,接口可以是高清多媒体接口、DisplayPort、无线HDMI和/或无线HD兼容技术中的任意一种。图形子系统815可以被集成到处理器810或芯片组805中。在一些实现中,图形子系统815可以是通信地耦合到芯片组805的独立装置。
本文描述的图形和/或视频处理技术可以在各种硬件架构中实现。例如,图形和/或视频功能可以集成在芯片组内。或者,可以使用分立的图形和/或图像处理器和/或专用集成电路。作为又一实现,图形和/或视频功能可以由包括多核处理器的通用处理器提供。在进一步的实施例中,功能可以在消费电子设备中实现。
无线电818可以包括能够使用各种合适的无线通信技术发送和接收信号的一个或多个无线电。这种技术可能涉及通过一个或多个无线网络的通信。示例无线网络包括(但不限于)无线局域网(WLAN)、无线个人区域网(WPAN)、无线城域网(WMAN)、蜂窝网络和卫星网络。在通过这样的网络进行通信时,无线电818可以根据任意版本中的一个或多个适用标准进行操作。
在各种实现中,显示器820可以包括任意平板监视器或显示器。显示器820可以包括例如计算机显示屏、触摸屏显示器、视频监视器、类电视设备和/或电视机。显示器820可以是数字和/或模拟的。在各种实现中,显示器820可以是全息显示器。而且,显示器820可以是可以接收视觉投影的透明表面。这样的投影可以传达各种形式的信息、图像和/或对象。例如,这种投影可以是移动增强现实(MAR)应用的视觉覆盖。在一个或多个软件应用程序816的控制下,平台802可以在显示器820上显示用户界面822。
在各种实现中,例如,(一个或多个)内容服务设备830可以由任意国家、国际和/或独立服务托管,并且因此可以例如经由因特网访问平台802。(一个或多个)内容服务设备830可以耦合到平台802和/或显示器820。平台802和/或(一个或多个)内容服务设备830可以耦合到网络860以向网络860并从网络860传送(例如,发送和/或接收)媒体信息。(一个或多个)内容递送设备840也可以耦合到平台802和/或显示器820。
在各种实现中,(一个或多个)内容服务设备830可以包括能够传递数字信息和/或内容的有线电视盒、个人计算机、网络、电话、启用因特网的设备或装置、以及能够经由网络860或直接在内容提供商与平台802和/或显示器820之间单向或双向地传送内容的任意其他设备。应当理解,内容可以经由网络860单向和/或双向地向并从系统800的组件和内容提供商中的任意一个传送。内容的示例可以包括任意媒体信息,例如包括视频、音乐、医疗和游戏信息等等。
(一个或多个)内容服务设备830可以接收诸如包括媒体信息、数字信息和/或其它内容的有线电视节目之类的内容。内容提供商的示例可以包括任意有线或卫星电视或无线电或互联网内容提供商。所提供的示例并不意味着以任意方式限制根据本公开的实现。
在各种实现中,平台802可以从具有一个或多个导航特征的导航控制器850接收控制信号。例如,导航控制器850的导航特征可以用于与用户界面822交互。在各种实施例中,导航控制器850可以是定点装置,其可以是允许用户将空间(例如,连续和多维)数据输入到计算机中的计算机硬件组件(具体地,人机接口装置)。诸如图形用户界面(GUI)、电视机和监视器之类的许多系统允许用户使用物理手势控制计算机或电视机并向其提供数据。
导航控制器850的导航特征的移动可以通过指针、光标、聚焦环或显示器上显示的其他视觉指示物的移动而在显示器(例如,显示器820)上复制。例如,在软件应用程序816的控制下,位于导航控制器850上的导航特征可以被映射为例如在用户界面822上显示的虚拟导航特征。在各种实施例中,导航控制器850可以不是单独的组件,而是可以被集成到平台802和/或显示器820中。然而,本公开不限于本文中示出或描述的元件或上下文。
在各种实现中,例如,当被启用时,驱动(未示出)可以包括使得用户能够在初始启动之后通过触摸按钮来立即打开和关闭平台802(如电视)的技术。即使当平台被“关闭”时,程序逻辑也可以允许平台802将内容流式传输到媒体适配器或(一个或多个)其他内容服务设备830或(一个或多个)内容传送设备840。另外,芯片组805可以包括例如支持5.1环绕声音频和/或高清7.1环绕声音频的硬件和/或软件。驱动可能包括用于集成图形平台的图形驱动。在各种实施例中,图形驱动可以包括外围组件互连(PCI)Express图形卡。
在各种实现中,系统800中示出的任意一个或多个组件可以被集成。例如,平台802和(一个或多个)内容服务设备830可以被集成,或者平台802和(一个或多个)内容传送设备840可以被集成,或者例如平台802、(一个或多个)内容服务设备830和(一个或多个)内容传送设备840可以被集成。在各种实施例中,例如平台802和显示器820可以是集成单元。例如,显示器820和(一个或多个)内容服务设备830可以被集成,或者显示器820和(一个或多个)内容传送设备840可以被集成。这些示例并不意味着限制本公开。
在各种实施例中,系统800可以被实现为无线系统、有线系统或两者的组合。当被实现为无线系统时,系统800可以包括适合于通过无线共享介质进行通信的组件和接口,诸如一个或多个天线、发射机、接收机、收发机、放大器、滤波器、控制逻辑等等。无线共享媒体的示例可以包括无线频谱的部分,诸如RF频谱等。当被实现为有线系统时,系统800可以包括适合于通过有线通信介质进行通信的组件和接口,诸如输入/输出(I / O)适配器、用于将I / O适配器与对应的有线通信介质连接的物理连接器、网络接口卡(NIC)、磁盘控制器、视频控制器、音频控制器等。有线通信介质的示例可以包括导线、电缆、金属引线、印刷电路板(PCB)、背板、交换结构、半导体材料、双绞线、同轴电缆、光纤等等。
平台802可以建立一个或多个逻辑或物理信道来传送信息。该信息可以包括媒体信息和控制信息。媒体信息可以指代表打算用于用户的内容的任意数据。内容的示例可以包括例如来自语音对话、视频会议、流式视频、电子邮件(“电邮”)消息、语音邮件消息、字母数字符号、图形、图像、视频、文本等的数据。来自语音对话的数据可以是例如语音信息、静音时段、背景噪声、舒适噪声、音调等等。控制信息可以指代表打算用于自动化系统的命令、指令或控制字的任意数据。例如,控制信息可以用于通过系统路由媒体信息、或指示节点以预定方式处理媒体信息。然而,实施例不限于图8中示出或描述的元件或上下文。
如上所述,系统800可以体现为不同的物理风格或形状因数。图9图示了根据本公开的至少一些实现布置的示例小形状因数设备900。在一些示例中,可以经由设备900来实现系统800。在其他示例中,可以经由设备900来实现任意设备或者技术或者其部分。在各种实施例中,例如,设备900可以被实现为具有无线功能的移动计算设备。例如,移动计算设备可以指具有处理系统和移动功率源或电源的任意设备,诸如一个或多个电池。
移动计算设备的示例可以包括个人计算机(PC)、膝上型计算机、超便携式计算机、平板计算机、触摸板、便携式计算机、手持式计算机、掌上型计算机、个人数字助理(PDA)、蜂窝电话、组合式蜂窝电话/ PDA、智能设备(例如、智能手机、智能平板计算机或智能手机电视)、移动互联网设备(MID)、消息传送设备、数据通信设备、相机等。
移动计算设备的示例还可以包括被布置成由人穿戴的计算机,诸如手腕计算机、手指计算机、环形计算机、眼镜计算机、带夹计算机、臂带计算机、鞋计算机、服装计算机和其他可穿戴计算机。在各种实施例中,例如,移动计算设备可以被实现为能够执行计算机应用以及语音通信和/或数据通信的智能电话。尽管通过示例的方式可以利用被实现为智能电话的移动计算设备来描述一些实施例,但是可以理解,也可以使用其他无线移动计算设备来实现其他实施例。在这种情况下,实施例不受限制。
如图9所示,设备900可以包括具有前部901和后部902的外壳。设备900包括显示器904、输入/输出(I / O)设备906和集成天线908。设备900还可以包括导航特征912。I / O设备906可以包括用于将信息输入到移动计算设备中的任意合适的I / O设备。 I / O设备906的示例可以包括字母数字键盘、数字小键盘、触摸板、输入键、按钮、开关、麦克风、扬声器、语音识别设备和软件等等。信息也可以通过麦克风(未示出)输入到设备900中,或者可以通过语音识别设备数字化。如所示,设备900可以包括相机905(例如,包括镜头、光圈和成像传感器)以及集成到设备900的后部902(或其他地方)中的闪光灯910。
各种实施例可以使用硬件元件、软件元件或两者的组合来实现。硬件元件的示例可以包括处理器、微处理器、电路、电路元件(例如晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等等。软件的示例可以包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任意组合。确定是否使用硬件元件和/或软件元件来实现实施例可以根据任意数量的因素而变化,例如期望的计算速率、功率水平、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其他设计或性能限制。
至少一个实施例的一个或多个方面可以通过存储在机器可读介质上的代表性指令来实现,该机器可读介质表示处理器内的各种逻辑,其在机器读取时使机器制造用于执行本文描述的技术的逻辑。称为IP核的这种表示可以存储在有形的机器可读介质上并且提供给各种客户或制造设施以加载到实际形成逻辑或处理器的制造机器中。
尽管已经参考各种实现描述了本文阐述的某些特征,但是该描述不旨在被解释为限制意义。因此,本文描述的实现的各种修改以及对本公开所属领域的技术人员而言显而易见的其他实现被认为是在本公开的精神和范围内。
在一个或多个第一实施例中,一种用于在驱动之间动态提供通信的方法包括:由第一驱动向音频编解码器硬件的邮箱寄存器填充一个或多个值;基于邮箱寄存器的填充从音频编解码器硬件向第二驱动提供中断;从第二驱动并且响应于中断来提供读取邮箱寄存器的命令;并且响应于所述命令由音频编解码器硬件将所述一个或多个值从所述邮箱寄存器发送到所述第二驱动。
进一步关于第一实施例,第一驱动是图形驱动,第二驱动是音频驱动。
进一步关于第一实施例,该方法还包括由第一驱动并且在填充邮箱寄存器之前将来自音频编解码器硬件的一个或多个verb存储到本地存储器,其中该一个或多个值包括音频编解码器硬件的低功率状态进入的指示物,以及由第一驱动并且响应于加电事件而将一个或多个verb重新加载到音频编解码器硬件。
进一步关于第一实施例,该方法还包括由第一驱动并且在填充邮箱寄存器之前将来自音频编解码器硬件的一个或多个verb存储到本地存储器,其中该一个或多个值包括音频编解码器硬件的低功率状态进入的指示物,音频编解码器硬件由第一驱动以及响应于加电事件将一个或多个verb重新加载到音频编解码器硬件,并且由第二驱动并且在存储一个或多个verb之前至少用所述一个或多个verb枚举音频编解码器硬件。
进一步关于第一实施例,该方法还包括由第一驱动并且在填充邮箱寄存器之前将来自音频编解码器硬件的一个或多个verb存储到本地存储器,其中该一个或多个值包括音频编解码器硬件的低功率状态进入的指示物,所述音频编解码器硬件由第一驱动并且响应于加电事件将一个或多个verb重新加载到音频编解码器硬件;由第一驱动用一个或多个第二值填充邮箱寄存器,该一个或多个第二值包括加电进入的指示物,基于用一个或多个第二值填充邮箱寄存器来从音频编解码器硬件向第二驱动提供第二中断,从第二驱动并响应于所述第二中断提供读取所述邮箱寄存器的第二命令,以及响应于所述第二命令,由所述音频编解码器硬件将所述一个或多个第二值从所述邮箱寄存器发送到所述第二驱动。
进一步关于第一实施例,该方法还包括由第一驱动并且在填充邮箱寄存器之前将来自音频编解码器硬件的一个或多个verb存储到本地存储器,其中该一个或多个值包括音频编解码器硬件的低功率状态进入的指示物,所述音频编解码器硬件由第一驱动并且响应于加电事件将一个或多个verb重新加载到音频编解码器硬件;由第一驱动用一个或多个第二值填充邮箱寄存器,该一个或多个第二值包括加电进入的指示物,基于用一个或多个第二值填充邮箱寄存器来从音频编解码器硬件向第二驱动提供第二中断,从第二驱动并响应于所述第二中断提供读取所述邮箱寄存器的第二命令,以及响应于所述第二命令,由所述音频编解码器硬件将所述一个或多个第二值从所述邮箱寄存器发送到所述第二驱动;以及基于所述一个或多个第二值来恢复所述第二驱动与所述音频编解码器硬件之间的通信。
进一步关于第一实施例,所述一个或多个值包括索引所述一个或多个值的多个其他字节的字节索引,并且所述方法还包括由所述第一驱动用一个或多个第二值填充邮箱寄存器,其中一个或多个第二值包括索引所述一个或多个第二值的多个其他字节的第二字节索引,并且其中所述一个或多个值和一个或多个第二值各自表示数据对象的部分。
进一步关于第一实施例,提供读取邮箱寄存器的命令包括提供用于从第二驱动并通过控制器读取邮箱寄存器的命令。
进一步关于第一实施例,音频编解码器硬件处于至少部分由第一驱动控制的显示器电源井内。
进一步关于第一实施例,填充音频编解码器硬件的邮箱寄存器包括由第一驱动以立即命令模式填充邮箱寄存器。
在一个或多个第二实施例中,动态地提供驱动之间的通信的系统包括音频编解码器硬件逻辑电路和耦合到音频编解码器硬件逻辑电路的处理器,其中处理器用以经由第一驱动用一个或多个值填充音频编解码器硬件的邮箱寄存器,并且经由第二驱动且响应于中断来提供读取所述邮箱寄存器的命令,并且其中所述音频编解码器硬件逻辑电路基于邮箱寄存器的填充来向所述第二驱动提供所述中断,并且响应于该命令将该一个或多个值从邮箱寄存器发送到第二驱动。
进一步关于第二实施例,第一驱动是图形驱动,而第二驱动是音频驱动。
进一步关于第二实施例,处理器还经由第一驱动并且在填充邮箱寄存器之前将一个或多个verb从音频编解码器硬件存储到本地存储器,其中该一个或多个值包括音频编解码器硬件的低功率状态进入的指示物,并且经由第一驱动且响应于加电事件而将一个或多个verb重新加载到音频编解码器硬件。
进一步关于第二实施例,处理器还经由第一驱动并且在填充邮箱寄存器之前将一个或多个verb从音频编解码器硬件存储到本地存储器,其中该一个或多个值包括所述音频编解码器硬件的低功率状态进入的指示物,经由所述第一驱动并且响应于加电事件来将所述一个或多个verb重新加载到所述音频编解码器硬件,并且经由所述第二驱动且在存储一个或多个verb之前,至少用所述一个或多个verb来枚举音频编解码器硬件。
进一步关于第二实施例,处理器还经由第一驱动并且在填充邮箱寄存器之前将一个或多个verb从音频编解码器硬件存储到本地存储器,其中该一个或多个值包括所述音频编解码器硬件的低功率状态进入的指示物,以经由所述第一驱动并且响应于加电事件来将所述一个或多个verb重新加载到所述音频编解码器硬件,并且经由所述第一驱动用所述一个或多个第二值填充邮箱寄存器,该一个或多个第二值包括加电进入的指示物,并且经由第二驱动且响应于第二中断来提供读取邮箱寄存器的第二命令,并且其中音频编解码器硬件逻辑电路进一步基于用所述一个或多个第二值对所述邮箱寄存器的填充来向所述第二驱动提供所述第二中断,并且响应于第二命令将所述一个或多个第二值从所述邮箱寄存器发送到所述第二驱动。
进一步关于第二实施例,处理器还用于经由第一驱动并且在填充邮箱寄存器之前将来自音频编解码器硬件的一个或多个verb存储到本地存储器,其中该一个或多个值包括音频编解码器硬件的低功率状态进入的指示物,用于经由第一驱动并且响应于加电事件将一个或多个verb重新加载到音频编解码器硬件;用于经由第一驱动用一个或多个第二值填充邮箱寄存器,该一个或多个第二值包括加电进入的指示物,并用于经由第二驱动并响应于所述第二中断来提供读取所述邮箱寄存器的第二命令,并且其中音频编解码器硬件逻辑电路进一步用于基于用所述一个或多个第二值对所述邮箱寄存器的填充来向所述第二驱动提供所述第二中断,并且响应于第二命令来将所述一个或多个第二值从所述邮箱寄存器发送到所述第二驱动,以及基于所述一个或多个第二值来恢复所述第二驱动与所述音频编解码器硬件之间的通信。
进一步关于第二实施例,所述一个或多个值包括索引所述一个或多个值的多个其他字节的字节索引,并且所述处理器还经由所述第一驱动用一个或多个第二值填充邮箱寄存器,其中一个或多个第二值包括索引所述一个或多个第二值的多个其他字节的第二字节索引,并且其中所述一个或多个值和一个或多个第二值各自表示数据对象的部分。
进一步关于第二实施例,所述处理器提供读取所述邮箱寄存器的所述命令包括所述处理器提供用于从第二驱动并通过控制器读取邮箱寄存器的命令。
进一步关于第二实施例,音频编解码器硬件处于至少部分由第一驱动控制的显示器电源井内。
进一步关于第二实施例,用于填充音频编解码器硬件的邮箱寄存器的处理器包括处理器以由第一驱动以立即命令模式填充邮箱寄存器。
在一个或多个第三实施例中,一种系统包括:用于由第一驱动用一个或多个值填充音频编解码器硬件的邮箱寄存器的部件;用于基于邮箱寄存器的填充从音频编解码器硬件向第二驱动提供中断的部件,用于从第二驱动并响应于中断来提供读取邮箱寄存器的命令的部件,以及用于响应于命令由音频编解码器硬件将一个或多个值从邮箱寄存器发送到第二驱动的部件。
进一步关于第三实施例,该系统还包括用于由第一驱动并且在填充邮箱寄存器之前将来自音频编解码器硬件的一个或多个verb存储到本地存储器的部件,其中该一个或多个值包括所述音频编解码器硬件的低功率状态进入的指示物,以及用于由所述第一驱动并且响应于加电事件来将所述一个或多个verb重新加载到所述音频编解码器硬件的部件。
进一步关于第三实施例,该系统还包括用于由第一驱动并且在填充邮箱寄存器之前将来自音频编解码器硬件的一个或多个verb存储到本地存储器的部件,其中该一个或多个值包括音频编解码器硬件的低功率状态进入的指示物,用于由第一驱动并且响应于加电事件而将一个或多个verb重新加载到音频编解码器硬件的部件,以及用于由第二驱动并且在存储一个或多个verb之前至少用所述一个或多个verb枚举音频编解码器硬件的部件。
进一步关于第三实施例,该系统还包括用于由第一驱动并且在填充邮箱寄存器之前将来自音频编解码器硬件的一个或多个verb存储到本地存储器的部件,其中该一个或多个值包括音频编解码器硬件的低功率状态进入的指示物,用于由第一驱动并且响应于加电事件而将一个或多个verb重新加载到音频编解码器硬件的部件,用于由第一驱动用一个或多个第二值填充邮箱寄存器的部件,所述一个或多个第二值包括加电进入的指示物;用于基于用一个或多个第二值对邮箱寄存器的填充来从所述音频编解码器硬件向所述第二驱动提供第二中断的部件;用于从第二驱动并且响应于第二中断提供读取邮箱寄存器的第二命令的部件;以及用于响应于第二命令,由音频编解码器硬件从邮箱寄存器向第二驱动发送一个或多个第二值的部件。
进一步关于第三实施例,该系统还包括用于由第一驱动并且在填充邮箱寄存器之前将来自音频编解码器硬件的一个或多个verb存储到本地存储器的部件,其中该一个或多个值包括音频编解码器硬件的低功率状态进入的指示物,用于由第一驱动并且响应于加电事件而将一个或多个verb重新加载到音频编解码器硬件的部件;用于由第一驱动用一个或多个第二值填充邮箱寄存器的部件,所述一个或多个第二值包括加电进入的指示物;用于基于用一个或多个第二值填充邮箱寄存器来将第二中断从所述音频编解码器硬件向所述第二驱动提供的部件;用于从第二驱动并响应于第二中断提供读取邮箱寄存器的第二命令的部件;用于响应于第二命令由音频编解码器硬件将一个或多个第二值从邮箱寄存器发送到第二驱动的部件;以及用于基于一个或多个第二值来恢复第二驱动和音频编解码器硬件之间的通信的部件。
进一步关于第三实施例,所述一个或多个值包括索引所述一个或多个值的多个其他字节的字节索引,并且所述系统还包括用于由所述第一驱动用一个或多个第二值填充邮箱寄存器的部件,其中所述一个或多个第二值包括索引所述一个或多个第二值中的多个其他字节的第二字节索引,并且其中所述一个或多个值和一个或多个第二值各自表示数据对象的部分。
在一个或多个第四实施例中,至少一个机器可读介质包括多个指令,所述多个指令响应于在设备上执行而使得设备通过第一驱动用一个或多个值填充音频编解码器硬件的邮箱寄存器来在驱动之间动态地提供通信;基于邮箱寄存器的填充,在第二驱动处接收来自音频编解码器硬件的中断;从第二驱动且响应于该中断来提供读取该邮箱寄存器的命令;以及响应于该命令,在第二驱动处从音频编解码器硬件接收一个或多个值。
进一步关于第四实施例,机器可读介质进一步包括响应于在设备上执行而使设备动态地提供驱动之间的通信的指令,其通过第一驱动并在填充邮箱寄存器之前将一个或多个verb从音频编解码器硬件存储到本地存储器,其中所述一个或多个值包括音频编解码器硬件的低功率状态进入的指示物,并且由第一驱动并且响应于加电事件来将一个或多个verb重新加载到音频编解码器硬件。
进一步关于第四实施例,机器可读介质进一步包括响应于在设备上执行而使设备动态地提供驱动之间的通信的指令,其通过第一驱动并在填充邮箱寄存器之前将一个或多个verb从音频编解码器硬件存储到本地存储器,其中所述一个或多个值包括音频编解码器硬件的低功率状态进入的指示物,由第一驱动并且响应于加电事件,将所述一个或多个verb重新加载到所述音频编解码器硬件,并且由所述第二驱动并且在存储所述一个或多个verb之前,至少用所述一个或多个verb枚举所述音频编解码器硬件。
进一步关于第四实施例,机器可读介质进一步包括响应于在设备上执行而使设备动态地提供驱动之间的通信的指令,其通过第一驱动并在填充邮箱寄存器之前将一个或多个verb从音频编解码器硬件存储到本地存储器,其中所述一个或多个值包括音频编解码器硬件的低功率状态进入的指示物,由第一驱动并且响应于加电事件,将一个或多个verb重新加载到所述音频编解码器硬件;由所述第一驱动用一个或多个第二值填充所述邮箱寄存器,所述一个或多个第二值包括加电进入的指示物;基于用所述一个或多个第二值对所述邮箱寄存器的填充,在所述第二驱动处接收来自所述音频编解码器硬件的第二中断;从所述第二驱动并且响应于所述第二中断,提供用于读取所述邮箱寄存器的第二命令;并且响应于所述第二命令,在所述第二驱动处从所述音频编解码器硬件接收来自所述邮箱寄存器的所述一个或多个第二值。
进一步关于第四实施例,机器可读介质进一步包括响应于在设备上执行而使设备动态地提供驱动之间的通信的指令,其由第一驱动并在填充邮箱寄存器之前将一个或多个verb从音频编解码器硬件到本地存储器,其中所述一个或多个值包括音频编解码器硬件的低功率状态进入的指示物;由第一驱动并且响应于加电事件,将一个或多个verb重新加载到所述音频编解码器硬件;由所述第一驱动用一个或多个第二值填充邮箱寄存器,所述一个或多个第二值包括加电进入的指示物;基于用所述一个或多个第二值对所述邮箱寄存器的填充,在所述第二驱动处接收来自所述音频编解码器硬件的第二中断;从所述第二驱动并且响应于所述第二中断,提供用于读取所述邮箱寄存器的第二命令;响应于所述第二命令,在所述第二驱动处从所述音频编解码器硬件接收来自所述邮箱寄存器的所述一个或多个第二值;以及基于所述一个或多个第二个值来恢复所述第二驱动与所述音频编解码器硬件之间的通信。
进一步关于第四实施例,所述一个或多个值包括索引所述一个或多个值的多个其他字节的字节索引,并且所述机器可读介质还包括响应于在所述设备上执行而使所述设备动态地提供驱动之间的通信的指令,其通过第一驱动用一个或多个第二值填充邮箱寄存器,其中所述一个或多个第二值包括索引所述一个或多个第二值中的多个其他字节的第二字节索引,并且其中一个或多个值和一个或多个第二值各自表示数据对象的部分。
在一个或多个第五实施例中,至少一个机器可读介质可以包括多个指令,所述多个指令响应于在计算设备上执行而使计算设备执行根据上述实施例中的任意一个的方法。
在一个或多个第六实施例中,装置可以包括用于执行根据上述实施例中的任意一个的方法的部件。
将认识到的是,实施例不限于如此描述的实施例,而是可以在不脱离所附权利要求的范围的情况下通过修改和变更来实践。例如,以上实施例可以包括特征的特定组合。然而,上述实施例在这方面不受限制,并且在各种实现中,上述实施例可以包括仅承担这些特征的子集、承担这些特征的不同顺序、承担这些特征的不同组合、和/或除了明确列出的那些特征之外还承担附加的特征。因此,实施例的范围应当参考所附权利要求以及这些权利要求所享有的等同物的全部范围来确定。
Claims (28)
1.一种用于在驱动之间动态地提供通信的方法,包括:
由第一驱动用一个或多个值填充音频编解码器硬件的邮箱寄存器;
基于所述邮箱寄存器的所述填充从所述音频编解码器硬件向第二驱动提供中断;
从所述第二驱动并且响应于所述中断来提供读取所述邮箱寄存器的命令;以及
响应于所述命令由所述音频编解码器硬件将所述一个或多个值从所述邮箱寄存器发送到所述第二驱动。
2.根据权利要求1所述的方法,其中,所述第一驱动是图形驱动,并且所述第二驱动是音频驱动。
3.根据权利要求1所述的方法,还包括:
由所述第一驱动并且在填充所述邮箱寄存器之前将来自所述音频编解码器硬件的一个或多个verb存储到本地存储器,其中所述一个或多个值包括所述音频编解码器硬件的低功率状态进入的指示物;以及
由所述第一驱动并且响应于加电事件来将所述一个或多个verb重新加载到所述音频编解码器硬件。
4.根据权利要求3所述的方法,还包括:
由所述第二驱动并且在存储所述一个或多个verb之前至少用所述一个或多个verb来枚举所述音频编解码器硬件。
5.根据权利要求3所述的方法,还包括:
由所述第一驱动用包括加电进入的指示物的一个或多个第二值来填充所述邮箱寄存器;
基于用所述一个或多个第二值对所述邮箱寄存器的所述填充,从所述音频编解码器硬件向所述第二驱动提供第二中断;
从所述第二驱动并响应于所述第二中断来提供读取所述邮箱寄存器的第二命令;以及
响应于所述第二命令,由所述音频编解码器硬件将所述一个或多个第二值从所述邮箱寄存器发送到所述第二驱动。
6.根据权利要求5所述的方法,还包括:
基于所述一个或多个第二值来恢复所述第二驱动与所述音频编解码器硬件之间的通信。
7.根据权利要求1所述的方法,其中所述一个或多个值包括对所述一个或多个值的多个其他字节进行索引的字节索引,所述方法还包括:
由所述第一驱动用一个或多个第二值填充所述邮箱寄存器,其中所述一个或多个第二值包括对所述一个或多个第二值的多个其他字节进行索引的第二字节索引,并且其中所述一个或多个值和一个或多个第二值各自表示数据对象的部分。
8.根据权利要求1所述的方法,其中提供读取邮箱寄存器的所述命令包括提供用于从所述第二驱动并通过控制器来读取所述邮箱寄存器的所述命令。
9.根据权利要求1所述的方法,其中所述音频编解码器硬件处于至少部分由所述第一驱动控制的显示器电源井内。
10.根据权利要求1所述的方法,其中填充所述音频编解码器硬件的所述邮箱寄存器包括由所述第一驱动以立即命令模式填充所述邮箱寄存器。
11.一种动态地提供驱动之间通信的系统,包括:
音频编解码器硬件逻辑电路和耦合到所述音频编解码器硬件逻辑电路的处理器,
其中所述处理器用以经由第一驱动用一个或多个值填充所述音频编解码器硬件的邮箱寄存器,并且经由第二驱动且响应于中断来提供读取所述邮箱寄存器的命令,以及
其中所述音频编解码器硬件逻辑电路基于所述邮箱寄存器的所述填充来向所述第二驱动提供所述中断,并且响应于所述命令将来自所述邮箱寄存器的所述一个或多个值发送到所述第二驱动。
12.根据权利要求11所述的系统,其中所述处理器还经由所述第一驱动并且在所述邮箱寄存器的所述填充之前将来自所述音频编解码器硬件的一个或多个verb存储到本地存储器,其中所述一个或多个值包括所述音频编解码器硬件的低功率状态进入的指示物,并且经由所述第一驱动并且响应于加电事件来将所述一个或多个verb重新加载到所述音频编解码器硬件。
13.根据权利要求12所述的系统,其中所述处理器还经由所述第二驱动且在所述一个或多个verb的所述存储之前至少用所述一个或多个verb来枚举所述音频编解码器硬件。
14.根据权利要求12所述的系统,其中所述处理器还用以经由所述第一驱动用一个或多个第二值填充所述邮箱寄存器,所述一个或多个第二值包括加电进入的指示物;以及经由所述第二驱动并且响应于第二中断提供用于读取所述邮箱寄存器的第二命令,并且其中所述音频编解码器硬件逻辑电路进一步基于用所述一个或多个第二值对所述邮箱寄存器的填充来向所述第二驱动提供所述第二中断;以及响应于所述第二命令将来自所述邮箱寄存器的所述一个或多个第二值发送到所述第二驱动。
15.根据权利要求14所述的系统,其中所述处理器进一步基于所述一个或多个第二值来恢复所述第二驱动与所述音频编解码器硬件之间的通信。
16.根据权利要求11所述的系统,其中所述一个或多个值包括对所述一个或多个值的多个其他字节进行索引的字节索引,并且所述处理器进一步经由所述第一驱动用一个或多个第二值填充所述邮箱寄存器,其中所述一个或多个第二值包括对所述一个或多个第二值的多个其他字节进行索引的第二字节索引,并且其中所述一个或多个值和一个或多个第二值各自表示数据对象的部分。
17.一种系统,包括:
用于由第一驱动用一个或多个值填充音频编解码器硬件的邮箱寄存器的部件;
用于基于邮箱寄存器的填充从音频编解码器硬件向第二驱动提供中断的部件;
用于从第二驱动并响应于中断来提供读取邮箱寄存器的命令的部件;以及
用于响应于命令由音频编解码器硬件将一个或多个值从邮箱寄存器发送到第二驱动的部件。
18.根据权利要求17所述的系统,还包括:
用于由第一驱动并且在填充邮箱寄存器之前将来自音频编解码器硬件的一个或多个verb存储到本地存储器的部件,其中该一个或多个值包括音频编解码器硬件的低功率状态进入的指示物;以及
用于由第一驱动并且响应于加电事件而将一个或多个verb重新加载到音频编解码器硬件的部件。
19.根据权利要求18所述的系统,还包括:
用于由第二驱动并且在存储一个或多个verb之前至少用所述一个或多个verb枚举音频编解码器硬件的部件。
20.根据权利要求18所述的系统,还包括:
用于由第一驱动用一个或多个第二值填充邮箱寄存器的部件,所述一个或多个第二值包括加电进入的指示物;
用于基于用一个或多个第二值对邮箱寄存器的填充来从所述音频编解码器硬件向所述第二驱动提供第二中断的部件;
用于从第二驱动并且响应于第二中断提供读取邮箱寄存器的第二命令的部件;以及
用于响应于第二命令,由音频编解码器硬件从邮箱寄存器向第二驱动发送一个或多个第二值的部件。
21.根据权利要求20所述的系统,还包括:
用于基于一个或多个第二值来恢复第二驱动和音频编解码器硬件之间的通信的部件。
22.根据权利要求17所述的系统,其中所述一个或多个值包括索引所述一个或多个值的多个其他字节的字节索引,并且所述系统还包括:
用于由所述第一驱动用一个或多个第二值填充邮箱寄存器的部件,其中所述一个或多个第二值包括索引所述一个或多个第二值中的多个其他字节的第二字节索引,并且其中所述一个或多个值和一个或多个第二值各自表示数据对象的部分。
23.包括多个指令的至少一个机器可读介质,所述多个指令响应于在设备上执行而使得所述设备通过以下各项来动态地提供驱动之间的通信:
由第一驱动用一个或多个值填充音频编解码器硬件的邮箱寄存器;
基于所述邮箱寄存器的所述填充在第二驱动处从所述音频编解码器接收中断;
从所述第二驱动并且响应于所述中断来提供读取所述邮箱寄存器的命令;以及
响应于所述命令在所述第二驱动处从所述音频编解码器硬件接收所述一个或多个值。
24.根据权利要求23所述的机器可读介质,还包括指令,所述指令响应于在所述设备上执行而使所述设备通过以下各项动态地提供驱动之间的通信:
由所述第一驱动并且在填充所述邮箱寄存器之前将来自所述音频编解码器硬件的一个或多个verb存储到本地存储器,其中所述一个或多个值包括所述音频编解码器硬件的低功率状态进入的指示物;以及
由所述第一驱动并且响应于加电事件来将所述一个或多个verb重新加载到所述音频编解码器硬件。
25.根据权利要求24所述的机器可读介质,还包括指令,所述指令响应于在所述设备上执行而使所述设备通过以下各项动态地提供驱动之间的通信:
由所述第二驱动并且在存储所述一个或多个verb之前至少用所述一个或多个verb来枚举所述音频编解码器硬件。
26.根据权利要求24所述的机器可读介质,还包括指令,所述指令响应于在所述设备上执行而使所述设备通过以下各项动态地提供驱动之间的通信:
由所述第一驱动用包括加电进入的指示物的一个或多个第二值来填充所述邮箱寄存器;
基于用所述一个或多个第二值对所述邮箱寄存器的所述填充,在所述第二驱动处从所述音频编解码器硬件接收第二中断;
从所述第二驱动并且响应于所述第二中断来提供读取所述邮箱寄存器的第二命令;以及
响应于所述第二命令在所述第二驱动处从所述音频编解码器硬件接收来自所述邮箱寄存器的所述一个或多个第二值。
27.根据权利要求26所述的机器可读介质,还包括指令,所述指令响应于在所述设备上执行而使所述设备通过以下各项动态地提供驱动之间的通信:
基于所述一个或多个第二值来恢复所述第二驱动与所述音频编解码器硬件之间的通信。
28.根据权利要求23所述的机器可读介质,其中所述一个或多个值包括对所述一个或多个值的多个其他字节进行索引的字节索引,并且所述机器可读介质还包括指令,所述指令响应于在所述设备上执行,通过以下各项使所述设备动态提供驱动之间的通信:
由所述第一驱动用一个或多个第二值填充所述邮箱寄存器,其中所述一个或多个第二值包括对所述一个或多个第二值的多个其他字节进行索引的第二字节索引,并且其中所述一个或多个值和一个或多个第二值各自表示数据对象的部分。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/976453 | 2015-12-21 | ||
US14/976,453 US10168985B2 (en) | 2015-12-21 | 2015-12-21 | Dynamic audio codec enumeration |
PCT/US2016/062912 WO2017112189A1 (en) | 2015-12-21 | 2016-11-18 | Dynamic audio codec enumeration |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108352161A true CN108352161A (zh) | 2018-07-31 |
CN108352161B CN108352161B (zh) | 2023-06-23 |
Family
ID=59067072
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680067900.5A Active CN108352161B (zh) | 2015-12-21 | 2016-11-18 | 动态音频编解码器枚举 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10168985B2 (zh) |
CN (1) | CN108352161B (zh) |
WO (1) | WO2017112189A1 (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW425769B (en) * | 1999-07-08 | 2001-03-11 | Via Tech Inc | Mapping register structure of codec controller and powering down and suspending method using the same |
US20060041895A1 (en) * | 2004-08-04 | 2006-02-23 | Microsoft Corporation | Systems and methods for interfacing with codecs across an architecture optimized for audio |
CN101470596A (zh) * | 2007-12-27 | 2009-07-01 | 英特尔公司 | 虚拟化环境中的音频子系统共享 |
US20090307511A1 (en) * | 2008-06-06 | 2009-12-10 | Hugo Fiennes | Portable electronic devices with power management capabilities |
CN101609676A (zh) * | 2008-06-19 | 2009-12-23 | 美国博通公司 | 一种处理音频信号的方法及系统 |
CN101800051A (zh) * | 2009-02-09 | 2010-08-11 | 美国博通公司 | 处理信号的方法和处理音频信号的系统 |
US8161392B1 (en) * | 2005-04-06 | 2012-04-17 | Teradici Corporation | Methods and apparatus for managing a shared GUI |
CN103547996A (zh) * | 2011-02-17 | 2014-01-29 | 英特尔公司 | 用于应用无关的音频加速的系统、方法和计算机程序产品 |
CN104183243A (zh) * | 2013-05-24 | 2014-12-03 | 上海航天测控通信研究所 | 音频编解码系统 |
US20150134331A1 (en) * | 2013-11-12 | 2015-05-14 | Apple Inc. | Always-On Audio Control for Mobile Device |
US9182939B1 (en) * | 2008-09-19 | 2015-11-10 | Nvidia Corporation | Method and system for managing the power state of an audio device integrated in a graphics device |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7908628B2 (en) * | 2001-08-03 | 2011-03-15 | Comcast Ip Holdings I, Llc | Video and digital multimedia aggregator content coding and formatting |
US8028040B1 (en) * | 2005-12-20 | 2011-09-27 | Teradici Corporation | Method and apparatus for communications between a virtualized host and remote devices |
US8032353B1 (en) * | 2007-03-30 | 2011-10-04 | Teradici Corporation | Method and apparatus for providing peripheral connection management in a remote computing environment |
US7730248B2 (en) * | 2007-12-13 | 2010-06-01 | Texas Instruments Incorporated | Interrupt morphing and configuration, circuits, systems and processes |
US9207749B2 (en) * | 2012-08-28 | 2015-12-08 | Intel Corporation | Mechanism for facilitating efficient operations paths for storage devices in computing systems |
US9110592B2 (en) * | 2013-02-04 | 2015-08-18 | Microsoft Technology Licensing, Llc | Dynamic allocation of heterogenous memory in a computing system |
-
2015
- 2015-12-21 US US14/976,453 patent/US10168985B2/en active Active
-
2016
- 2016-11-18 CN CN201680067900.5A patent/CN108352161B/zh active Active
- 2016-11-18 WO PCT/US2016/062912 patent/WO2017112189A1/en active Application Filing
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW425769B (en) * | 1999-07-08 | 2001-03-11 | Via Tech Inc | Mapping register structure of codec controller and powering down and suspending method using the same |
US20060041895A1 (en) * | 2004-08-04 | 2006-02-23 | Microsoft Corporation | Systems and methods for interfacing with codecs across an architecture optimized for audio |
US8161392B1 (en) * | 2005-04-06 | 2012-04-17 | Teradici Corporation | Methods and apparatus for managing a shared GUI |
CN101470596A (zh) * | 2007-12-27 | 2009-07-01 | 英特尔公司 | 虚拟化环境中的音频子系统共享 |
US20090307511A1 (en) * | 2008-06-06 | 2009-12-10 | Hugo Fiennes | Portable electronic devices with power management capabilities |
CN101609676A (zh) * | 2008-06-19 | 2009-12-23 | 美国博通公司 | 一种处理音频信号的方法及系统 |
US9182939B1 (en) * | 2008-09-19 | 2015-11-10 | Nvidia Corporation | Method and system for managing the power state of an audio device integrated in a graphics device |
CN101800051A (zh) * | 2009-02-09 | 2010-08-11 | 美国博通公司 | 处理信号的方法和处理音频信号的系统 |
CN103547996A (zh) * | 2011-02-17 | 2014-01-29 | 英特尔公司 | 用于应用无关的音频加速的系统、方法和计算机程序产品 |
CN104183243A (zh) * | 2013-05-24 | 2014-12-03 | 上海航天测控通信研究所 | 音频编解码系统 |
US20150134331A1 (en) * | 2013-11-12 | 2015-05-14 | Apple Inc. | Always-On Audio Control for Mobile Device |
Also Published As
Publication number | Publication date |
---|---|
CN108352161B (zh) | 2023-06-23 |
US20170177294A1 (en) | 2017-06-22 |
WO2017112189A1 (en) | 2017-06-29 |
US10168985B2 (en) | 2019-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104380258B (zh) | 对图形硬件实施调度操作 | |
CN104471540B (zh) | 通过统一存储器架构的存储器共享 | |
CN104952033B (zh) | 分布式图形处理器分级中的系统一致性 | |
WO2021244443A1 (zh) | 分屏显示方法、电子设备及计算机可读存储介质 | |
CN103970441B (zh) | 执行设备的功能的方法以及用于执行该方法的设备 | |
CN104951358B (zh) | 基于优先级的上下文抢占 | |
CN104424358B (zh) | 用于具有多功率模式的计算设备的动态信息适配 | |
EP2940556A1 (en) | Command displaying method and command displaying device | |
CN104782136B (zh) | 在云中处理视频数据 | |
CN103890744B (zh) | 多点触摸界面方法、系统和设备 | |
TW201843592A (zh) | 共享虛擬記憶體的技術(三) | |
CN104756150B (zh) | 深度缓冲 | |
CN108702480A (zh) | 电子设备和用于驱动其显示器的方法 | |
CN104011623A (zh) | 包括基于观看条件的动态用户接口在内的用于能量效率和能量节约的方法、装置和系统 | |
CN104067318B (zh) | 使用三维光栅化的时间连续碰撞检测 | |
KR20160103364A (ko) | 다수의 프로세서들을 가지는 전자장치에서 디스플레이 제어 방법 및 장치 | |
CN104781845B (zh) | 处理视频内容 | |
CN104090849B (zh) | 用于图形处理单元的存储器映射的系统、方法、装置、电子设备以及机器可读介质 | |
CN105321142B (zh) | 经由计算流水线进行的采样、错误管理和/或上下文切换 | |
CN104737198B (zh) | 在输入几何对象粒度上记录可见度测试的结果 | |
CN104035540A (zh) | 在图形渲染期间降低功耗 | |
CN103959199A (zh) | 用于先进先出(fifo)存储器的功率节约方法和装置 | |
CN104049967A (zh) | 暴露媒体处理特征 | |
CN103927223B (zh) | 用于对图形资源的串行化访问的方法、系统、装置、设备以及存储介质 | |
CN104054049B (zh) | 用于复制源数据从而实现对源数据的并行处理的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |