Skip to content

Commit 6681618

Browse files
committed
Merge tag 'omap-for-v6.6/ti-sysc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into soc/drivers
Driver changes for omaps for v6.6 Driver changes for ti-sysc interconnect target module driver and for l3 interconnect error handler. The ti-sysc driver changes just enable using it for 64-bit systems like TI am62 that have wake-up capability for the wkup domain devices. The l3 error handling improves the code to show the error source if an unrecoverable timeout error occurs. * tag 'omap-for-v6.6/ti-sysc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: bus: ti-sysc: Fix cast to enum warning bus: ti-sysc: Fix a build warning with W=1 for sysconfig bus: ti-sysc: Configure uart quirks for k3 SoC bus: ti-sysc: Build driver for TI K3 SoCs bus: ti-sysc: Fix build warning for 64-bit build bus: omap_l3_smx: identify timeout cause before rebooting Link: https://lore.kernel.org/r/pull-1692158857-597450@atomide.com Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2 parents 9eb33dd + de44bf2 commit 6681618

File tree

3 files changed

+16
-13
lines changed

3 files changed

+16
-13
lines changed

drivers/bus/Kconfig

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,8 @@ config TI_PWMSS
210210

211211
config TI_SYSC
212212
bool "TI sysc interconnect target module driver"
213-
depends on ARCH_OMAP2PLUS
213+
depends on ARCH_OMAP2PLUS || ARCH_K3
214+
default y
214215
help
215216
Generic driver for Texas Instruments interconnect target module
216217
found on many TI SoCs.

drivers/bus/omap_l3_smx.c

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -166,19 +166,10 @@ static irqreturn_t omap3_l3_app_irq(int irq, void *_l3)
166166
irqreturn_t ret = IRQ_NONE;
167167

168168
int_type = irq == l3->app_irq ? L3_APPLICATION_ERROR : L3_DEBUG_ERROR;
169-
if (!int_type) {
169+
if (!int_type)
170170
status = omap3_l3_readll(l3->rt, L3_SI_FLAG_STATUS_0);
171-
/*
172-
* if we have a timeout error, there's nothing we can
173-
* do besides rebooting the board. So let's BUG on any
174-
* of such errors and handle the others. timeout error
175-
* is severe and not expected to occur.
176-
*/
177-
BUG_ON(status & L3_STATUS_0_TIMEOUT_MASK);
178-
} else {
171+
else
179172
status = omap3_l3_readll(l3->rt, L3_SI_FLAG_STATUS_1);
180-
/* No timeout error for debug sources */
181-
}
182173

183174
/* identify the error source */
184175
err_source = __ffs(status);
@@ -190,6 +181,14 @@ static irqreturn_t omap3_l3_app_irq(int irq, void *_l3)
190181
ret |= omap3_l3_block_irq(l3, error, error_addr);
191182
}
192183

184+
/*
185+
* if we have a timeout error, there's nothing we can
186+
* do besides rebooting the board. So let's BUG on any
187+
* of such errors and handle the others. timeout error
188+
* is severe and not expected to occur.
189+
*/
190+
BUG_ON(!int_type && status & L3_STATUS_0_TIMEOUT_MASK);
191+
193192
/* Clear the status register */
194193
clear = (L3_AGENT_STATUS_CLEAR_IA << int_type) |
195194
L3_AGENT_STATUS_CLEAR_TA;

drivers/bus/ti-sysc.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ static const char * const clock_names[SYSC_MAX_CLOCKS] = {
109109
* @cookie: data used by legacy platform callbacks
110110
* @name: name if available
111111
* @revision: interconnect target module revision
112+
* @sysconfig: saved sysconfig register value
112113
* @reserved: target module is reserved and already in use
113114
* @enabled: sysc runtime enabled status
114115
* @needs_resume: runtime resume needed on resume from suspend
@@ -1525,6 +1526,8 @@ static const struct sysc_revision_quirk sysc_revision_quirks[] = {
15251526
SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_LEGACY_IDLE),
15261527
SYSC_QUIRK("uart", 0, 0x50, 0x54, 0x58, 0x47422e03, 0xffffffff,
15271528
SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_LEGACY_IDLE),
1529+
SYSC_QUIRK("uart", 0, 0x50, 0x54, 0x58, 0x47424e03, 0xffffffff,
1530+
SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_LEGACY_IDLE),
15281531

15291532
/* Quirks that need to be set based on the module address */
15301533
SYSC_QUIRK("mcpdm", 0x40132000, 0, 0x10, -ENODEV, 0x50000800, 0xffffffff,
@@ -3104,7 +3107,7 @@ static int sysc_init_static_data(struct sysc *ddata)
31043107

31053108
match = soc_device_match(sysc_soc_match);
31063109
if (match && match->data)
3107-
sysc_soc->soc = (int)match->data;
3110+
sysc_soc->soc = (enum sysc_soc)(uintptr_t)match->data;
31083111

31093112
/*
31103113
* Check and warn about possible old incomplete dtb. We now want to see

0 commit comments

Comments
 (0)