sdhci: simplify sdhci_get_fifolen()
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Alistair Francis <alistair.francis@xilinx.com> Message-Id: <20180208164818.7961-10-f4bug@amsat.org>
This commit is contained in:
		
							parent
							
								
									aa164fbff3
								
							
						
					
					
						commit
						09b738ff65
					
				@ -24,6 +24,8 @@
 | 
				
			|||||||
#ifndef SDHCI_INTERNAL_H
 | 
					#ifndef SDHCI_INTERNAL_H
 | 
				
			||||||
#define SDHCI_INTERNAL_H
 | 
					#define SDHCI_INTERNAL_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "hw/registerfields.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* R/W SDMA System Address register 0x0 */
 | 
					/* R/W SDMA System Address register 0x0 */
 | 
				
			||||||
#define SDHC_SYSAD                     0x00
 | 
					#define SDHC_SYSAD                     0x00
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -185,7 +187,7 @@
 | 
				
			|||||||
#define SDHC_CAN_DO_ADMA2              0x00080000
 | 
					#define SDHC_CAN_DO_ADMA2              0x00080000
 | 
				
			||||||
#define SDHC_CAN_DO_ADMA1              0x00100000
 | 
					#define SDHC_CAN_DO_ADMA1              0x00100000
 | 
				
			||||||
#define SDHC_64_BIT_BUS_SUPPORT        (1 << 28)
 | 
					#define SDHC_64_BIT_BUS_SUPPORT        (1 << 28)
 | 
				
			||||||
#define SDHC_CAPAB_BLOCKSIZE(x)        (((x) >> 16) & 0x3)
 | 
					FIELD(SDHC_CAPAB, MAXBLOCKLENGTH,     16, 2);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* HWInit Maximum Current Capabilities Register 0x0 */
 | 
					/* HWInit Maximum Current Capabilities Register 0x0 */
 | 
				
			||||||
#define SDHC_MAXCURR                   0x48
 | 
					#define SDHC_MAXCURR                   0x48
 | 
				
			||||||
 | 
				
			|||||||
@ -58,6 +58,11 @@
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
#define SDHC_CAPAB_REG_DEFAULT 0x057834b4
 | 
					#define SDHC_CAPAB_REG_DEFAULT 0x057834b4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static inline unsigned int sdhci_get_fifolen(SDHCIState *s)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return 1 << (9 + FIELD_EX32(s->capareg, SDHC_CAPAB, MAXBLOCKLENGTH));
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static uint8_t sdhci_slotint(SDHCIState *s)
 | 
					static uint8_t sdhci_slotint(SDHCIState *s)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    return (s->norintsts & s->norintsigen) || (s->errintsts & s->errintsigen) ||
 | 
					    return (s->norintsts & s->norintsigen) || (s->errintsts & s->errintsigen) ||
 | 
				
			||||||
@ -1118,21 +1123,6 @@ static const MemoryRegionOps sdhci_mmio_ops = {
 | 
				
			|||||||
    .endianness = DEVICE_LITTLE_ENDIAN,
 | 
					    .endianness = DEVICE_LITTLE_ENDIAN,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static inline unsigned int sdhci_get_fifolen(SDHCIState *s)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    switch (SDHC_CAPAB_BLOCKSIZE(s->capareg)) {
 | 
					 | 
				
			||||||
    case 0:
 | 
					 | 
				
			||||||
        return 512;
 | 
					 | 
				
			||||||
    case 1:
 | 
					 | 
				
			||||||
        return 1024;
 | 
					 | 
				
			||||||
    case 2:
 | 
					 | 
				
			||||||
        return 2048;
 | 
					 | 
				
			||||||
    default:
 | 
					 | 
				
			||||||
        hw_error("SDHC: unsupported value for maximum block size\n");
 | 
					 | 
				
			||||||
        return 0;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static void sdhci_init_readonly_registers(SDHCIState *s, Error **errp)
 | 
					static void sdhci_init_readonly_registers(SDHCIState *s, Error **errp)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    if (s->sd_spec_version != 2) {
 | 
					    if (s->sd_spec_version != 2) {
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user