mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
c284d9fa48
This patch fix a bug in the register indexing for GPIOs numbers > 31 to get the relevant hardware registers of tnetv107x to control the GPIOs. In the structure tnetv107x_gpio_regs: struct tnetv107x_gpio_regs { u32 idver; u32 data_in[3]; u32 data_out[3]; u32 direction[3]; u32 enable[3]; }; The GPIO hardware register addresses of tnetv107x are stored. The chip implements 3 registers of each entity to serve 96 GPIOs, each register provides a subset of 32 GPIOs. The driver provides these macros: gpio_reg_set_bit, gpio_reg_get_bit and gpio_reg_clear_bit. The bug implied the use of macros to access the relevant hardware register e.g. the driver code used the macro like this: 'gpio_reg_clear_bit(®->data_out, gpio)' But it has to be used like this: 'gpio_reg_clear_bit(reg->data_out, gpio)'. The different results are shown here: - ®->data_out + 1 (it will add the full array size of data_out i.e. 12 bytes) - reg->data_out + 1 (it will increment only the size of data_out i.e. only 4 bytes) Acked-by: Cyril Chemparathy <cyril@ti.com> Signed-off-by: Hirosh Dabui <hirosh.dabui@snom.com> Signed-off-by: Kevin Hilman <khilman@ti.com> |
||
---|---|---|
.. | ||
boot | ||
common | ||
configs | ||
include/asm | ||
kernel | ||
lib | ||
mach-aaec2000 | ||
mach-at91 | ||
mach-bcmring | ||
mach-clps711x | ||
mach-cns3xxx | ||
mach-davinci | ||
mach-dove | ||
mach-ebsa110 | ||
mach-ep93xx | ||
mach-footbridge | ||
mach-gemini | ||
mach-h720x | ||
mach-imx | ||
mach-integrator | ||
mach-iop13xx | ||
mach-iop32x | ||
mach-iop33x | ||
mach-ixp4xx | ||
mach-ixp23xx | ||
mach-ixp2000 | ||
mach-kirkwood | ||
mach-ks8695 | ||
mach-l7200/include/mach | ||
mach-lh7a40x | ||
mach-loki | ||
mach-lpc32xx | ||
mach-mmp | ||
mach-msm | ||
mach-mv78xx0 | ||
mach-mx3 | ||
mach-mx5 | ||
mach-mxc91231 | ||
mach-mxs | ||
mach-netx | ||
mach-nomadik | ||
mach-ns9xxx | ||
mach-nuc93x | ||
mach-omap1 | ||
mach-omap2 | ||
mach-orion5x | ||
mach-pnx4008 | ||
mach-pxa | ||
mach-realview | ||
mach-rpc | ||
mach-s3c24a0/include/mach | ||
mach-s3c64xx | ||
mach-s3c2400 | ||
mach-s3c2410 | ||
mach-s3c2412 | ||
mach-s3c2416 | ||
mach-s3c2440 | ||
mach-s3c2443 | ||
mach-s5p64x0 | ||
mach-s5p6442 | ||
mach-s5pc100 | ||
mach-s5pv210 | ||
mach-s5pv310 | ||
mach-sa1100 | ||
mach-shark | ||
mach-shmobile | ||
mach-spear3xx | ||
mach-spear6xx | ||
mach-stmp37xx | ||
mach-stmp378x | ||
mach-tcc8k | ||
mach-tegra | ||
mach-u300 | ||
mach-ux500 | ||
mach-versatile | ||
mach-vexpress | ||
mach-w90x900 | ||
mm | ||
nwfpe | ||
oprofile | ||
plat-iop | ||
plat-mxc | ||
plat-nomadik | ||
plat-omap | ||
plat-orion | ||
plat-pxa | ||
plat-s3c24xx | ||
plat-s5p | ||
plat-samsung | ||
plat-spear | ||
plat-stmp3xxx | ||
plat-tcc | ||
plat-versatile | ||
tools | ||
vfp | ||
Kconfig | ||
Kconfig-nommu | ||
Kconfig.debug | ||
Makefile |