irq.c (bcfcd084aacddbb1893ff0c8f41fda23ed861458) | irq.c (4713ace3246644519bf93cc8ea6e44efe57fc3ec) |
---|---|
1// SPDX-License-Identifier: GPL-2.0 2 3/* 4 * Copyright 2016-2022 HabanaLabs, Ltd. 5 * All Rights Reserved. 6 */ 7 8#include "habanalabs.h" --- 311 unchanged lines hidden (view full) --- 320 job->free_obj_head = ts_reg_free_list_head; 321 job->hdev = hdev; 322 queue_work(hdev->ts_free_obj_wq, &job->free_obj); 323 } else { 324 kfree(job); 325 } 326} 327 | 1// SPDX-License-Identifier: GPL-2.0 2 3/* 4 * Copyright 2016-2022 HabanaLabs, Ltd. 5 * All Rights Reserved. 6 */ 7 8#include "habanalabs.h" --- 311 unchanged lines hidden (view full) --- 320 job->free_obj_head = ts_reg_free_list_head; 321 job->hdev = hdev; 322 queue_work(hdev->ts_free_obj_wq, &job->free_obj); 323 } else { 324 kfree(job); 325 } 326} 327 |
328static void handle_tpc_interrupt(struct hl_device *hdev) 329{ 330 u64 event_mask; 331 u32 flags; 332 333 event_mask = HL_NOTIFIER_EVENT_TPC_ASSERT | 334 HL_NOTIFIER_EVENT_USER_ENGINE_ERR | 335 HL_NOTIFIER_EVENT_DEVICE_RESET; 336 337 flags = HL_DRV_RESET_DELAY; 338 339 dev_err_ratelimited(hdev->dev, "Received TPC assert\n"); 340 hl_device_cond_reset(hdev, flags, event_mask); 341} 342 |
|
328/** 329 * hl_irq_handler_user_interrupt - irq handler for user interrupts 330 * 331 * @irq: irq number 332 * @arg: pointer to user interrupt structure 333 * 334 */ 335irqreturn_t hl_irq_handler_user_interrupt(int irq, void *arg) --- 26 unchanged lines hidden (view full) --- 362 handle_user_interrupt(hdev, user_int); 363 break; 364 case HL_USR_INTERRUPT_DECODER: 365 handle_user_interrupt(hdev, &hdev->common_decoder_interrupt); 366 367 /* Handle decoder interrupt registered on this specific irq */ 368 handle_user_interrupt(hdev, user_int); 369 break; | 343/** 344 * hl_irq_handler_user_interrupt - irq handler for user interrupts 345 * 346 * @irq: irq number 347 * @arg: pointer to user interrupt structure 348 * 349 */ 350irqreturn_t hl_irq_handler_user_interrupt(int irq, void *arg) --- 26 unchanged lines hidden (view full) --- 377 handle_user_interrupt(hdev, user_int); 378 break; 379 case HL_USR_INTERRUPT_DECODER: 380 handle_user_interrupt(hdev, &hdev->common_decoder_interrupt); 381 382 /* Handle decoder interrupt registered on this specific irq */ 383 handle_user_interrupt(hdev, user_int); 384 break; |
385 case HL_USR_INTERRUPT_TPC: 386 handle_tpc_interrupt(hdev); 387 break; |
|
370 default: 371 break; 372 } 373 374 return IRQ_HANDLED; 375} 376 377/** --- 224 unchanged lines hidden --- | 388 default: 389 break; 390 } 391 392 return IRQ_HANDLED; 393} 394 395/** --- 224 unchanged lines hidden --- |